sftp无法在cron或crontab中运行,但ftp工作正常

时间:2015-11-26 08:23:23

标签: unix ftp cron crontab sftp

我已经创建了一个脚本文件transfer.sh,其ftp test.txt个文件到服务器,现在我已经在crontab中输入了脚本文件,如果我使用{ {1}}在crontab中传输它工作正常的文件,当我使用ftp而不是ftp时它在cron选项卡中不起作用,但是当我手动运行transfer.sh脚本时它工作正常并传输文件使用sftp到服务器。我没有在日志中看到任何错误。

我的脚本sftp脚本是

transfer.sh

1 个答案:

答案 0 :(得分:0)

crontab无法在unix服务器上找到sftp实用程序,有两种方法可以解决问题。

  1. 使用PATH路径

  2. 附加您的sftp环境变量
  3. 在脚本中使用sftp命令和绝对路径

    例如

    / usr / localcw / opt / ssh / bin / sftp user/pass@host.com

  4. 如何查找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命令一起使用