我正在尝试创建一个 shell 脚本,使用 SFTP 将文件复制到外部服务器(因为外部服务器上没有 SSH)。通过控制台运行时,该脚本按预期工作,但通过 cronjob 运行时,它会因致命错误而退出:
这lftp 命令就好像
/usr/bin/lftp -d -e "set sftp:auto-confirm yes; open sftp://$user:$pass@$server_address; put $local_filepath -o $remote_filename; bye;" >> "backup.log"
这输出当通过 cronjob 运行时就像
---- Running connect program (ssh -a -x -s -l xxxxx sftp.yyyyy.com sftp)
put: /home/zzzzz/filename.txt: Fatal error: pseudo-tty allocation failed: No such file or directory
我发现无法在 lftp 中禁用伪 tty 分配,但是为什么通过控制台运行时它会起作用呢?
除此之外,还有其他常用程序可以用来通过 SFTP 复制文件吗?我在共享托管服务器上,但没有 root 权限,因此无法安装任何软件。