linux - cron 脚本已执行但没有输出

标签 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)

如有任何帮助,我们将不胜感激。谢谢

最佳答案

对于那些处于相同情况的人来说,我的 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

关于linux - cron 脚本已执行但没有输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50298499/

相关文章:

linux - 在linux中获取短运行程序的峰值内存(堆和堆栈)

linux - 在 sudo 脚本中以非 super 用户身份执行命令

bash - 终止终端后是否可以执行 bash 脚本?

ruby - 在不安装 X 的情况下在 Ubuntu 服务器上安装 ruby​​ RMagick gem

linux - gui 和 ssh session 的不同 bash 别名

c++ - C++ 中带有换行符的 printf 的奇怪行为

regex - 用 bash 解析字符串并提取数字

mysql - 错误 1045 (28000) : Access denied for user 'root' @'localhost' (using password: YES) -Ubuntu

ubuntu - Gerrit 缺少所有项目

c - GCC 编译器错误为 “No such file or directory”