待って実行する Bash スクリプトを作成します。

待って実行する Bash スクリプトを作成します。

私が基本的に達成したいのは、仕事を始めるたびに何をするのかを自動化することです。

私はこの順序で

  1. VPN接続
  2. 新しいgnome-terminalタブを開く
  3. SSH経由でリモートコンピュータに接続する

これまで私はこれを持っています:

WID=$(xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"| awk '{print $5}')
xdotool windowfocus $WID
xdotool type --delay 1 --clearmodifiers "sudo openvpn --config 'conn1.ovpn'"
xdotool key Return

xdotool key ctrl+shift+t
wmctrl -i -a $WID
sleep 1

while ! $(/usr/bin/fping -q 192.168.0.5); do sleep 1;done

xdotool type --delay 3 --clearmodifiers "ssh machine1"
sleep 3
xdotool key Return

私が経験している問題は、SSHコマンドを使用する前にVPN接続を開く必要があることです。最後のスリープコマンドを入力すると、コードが3秒間待ってからEnterキーを押すようです。

実際に起こるのは、openvpn最後のスリープモードが終了するまでコマンドが実行されないため、SSHコマンドが失敗することです。

誰でも私が行くべき方向を教えてもらえますか?

答え1

SSH を開始する前に待機ループを配置してください。

while ! $(/usr/bin/fping -q <openvpn remote endpoint ip>); do sleep 1;done

関連情報