用shell脚本写一个监测某个网络脚本是否运行正常,发生异常则记录时间与问题,并且记录时间超过一周则自动删除最前面的一天继续记录,也就是只留最后七天的记录
时间: 2024-03-05 08:47:59 浏览: 70
可以使用以下脚本来监测某个网络脚本是否运行正常,并记录时间与问题:
```bash
#!/bin/bash
LOG_FILE="/path/to/log.txt"
SCRIPT_NAME="network_script.sh"
# Check if network script is running
if pgrep -x "$SCRIPT_NAME" >/dev/null
then
echo "$(date "+%Y-%m-%d %H:%M:%S"): $SCRIPT_NAME is running normally" >> "$LOG_FILE"
else
echo "$(date "+%Y-%m-%d %H:%M:%S"): $SCRIPT_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天,并删除最前面一天的记录。
您可以将此脚本保存为一个文件,例如network_monitor.sh,并使用cron定时运行它。
例如,要在每小时的第15分钟运行此脚本,可以使用以下cron定时任务:
```
15 * * * * /path/to/network_monitor.sh
```
这将在每小时的15分运行一次network_monitor.sh脚本。
阅读全文