OpenSSH を使用した自動永続化
ControlMaster
も使用できます OpenSSH の機能で、最初の接続のために UNIX ドメイン ソケットを開き、その後のすべての呼び出しでこの接続を再利用します。
この機能を有効にするには、 -M
を使用できます コマンドラインスイッチとして、または ControlMaster
を有効にします ~/.ssh/ssh_config
のオプション 例:
ControlMaster auto
さらに、 ControlPath
を設定する必要があります ~/.ssh/ssh_config
で次の行を使用します :
Host *
ControlPath ~/.ssh/master-%[email protected]%h:%p
ホストへの永続的な接続を維持するため。ホストへの多くの ssh 接続を確立する必要があるスクリプトを実行したい場合は、スクリプトの存続期間全体にわたって持続するものはありません。次を使用して、事前にサイレント接続を開始できます。
ssh -MNf remotehost
チェリオ、ネソノ
本番環境で使用できるかどうかはわかりませんが、次のようなことができます:
#1 にファイルを作成
1> touch /tmp/commands
次にコマンドを実行します:
1> tail -f /tmp/commands | ssh [email protected]
これにより、ファイル /tmp/commands が開き、その内容がサーバー x.x.x.x (#2) に送信され、そこで 1 行ずつ実行されます
今、#1 で何かが起こるたびに:
1> echo "ls -l" >> /tmp/commands
または
1> echo "reboot" >> /tmp/commands
ファイル /tmp/commands に追加するものはすべて #2 に送信され、実行されます。インタラクティブなものを実行しないようにするか、何らかの方法で処理してください。
/etc/ssh/ssh_config
で 追加
# Send keep alive signal to remote sshd
ServerAliveInterval 60