Linux

如何打開 sftp 連接並在同一個 shell 命令中執行 sftp 命令

  • November 18, 2014

是否有可能打開與遠端伺服器的 sftp 連接並在 shell 的同一行中執行 sftp 命令。

像這樣的東西:

sftp user@example.com && put /tmp/test.txt /tmp/

其中 put 是 sftp 命令。

我的想法是從 bash 腳本將文件從本地伺服器放到遠端伺服器,遠端伺服器上只允許使用 sftp。

方法一:

echo "put /tmp/test.txt /tmp/" | sftp user@example.com

方法二:

使用-b選項:

-b 批處理文件

批處理模式從輸入批處理文件而不是標準輸入讀取一系列命令。由於它缺乏使用者互動,因此應與非互動身份驗證結合使用。-’ 字元的批處理文件-' 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*)。

引用自:https://serverfault.com/questions/645336