Ubuntu Crontab运行FTP无法正常工作

时间:2018-03-12 03:50:32

标签: linux bash ftp cron

我想在Linux服务器上运行FTP脚本。

这是我的名为transfer.sh的bash文件:

#!/bin/bash
HOST='172.16.0.15'
USER='user'
PASSWD='abc123'

ftp -n -v $HOST << EOF
ascii
user $USER $PASSWD
prompt
cd /home/user/ftp
mget *
bye
EOF

mv /home/user/*.txt /home/user/ftp/

这是我的crontab:

* * * * * /home/user/transfer.sh

我的问题是FTP没有在crontab中运行,但是当我使用终端执行bash文件时它工作正常。

1 个答案:

答案 0 :(得分:0)

如果问题出在shell脚本或FTP脚本上,您必须先了解。

将crontab中的条目替换为:

* * * * * /home/user/transfer.sh >>/tmp/transfer.log 2>&1

并检查/tmp/transfer.log日志文件是否有任何错误。

即使是正常操作,您实际上也需要启用日志记录(至少是stderr),而不仅仅是调试当前的问题。

虽然有一个明显的问题,但是你没有在脚本中指定目标本地目录。

如果您手动运行脚本,该文件将下载到您当前的工作目录。

但是如果你在cron中运行脚本,当前的工作目录可能是用户的主目录,所以脚本会在那里下载文件。

您最好明确指定工作目录:

  • 在运行cd之前使用ftp命令:

    cd /local/target/path
    ftp -n -v $HOST << EOF
    ...
    
  • 或在lcd脚本中使用ftp命令:

    lcd /local/target/path 
    mget *