cron 和 lftp 问题

cron 和 lftp 问题

我在 raspbian 上运行了以下脚本。

开始

#!/bin/bash
/root/config/commands 2>&1 > /root/log/$HOSTNAME.log

命令

#!/bin/bash
source /root/config/variables
echo TestLine
/usr/bin/lftp ftp://user:[email protected] -e "set ftp:ssl-allow no ; set net:reconnect-interval-base 5 ; set net:max-retries 2 ; mirror -e /testgroup/music /root/media ; quit"
/usr/bin/mail -s "$HOSTNAME Report" $emailaddress < $logdir/$HOSTNAME.log``

当我手动运行“开始”时,我收到以下电子邮件

TestLine
Total: 1 directory, 4 files, 0 symlinks

当我使用 cron 运行它时,我收到以下电子邮件

TestLine

crontab -e 的设置方法如下

@daily /root/start

知道为什么 cron 会从电子邮件中删除 lftp 输出吗?

答案1

cron 的运行环境与交互式 shell 不同。您的$HOSTNAME变量未设置。

您可以在脚本开始时进行设置,如下所示:

HOSTNAME="`/usr/bin/hostname`"

答案2

我自己花了一些时间与这个问题作斗争。决定采用screen。例如

screen -dmS screen_name bash -c '/root/start'

答案3

我遇到了同样的问题。从 cron 运行时,lftp 根本不输出该行,但它仍然完成其工作。

相关内容