用shell脚本写一个监测某个程序是否运行正常,发生异常则记录时间与问题,一天记录一次,超过七天之后就删除最前的一天保留最新的七天
时间: 2024-03-05 22:48:10 浏览: 13
好的,可以尝试以下代码实现:
```shell
#!/bin/bash
# 定义变量
log_dir="/var/log/program_monitor"
log_file="${log_dir}/$(date +%Y%m%d).log"
program_name="your_program_name"
max_days=7
# 创建日志目录
mkdir -p "${log_dir}"
# 检查程序是否在运行
if ps aux | grep "${program_name}" | grep -v grep > /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. Please check it." >> "${log_file}"
fi
# 删除超过指定天数的日志
find "${log_dir}" -type f -name "*.log" -mtime +${max_days} -delete
```
以上代码的主要流程如下:
1. 定义日志目录、日志文件名、程序名称和最大保存天数;
2. 创建日志目录;
3. 检查程序是否在运行,如果运行正常则记录日志,否则记录异常日志;
4. 删除超过指定天数的日志文件。
注意:
1. 要将 "your_program_name" 替换为实际的程序名称;
2. 要将脚本加入定时任务中,如每天执行一次。