Linux
如何打開 sftp 連接並在同一個 shell 命令中執行 sftp 命令
是否有可能打開與遠端伺服器的 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*)。