GNU/Linux >> Linux の 問題 >  >> Linux

一定期間にわたってコマンドをストリーミングするための永続的な SSH 接続を作成するにはどうすればよいですか?

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

Linux
  1. LXC コマンドを使用して LXC Linux コンテナを作成および起動する方法

  2. CentOS / RHEL 7 で systemd-tmpfiles が /tmp/ または /var/tmp (tmpwatch の置き換え) をクリーンアップする方法

  3. CentOS / RHEL 5,6 で /tmp および /var/tmp ディレクトリ内のファイルの自動削除を無効にする方法

  1. xargs でエイリアス化されたコマンドを使用するにはどうすればよいですか?

  2. 組み込みの zsh コマンドに関するドキュメントを読むにはどうすればよいですか?

  3. Git コマンドのオートコンプリートを設定するにはどうすればよいですか?

  1. /dev/shm/ と /tmp/ はいつ使用する必要がありますか?

  2. 複数のコマンドの実行時間を計る

  3. Linux コマンドを記録するにはどうすればよいですか?