将退出代码添加到日志文件

将退出代码添加到日志文件

我创建了一个 bash 脚本,用于在 AWS 上运行自动 EBS 备份。它是通过 cronjob 启动的:

0 2 * * * /bin/bash /root/backup_snapshots.sh > backup.log 2>&1

这工作得很好,但接下来我想做的是添加一个退出代码来判断脚本是否成功运行(这样我就可以配置 Nagios 检查它)。我要做的有几件事:

  1. 在 /var/log/backup/ 目录中创建 backup.log。
  2. 配置 logrotate 以每天轮换它,以使此检查更容易检测。

但我有一个问题是,是否可以让 cron 将退出代码写入我创建的 backup.log 文件中?或者我应该采用这种类型的实现:

使用脚本创建 crontab 条目,该脚本可以启动实际脚本并具有如下退出代码:

#!/bin/bash
/root/backup_snapshots.sh 2> /dev/null
if [ $? -eq 0 ]
then
  echo "PASS"
else
  echo "FAIL" >&2
fi

我想让这个尽可能简单,所以如果 cron 可以做到,那就太棒了!如果没有,下一个最好的办法是创建一个执行 backup_snapshots.sh 并通过 cron 运行的 bash 脚本吗?

答案1

#!/bin/bash
exec 1>/var/log/backup/backup_sbapshots.log 2>&1
if /root/backup_snapshots.sh
then
  echo "PASS"
else
  echo "FAIL"
fi

制作如图所示的 cron 脚本,将 cronjob 运行状态放入备份日志文件中。请注意,没有提及该$?变量,因为该if语句拥有它自己的变量。

相关内容