Crontab 日志:如何记录我的 Cron 脚本的输出

举报
Tiamo_T 发表于 2022/07/05 17:39:35 2022/07/05
【摘要】 当脚本作为 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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。