Cron脚本已执行但没有输出

时间:2018-05-11 18:47:26

标签: linux bash ubuntu cron

我已经看了很多不同的主题,但没有找到问题的答案。我在我的Ubuntu服务器上创建了2个bash脚本,并且我试图定期执行它们。它们似乎正在运行,但它们什么也没有产生。它们是可执行的:

drwxr-xr-x 14 root root     4096 Mar 14 18:02 ..
-rwxr-xr-x  1 root root     2623 Apr 16 21:18 backup.pl
-rw-r--r--  1 root root 87066352 May 10 21:37 full_site_backup-10-4-2018.tar.gz
-rwxr-xr-x  1 root root      530 May 11 20:21 checkHealth.sh
drwxr-xr-x  2 root root     4096 May 11 20:35 .

所以这是我的一个脚本:

#!/bin/bash

# log stdout and stderr to two different files
exec >>/var/log/test.log 2>>/var/log/test.err.log

# ...and log every command we try to execute to stderr (aka looog.err.log)
# set -x

CODE=$(curl -s -o /dev/null -I -A "myuseragent" -w "%{http_code}" https://www.xxxxxxxxxxxxx.xxx/xxxx)

DATE=$(date)

if [ $CODE -gt 300 ]
then
    service mysql restart
    service tomcat8 restart
    >&2 echo "$DATE - KO !!!!!! code retour $CODE"
else
    echo "$DATE - OK, code $CODE"
fi

这是我的sudo crontab -e

# m h  dom mon dow   command

0 2 * * * root /usr/bin/perl /var/backup/backup.pl
* * * * * root /bin/sh /var/backup/checkHealth.sh

这是我的sudo tail -f /var/log/cron.log

May 11 20:39:01 ns381471 CRON[10778]: (root) CMD (root /bin/sh /var/backup/checkHealth.sh)
May 11 20:39:26 ns381471 crontab[10823]: (root) BEGIN EDIT (root)
May 11 20:40:01 ns381471 CRON[10880]: (root) CMD (root /bin/sh /var/backup/checkHealth.sh)
May 11 20:40:01 ns381471 CRON[10879]: (root) CMD (/usr/local/rtm/bin/rtm 2 > /dev/null 2> /dev/null)
May 11 20:40:30 ns381471 crontab[10823]: (root) END EDIT (root)
May 11 20:41:01 ns381471 CRON[10974]: (root) CMD (/usr/local/rtm/bin/rtm 2 > /dev/null 2> /dev/null)
May 11 20:41:01 ns381471 CRON[10975]: (root) CMD (root /bin/sh /var/backup/checkHealth.sh)
May 11 20:42:01 ns381471 CRON[11070]: (root) CMD (/usr/local/rtm/bin/rtm 2 > /dev/null 2> /dev/null)
May 11 20:42:01 ns381471 CRON[11071]: (root) CMD (root /bin/sh /var/backup/checkHealth.sh)

任何帮助将不胜感激。感谢

1 个答案:

答案 0 :(得分:-1)

对于处于相同情况的人,我的crontab是

# m h  dom mon dow   command

0 2 * * * root /usr/bin/perl /var/backup/backup.pl
* * * * * root /bin/sh /var/backup/checkHealth.sh

看来我刚刚复制了许多关于编辑/etc/crontab的cron教程的语法,但在我的情况下我做了一个sudo crontab -e,所以我没有必要指定用户(root) ),所以工作条目是:

# m h  dom mon dow   command

0 2 * * * /usr/bin/perl /var/backup/backup.pl
* * * * * /bin/sh /var/backup/checkHealth.sh

或更简单:

# m h  dom mon dow   command

0 2 * * * /var/backup/backup.pl
* * * * * /var/backup/checkHealth.sh