用shell脚本写一个监测某个程序是否运行正常,发生异常则记录时间与问题,并且记录时间超过一周则自动删除最前面的一天继续记录,也就是只留最后七天的记录
时间: 2024-03-05 09:48:03 浏览: 227
可以使用以下脚本来监测某个程序是否运行正常,并记录时间和问题:
```bash
#!/bin/bash
LOG_FILE="/path/to/log.txt"
PROGRAM_NAME="my_program"
# 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"
else
echo "$(date "+%Y-%m-%d %H:%M:%S"): $PROGRAM_NAME is not running" >> "$LOG_FILE"
fi
# Check if log file is older than 7 days and delete the oldest day
if test `find "$LOG_FILE" -mtime +6`
then
sed -i '1d' "$LOG_FILE"
fi
```
这个脚本首先定义了一个日志文件的路径和要监测的程序的名称。然后它检查程序是否正在运行,并在日志文件中记录时间和状态。最后,它检查日志文件是否超过7天,并删除最前面一天的记录。
您可以将此脚本保存为一个文件,例如program_monitor.sh,并使用cron定时运行它。
例如,要在每小时的第15分钟运行此脚本,可以使用以下cron定时任务:
```
15 * * * * /path/to/program_monitor.sh
```
这将在每小时的15分运行一次program_monitor.sh脚本。
阅读全文