仅当通过 cronjob 运行时,shell 脚本中的 lftp 才会失败并显示“伪 tty 分配失败”

仅当通过 cronjob 运行时,shell 脚本中的 lftp 才会失败并显示“伪 tty 分配失败”

我正在尝试创建一个 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 权限,因此无法安装任何软件。

相关内容