回答:
ssh
シェルを起動する代わりに、sshコマンドに追加することにより、クライアントに実行するコマンドを渡すことができます。
ssh username@domain.com 'rm /some/where/some_file.war'
cd
完全なパスを指定している限り、何かを削除するために場所に移動する必要はありません。そのため、別のステップをスキップできます。
次の質問は認証です。実行しただけの場合、パスワードの入力を求められます。これをインタラクティブに入力したくない場合は、公開鍵認証を設定する必要があります。
-f
する必要がありrm
ますか?
rm
場合、ユーザーが何を期待し、何かをオーバーライドしている理由を知らない限り、呼び出し元に確実に渡される必要があります。特定のシナリオで必要なオプションのみを使用することで、多くのミスや後でのイライラするデバッグを回避できます。
-f
オプションrm
は省略され--force
ており、存在しないファイルまたは偽の引数に対してエラーがスローされるかどうかに影響します。通常、コマンドは非対話型シェルで実行されますが、とにかく非対話型になりますが、対話型プロンプトが表示されないか、対話型プロンプトが表示されるのは、それに直接関連する設定を修正することです。これをスクリプト化する場合は、とにかくその問題は発生しないはずです。また、対話型のシェル(壊滅的なタイプミスの可能性がある場合)を使用-I
し--interactive=never
ている場合は、使用して目的の動作を設定する必要があります。
sudoを使用してリモートファイルを削除する場合は、次のように実行する必要があります。
ssh -tt user@host 'stty raw -echo; sudo rm /path/to/file' < <(cat)
詳細。
sshコマンドには、リモートコマンドの実行に使用できるコマンドパラメーター(コマンドの最後のパラメーター)があります。
パスワードなしのキーをセットアップしてから、sshコマンドの一部としてコマンドを追加します。参照:http : //www.dotkam.com/2009/03/10/run-commands-remotely-via-ssh-with-no-password/