写一段自建巡检的shell脚本
时间: 2023-07-05 16:35:45 浏览: 143
好的,以下是一个简单的自建巡检的shell脚本示例:
```bash
#!/bin/bash
# 设置变量
HOSTNAME=$(hostname)
DATE=$(date "+%Y-%m-%d")
LOGFILE="/var/log/custom-check.log"
# 检查磁盘空间
df -H | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read output;
do
# 获取磁盘使用率和挂载点
USE=$(echo $output | awk '{ print $1}' | cut -d'%' -f1)
PARTITION=$(echo $output | awk '{ print $2 }')
# 如果使用率超过90%,则记录日志并发送警报
if [ $USE -ge 90 ]; then
echo "$(date "+%Y-%m-%d %H:%M:%S") - $HOSTNAME - WARNING - Partition $PARTITION is almost full ($USE%)" >> $LOGFILE
# 发送邮件警报
mail -s "Disk space alert on $HOSTNAME" user@example.com <<< "Partition $PARTITION on $HOSTNAME is almost full ($USE%)"
fi
done
# 检查进程
ps cax | grep "nginx" > /dev/null
if [ $? -eq 0 ]; then
echo "$(date "+%Y-%m-%d %H:%M:%S") - $HOSTNAME - INFO - Nginx is running" >> $LOGFILE
else
echo "$(date "+%Y-%m-%d %H:%M:%S") - $HOSTNAME - WARNING - Nginx is not running" >> $LOGFILE
# 发送邮件警报
mail -s "Nginx alert on $HOSTNAME" user@example.com <<< "Nginx is not running on $HOSTNAME"
fi
# 检查网站可用性
curl -sS -o /dev/null http://example.com
if [ $? -eq 0 ]; then
echo "$(date "+%Y-%m-%d %H:%M:%S") - $HOSTNAME - INFO - Website is accessible" >> $LOGFILE
else
echo "$(date "+%Y-%m-%d %H:%M:%S") - $HOSTNAME - WARNING - Website is not accessible" >> $LOGFILE
# 发送邮件警报
mail -s "Website alert on $HOSTNAME" user@example.com <<< "Website is not accessible on $HOSTNAME"
fi
```
以上示例包含三个部分的检查:
- 检查磁盘空间是否超过90%
- 检查Nginx进程是否在运行
- 检查网站是否可以正常访问
该脚本将日志记录到`/var/log/custom-check.log`文件中,并在问题发现时通过电子邮件发送警报给指定的用户。您可以根据需要自定义脚本以满足您的特定需求。
阅读全文