用shell脚本写一个监测某个程序是否运行正常,发生异常则记录时间与问题,一天记录一次,超过七天之后就删除最前的一天保留最新的七天
时间: 2024-03-05 15:48:05 浏览: 65
可以使用以下脚本来监测某个程序是否运行正常,并记录时间和问题:
```bash
#!/bin/bash
LOG_FILE="/path/to/log.txt"
PROGRAM_NAME="my_program"
TODAY=$(date +"%Y-%m-%d")
# Check if program is running
if ps ax | grep -v grep | grep "$PROGRAM_NAME" >/dev/null
then
echo "$(date "+%Y-%m-%d %H:%M:%S"): $PROGRAM_NAME is running normally" >> "$LOG_FILE.$TODAY"
else
echo "$(date "+%Y-%m-%d %H:%M:%S"): $PROGRAM_NAME is not running" >> "$LOG_FILE.$TODAY"
fi
# Check if log file is older than 7 days and delete the oldest day
if test `find "$LOG_FILE"* -mtime +6`
then
rm -f "$LOG_FILE.$(date --date="7 days ago" +"%Y-%m-%d")"
fi
```
这个脚本首先定义了一个日志文件的路径和要监测的程序的名称。然后它检查程序是否正在运行,并在每天的日志文件中记录时间和状态。最后,它检查日志文件是否超过7天,并删除最前面一天的记录。
您可以将此脚本保存为一个文件,例如program_monitor.sh,并使用cron定时运行它。
例如,要在每天的12点运行此脚本,可以使用以下cron定时任务:
```
0 12 * * * /path/to/program_monitor.sh
```
这将在每天的12点运行一次program_monitor.sh脚本。
阅读全文