【问题标题】:sftp is not working in cron or crontab but ftp works finesftp 不能在 cron 或 crontab 中工作,但 ftp 工作正常
【发布时间】:2015-11-26 08:23:23
【问题描述】:

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

我的脚本transfer.sh 脚本是

sftp user/pass@host.com <<END_SCRIPT
cd /mydir
put test.txt
bye
END_SCRIPT

【问题讨论】:

  • 您是否尝试将输出重定向到文件?它输出什么?
  • @MartinPrikryl 如何将输出重定向到文件?
  • ... END_SCRIPT &gt; /somepath/sftp.out
  • @MartinPrikryl sftp.out 文件未生成,我已经尝试过
  • 所以我假设transfer.sh 甚至没有运行,对吧?你的 crontab 条目是什么?

标签: unix ftp cron crontab sftp


【解决方案1】:

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

  1. PATH 环境变量附加到sftp 路径

  2. 在脚本中使用带有绝对路径的 sftp 命令

    例子。

    /usr/localcw/opt/ssh/bin/sftp用户/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 命令一起使用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-15
    • 1970-01-01
    • 2018-05-06
    • 1970-01-01
    • 2015-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多