QA@IT

SSHでlocathost側からremotehost側にコマンドを発行する

4680 PV

お世話になります。
SSHのことで質問します。
SSH接続でリモートホストのサーバーをいろいろコントロールするわけですが、リモートホスト側のシェルを実行するのではなく、クライアント側の方からSSHを通じてコマンドを発行することができるでしょうか?
通常、端末上ではコマンドを打ち込んで様々な作業をしますが、それらの処理をバッチ処理というかshやpl、phpなどでSSHを通じてこちら(localhost)からあちら側(remotehost)へコマンドを実行したいと考えています。

具体的に今やろうとしているとは、CMSなどのサーバー間の同期で、
-1. localhost側でDBダンプ、WEBコンテンツのtarアーカイブ。
-2. SCPで転送。
-3. tarを展開。
-4. IPやホスト名などをリモート先に合わせて置換など。DBのリストアなど。
-5. 同期完了。
というような作業です。
1〜2は、転送元でバッチ処理をしています。
3〜5は、通常リモートホスト側にあるスクリプトで処理すると思うのですが、これらのコマンドをlocalhost側からSSHを通じて発行できないのかなと思っています。1つの実行ファイルですべての動作を完了させたいと思っています。
現在1〜2はcronでshを叩いています。3〜5は転送先のcronでshを叩いています。

SCPなどはあらかじめリモート先(転送先)のディレクトリの移動などコマンドの中に含んでいるのですが、個別のコマンドをバッチ処理で実行するにはどうすればよいでしょうか?あるいはそもそも可能なのでしょう?
ちょっと説明不十分なところとシステム的におかしな記述もあるので、わかりづらいかと思いますが、よろしくお願いします。

回答

貴重な情報ありがとうございます。そうだったんですね!
これはみなさん当然のように知っていることなんでしょうか!
実際長年SSHを使ってきたのに、殊に上記に関しては全くわからなくなってしまった次第です。いやー、そうだったんですか。。なるほど。ありがとうございます。
さっそくテストしてみます。

編集 履歴 (0)
  • 回答に対する返答や質問は回答ではなくコメントに書きましょう。詳しくは「回答ガイドライン」を参照。 -

sshは元々そういうコマンドです(コマンドを省略するとログインしますが、実は最後にコマンドをつければコマンドが実行されます)。

$ ssh user@remotehostname ls

初めてログインするサーバーの時は証明書を信用するか出たりしますのでそういう点は注意が必要です。

編集 履歴 (0)
  • と、いう回答で合ってますか?それは知っているけど別の問題があるという場合はごめんなさい。 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。