web-dev-qa-db-ja.com

sftp接続を開き、同じシェルコマンドでsftpコマンドを実行する方法

リモートサーバーへのsftp接続を開き、シェルから同じ行でsftpコマンドを実行する可能性はありますか?.

このようなもの:

sftp [email protected] && put /tmp/test.txt /tmp/

ここで、putはsftpコマンドです。

私の考えは、リモートサーバーでsftpのみが許可されているbashスクリプトからローカルサーバーからリモートサーバーにファイルを配置することです。

5
ibedelovski

アプローチ1:

echo "put /tmp/test.txt /tmp/" | sftp [email protected]

アプローチ2:

-bオプションを使用します。

-bバッチファイル

バッチモードでは、stdinの代わりに入力バッチファイルから一連のコマンドを読み取ります。ユーザーとの対話がないため、非対話型認証と組み合わせて使用​​する必要があります。 -' may be used to indicate standard input. sftp will abort if any of the following commands fail: get, put, rename, ln, rm, mkdir, chdir, ls, lchdir, chmod, chown, chgrp, lpwd, df, symlink, and lmkdir. Termination on error can be suppressed on a command by command basis by prefixing the command with a- '文字のバッチファイル(たとえば、-rm/tmp/blah *)。

8
Sven