如何打开 sftp 连接并在同一个 shell 命令中执行 sftp 命令

如何打开 sftp 连接并在同一个 shell 命令中执行 sftp 命令

是否有可能打开与远程服务器的 sftp 连接并从 shell 在同一行执行 sftp 命令。

像这样:

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

其中 put 是 sftp 命令。

我的想法是将文件从本地服务器通过 bash 脚本放到远程服务器,而远程服务器上只允许使用 sftp。

答案1

方法 1:

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

方法 2:

使用-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*)。

相关内容