我已经创建了一个脚本文件transfer.sh
,其ftp
test.txt
个文件到服务器,现在我已经在crontab
中输入了脚本文件,如果我使用{ {1}}在crontab中传输它工作正常的文件,当我使用ftp
而不是ftp时它在cron选项卡中不起作用,但是当我手动运行transfer.sh脚本时它工作正常并传输文件使用sftp
到服务器。我没有在日志中看到任何错误。
我的脚本sftp
脚本是
transfer.sh
答案 0 :(得分:0)
crontab无法在unix服务器上找到sftp
实用程序,有两种方法可以解决问题。
使用PATH
路径
sftp
环境变量
在脚本中使用sftp命令和绝对路径
例如
/ usr / localcw / opt / ssh / bin / sftp user/pass@host.com
如何查找sftp
绝对路径,下面是示例
$which sftp
/usr/localcw/bin/sftp
转到/usr/localcw/bin
位置
$cd /usr/localcw/bin
点击ls -lrt sftp
/usr/localcw/bin $ls -lsrt sftp
0 lrwxrwxrwx 1 root root 19 Apr 11 2012 sftp -> ../opt/ssh/bin/sftp
这里再次是../opt/ssh/bin/sftp
的软链接,现在是cd
到../opt/sh/bin
/usr/localcw/bin $ cd ../opt/ssh/bin
现在pwd是你的sftp
绝对路径
/usr/localcw/opt/ssh/bin $ pwd
/usr/localcw/opt/ssh/bin
将此路径与sftp命令一起使用