帮我写一个shell服务器巡检脚本
时间: 2023-02-25 11:11:31 浏览: 63
好的,我可以为您写一个服务器巡检脚本。这个脚本的功能包括检查服务器的 CPU、内存、硬盘、网络等信息。
在 Linux 系统中,可以使用以下命令来获取服务器的信息:
- `uptime`: 查看系统运行时间
- `vmstat`: 查看内存和 CPU 状态
- `free -m`: 查看内存使用情况
- `df -h`: 查看硬盘使用情况
- `ifconfig`: 查看网络信息
使用这些命令,我们就可以写一个简单的服务器巡检脚本:
```
#!/bin/bash
echo "============================================================"
echo "Server Name: $(hostname)"
echo "Date: $(date)"
echo "============================================================"
echo ""
echo "Uptime:"
uptime
echo ""
echo "CPU and Memory Usage:"
vmstat
echo ""
echo "Memory Usage:"
free -m
echo ""
echo "Disk Usage:"
df -h
echo ""
echo "Network Info:"
ifconfig
```
使用这个脚本,可以快速地查看服务器的基本信息。
希望这个脚本能帮到您!
相关问题
帮我写一个shell 巡检脚本
当您说“巡检脚本”,我想您是指一个能够检查系统或应用程序健康状况的shell脚本。以下是一个简单的巡检脚本示例,可以根据您的实际需求进行修改。
```
#!/bin/bash
# Check disk space usage
echo "=== Disk Space Usage ==="
df -h
# Check memory usage
echo "=== Memory Usage ==="
free -m
# Check CPU usage
echo "=== CPU Usage ==="
top -bn1 | grep load | awk '{printf "%.2f%%\n", $(NF-2)}'
# Check system load
echo "=== System Load ==="
uptime
# Check network connections
echo "=== Network Connections ==="
netstat -an | grep ESTABLISHED | wc -l
# Check web server status
echo "=== Web Server Status ==="
curl -Is http://localhost:80 | head -n 1
# Check database server status
echo "=== Database Server Status ==="
systemctl status mysql
```
这个脚本会检查磁盘空间、内存、CPU、系统负载、网络连接、Web服务器和数据库服务器状态。可以根据您的具体需求和应用程序进行修改和扩展。您可以将脚本保存为巡检脚本.sh,然后通过命令行运行它,如下所示:
```
$ ./巡检脚本.sh
```
当然,您也可以将该脚本添加到定时任务中,以每隔一段时间运行一次。
用shell写一个服务器巡检脚本
服务器巡检脚本可以通过 shell 脚本编写,以下是一个简单的服务器巡检脚本示例:
```bash
#!/bin/bash
# 服务器巡检脚本
# 检查系统负载
load=$(uptime | awk '{print $10}')
if [ $(echo "$load > 1" | bc) -eq 1 ]
then
echo "系统负载过高:$load"
fi
# 检查磁盘空间
disk=$(df -h | grep /dev/sda1 | awk '{print $5}' | cut -d'%' -f1)
if [ $disk -ge 90 ]
then
echo "磁盘空间不足:$disk%"
fi
# 检查内存使用率
mem=$(free | awk '/Mem/{printf("%.2f"), $3/$2*100}')
if [ $(echo "$mem > 80" | bc) -eq 1 ]
then
echo "内存使用率过高:$mem%"
fi
# 检查网络连接数
conn=$(netstat -an | grep :80 | wc -l)
if [ $conn -ge 100 ]
then
echo "网络连接数过多:$conn"
fi
# 检查 CPU 使用率
cpu=$(top -b -n 1 | grep "Cpu(s)" | awk '{print $2}')
if [ $(echo "$cpu > 80" | bc) -eq 1 ]
then
echo "CPU 使用率过高:$cpu%"
fi
# 检查日志文件大小
log=$(du -sh /var/log/* | sort -hr | head -n 1 | awk '{print $1}')
if [ $(echo "$log > 10" | bc) -eq 1 ]
then
echo "日志文件过大:$log"
fi
# 发送邮件告警
if [ $(echo "$load > 1" | bc) -eq 1 -o $disk -ge 90 -o $(echo "$mem > 80" | bc) -eq 1 -o $conn -ge 100 -o $(echo "$cpu > 80" | bc) -eq 1 -o $(echo "$log > 10" | bc) -eq 1 ]
then
echo "服务器存在异常,发送邮件告警"
# 发送邮件的命令,需要替换成实际使用的邮件服务和账号
echo "服务器存在异常,请及时处理。" | mail -s "服务器巡检告警" user@example.com
fi
```
该脚本会检查系统负载、磁盘空间、内存使用率、网络连接数、CPU 使用率和日志文件大小等指标,如果出现异常,就会发送邮件告警。需要注意的是,邮件发送命令需要替换成实际使用的邮件服务和账号。
该脚本可以通过 crontab 定时执行,例如每天凌晨 3 点执行一次:
```
0 3 * * * /path/to/check_server.sh
```
以上是一个简单的服务器巡检脚本示例,可以根据实际需要进行修改和扩展。