Crontab 日志:如何记录我的 Cron 脚本的输出
【摘要】 当脚本作为 cron 作业执行时,如何将脚本的输出保存到日志文件中?
我创建了一个 backup.sh shell 脚本并将其添加到我的 crontab 以每天执行它。如何验证备份 cron 脚本作业是否成功运行?此外,我的 backup.sh shell 脚本中有几个 echo 语句。当脚本作为 cron 作业执行时,如何将脚本的输出保存到日志文件中?
假设您已将 backup.sh 添加到您的crontab中,如下所示,以便在每天零晨执行它。
$ crontab -e
59 23 * * * /home/john/bin/backup.sh
要验证此作业是否成功执行,请检查 /var/log/cron 文件,该文件包含有关系统中执行的所有 cron 作业的信息。从以下输出中可以看出,john 的 cron 作业已成功执行。
$ tail /var/log/cron
Oct 8 22:00:00 dev-db crond[18340]: (root) CMD (/bin/sh /home/root/bin/system_check &)
Oct 8 23:00:00 dev-db crond[20348]: (oracle) CMD (/bin/sh /home/oracle/bin/cleanup.sh &)
Oct 8 23:59:00 dev-db crond[20399]: (john) CMD (/bin/sh /home/john/bin/backup.sh &)
Cron 日志包含以下信息:
- 时间戳 - 执行 cron 作业的日期和时间
- 主机名 – 服务器的主机名(例如 dev-db)
- cron 守护进程名称和 PID。例如,crond[20399]
- 用户名 – 执行此 cron 作业的用户名。例如,约翰。
- CMD – 这之后的任何内容都是当时执行的真正命令。
如果 backup.sh 中有任何 echo 语句,您可能希望将它们记录到文件中。通常,如果 backup.sh cron 脚本抛出任何输出(包括错误),您可能希望将这些输出记录到日志文件中。为此,请修改 crontab 条目并添加输出和错误重定向,如下所示。
$ crontab -e
59 23 * * * /home/john/bin/backup.sh > /home/john/logs/backup.log 2>&1
在上面:
- > /home/john/logs/backup.log表示将backup.sh 脚本的标准输出重定向到backup.log 文件。
- 2>&1表示标准错误 (2>) 被重定向到标准输出 (&1) 指向的相同文件描述符。
- 因此,标准输出和错误都将被重定向到 /home/john/logs/backup.log
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)