FTP Shell脚本不能与Cronjob一起使用

时间:2013-09-09 03:16:37

标签: linux shell ftp cron

好的,所以我试图将一些录制文件ftp到远程服务器进行备份。它获取今天创建的文件并传输它们。它工作正常,但只有我手动运行它。 cronjob没有运行它。

这是当前的脚本:

#!/bin/bash
touch -t $(date +"%Y%m%d0000") /tmp/$$

NOW=$(date +"%d-%m-%Y")
HOST='remote_server'  
USER='ftp_user'             
PASS='ftp_password'          

#create directory with date as the name, copy recordings.php for interface
ftp -inv $HOST << EOF
user $USER $PASS
mkdir /recordings/$NOW
cd /recordings/$NOW
put recordings.php
bye
EOF

find  -name '*.mp3' -newer /tmp/$$ |
while read FILE
do
ftp -in $HOST << EOF
user $USER $PASS
cd /recordings/$NOW
put $FILE
bye
EOF

done

rm -f /tmp/$$

然后我把它设置在这样的crontab中,所以它每天晚上11点运行:

* 21 * * * /var/spool/asterisk/monitorDONE/MP3/recording_script.sh

任何帮助都非常感谢大家。我知道这可能不是最好的方法,这只是我遇到的第一种方式,对我有用,所以我愿意接受任何建议。

1 个答案:

答案 0 :(得分:0)

您可能需要检查PATH变量并向其添加/ usr / local / bin,例如,如果安装了ftp

另外,添加

... > /tmp/script.log 2>&1

将提供有关cronjob失败原因的更多信息(或至少不做任何事情。

尝试使用

为cronjob命令添加前缀
bash -x ...

显示正在执行的每个shell语句。

完成crontab行:

* 21 * * * bash -x /var/spool/asterisk/monitorDONE/MP3/recording_script.sh >/tmp/rs_log 2>&1

希望这有助于调试您的问题。