我有一个 bash 脚本,在其中运行一个while/read/do/done
循环,该循环由一个包含 200 多个值的文本文件提供。我在我的 cron 上设置了这个 bash 脚本,每天早上运行 3 次。我遇到一个问题,即 while read 循环未完成逐行读取文本文件。我已在下面包含所有相关代码。我目前使用的是 Ubuntu 16.04 LTS 桌面。
可能是什么原因造成的?
Bash 脚本代码:
while read point; do
echo "${point}"
done < /home/admin/site_list
site_list 文件(示例):
KBOS
KLWM
KOWD
KPYM
定时任务:
07 6 * * * time /home/admin/all.sh > /home/admin/logs/all1.log1 2>&1
08 10 * * * time /home/admin/all.sh > /home/admin/logs/all1.log2 2>&1
14 13 * * * time /home/admin/all.sh > /home/admin/logs/all1.log3 2>&1
答案1
您可能应该将 stderr 重定向time /home/admin/all.sh
到日志文件或其他文件中。我的猜测是您错过了错误消息。crond
通常将任何 stdout 或 stderr 输出通过电子邮件发送给 cron 作业的所有者。我无法从您的信息中看出用户 ID 是什么:可能是 root。检查该机器上的电子邮件是否有来自的电子邮件,crond
看看内容是什么。