是否有可能打开与远程服务器的 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*)。