我需要使用 docker ps 自动验证活动容器,并使用 docker pull 发送容器更新。所以我创建了这个脚本文件:
if docker ps | grep "fairplay";then
echo "doker fairplay ok" >> /home/ubuntu/at2.log
else
echo "doker fairplay caido" >> /home/ubuntu/at2.log
errdock=1
fi
当我在终端上手动使用时,该脚本可以正常工作,但是当我尝试使用 cron 时却不起作用。
Crontab:
* * * * * root sh /home/ubuntu/at2.sh
手动运行时的日志:
Thu Mar 25 13:33:43 -03 2021
doker fairplay ok
doker widevine ok
Thu Mar 25 13:33:44 -03 2021
我使用 cron 运行时的日志:
Thu Mar 25 13:34:01 -03 2021
doker fairplay caido
doker widevine caido
Thu Mar 25 13:34:01 -03 2021
我不想在容器内运行任何东西,我需要在主机上的cron中运行命令,所以下面的问题对question 1、question 2没有帮助。
答案 0 :(得分:1)
您的 crontab 语法不正确。我已经尝试了您的确切 .sh
文件,但没有发现任何错误。
这是正确的:
* * * * * sh /home/ubuntu/at2.sh
我不确定您为什么在 crontab 语法中添加 root
用户或单词,就像运行 root sh /home/ubuntu/at2.sh
一样,您将得到 Command 'root' not found
。
我还建议您添加 date
变量,以便您知道它的上升或下降时间:
if docker ps | grep "fairplay";then
then
echo "`date +"%D %H:%M:%S"` docker fairplay ok" >> /home/ubuntu/at2.log
else
echo "`date +"%D %H:%M:%S"` docker fairplay caido" >> /home/ubuntu/at2.log
errdock=1
fi