Linux常用脚本100例81-100|助你快速了解Linux系统命令
-
监控特定进程的 CPU 使用率并发送警告邮件:
#!/bin/bash echo "监控特定进程的 CPU 使用率并发送警告邮件:" high_cpu_process=$(top -bn1 | grep -v grep | awk '{print $1, $9}' | sort -k 2 -nr | head -n 1) if [[ $(echo $high_cpu_process | awk '{print $2}') -gt 50 ]]; then echo "进程 $(echo $high_cpu_process | awk '{print $1}') CPU 使用率超过50%" | mail -s "高 CPU 使用率警告" user@example.com fi
-
自动创建每周备份计划:
#!/bin/bash echo "自动创建每周备份计划:" tar -czvf /path/to/backup/weekly-$(date +%Y%m%d).tar.gz /path/to/data
-
监控系统安全更新:
#!/bin/bash echo "监控系统安全更新:" apt list --upgradable | grep "security" if [ $? -eq 0 ]; then echo "有安全更新可用,请尽快更新" | mail -s "安全更新警告" user@example.com fi
-
自动清理旧的内核版本:
#!/bin/bash echo "自动清理旧的内核版本:" latest_kernel=$(uname -r) dpkg --list 'Linux-image-*' | awk '{ print $2 }' | grep -v $latest_kernel | xargs apt-get -y purge
-
监控网络连接状态并尝试重新连接:
#!/bin/bash echo "监控网络连接状态并尝试重新连接:" if ! ping -c 1 google.com &>/dev/null; then echo "网络连接失败,尝试重新连接..." ifdown eth0 && ifup eth0 fi
-
自动同步多个时间服务器:
#!/bin/bash echo "自动同步多个时间服务器:" ntpdate pool.ntp.org ntpdate time.google.com ntpdate time.windows.com
-
监控系统磁盘空间并自动扩展磁盘:
#!/bin/bash echo "监控系统磁盘空间并自动扩展磁盘:" if [ $(df -h | grep '/' | awk '{ print $5 }' | sed 's/%//g' | sort -nr | head -n 1) -gt 95 ]; then echo "磁盘空间不足,尝试扩展磁盘..." # 这里可以添加扩展磁盘的命令或脚本 fi
-
自动检测和阻止 SSH 暴力破解攻击:
#!/bin/bash echo "自动检测和阻止 SSH 暴力破解攻击:" failed_logins=$(grep -i "Failed password" /var/log/auth.log | grep -v -i "sshd" | awk '{ print $9 }' | sort | uniq -c | sort -nr | head -n 1) if [ $failed_logins -gt 5 ]; then echo "检测到 SSH 暴力破解攻击,封锁 IP..." # 这里可以添加封锁 IP 的命令或脚本 fi
-
监控系统性能并生成报告:
#!/bin/bash echo "监控系统性能并生成报告:" sar -u 5 3 > /tmp/sar_report mail -s "系统性能报告" user@example.com < /tmp/sar_report
-
自动更新系统并清理未使用的依赖:
#!/bin/bash echo "自动更新系统并清理未使用的依赖:" apt-get update && apt-get upgrade -y apt-get autoremove -y
-
-
监控系统日志并自动重启服务:
#!/bin/bash echo "监控系统日志并自动重启服务:" if grep -q "Error" /var/log/syslog; then echo "检测到系统错误,正在重启服务..." systemctl restart service_name fi
-
自动检测僵尸进程并杀死:
#!/bin/bash echo "自动检测僵尸进程并杀死:" ps aux | awk '{if ($8 ~ /Z/) print $2}' | xargs kill -9
-
监控系统内存泄漏并发送警告邮件:
#!/bin/bash echo "监控系统内存泄漏并发送警告邮件:" mem_usage=$(free -m | awk '/Mem:/ {print $3/$2 * 100.0}') if [ $mem_usage -gt 90 ]; then echo "内存使用率超过90%,可能存在内存泄漏" | mail -s "内存泄漏警告" user@example.com fi
-
自动备份数据库并清理旧备份:
#!/bin/bash echo "自动备份数据库并清理旧备份:" pg_dump -U username -F c -b -v -f /path/to/backup/$(date +%Y%m%d%H%M%S).dump database_name find /path/to/backup -name "*.dump" -mtime +7 -exec rm {} ;
-
监控网络流量并限制高流量用户:
#!/bin/bash echo "监控网络流量并限制高流量用户:" if [ $(nethogs eth0 | head -n 1 | awk '{print $2}') -gt 10000 ]; then echo "检测到高流量用户,限制其网络速度..." # 这里可以添加限制网络速度的命令或脚本 fi
-
自动检测系统漏洞并修复:
#!/bin/bash echo "自动检测系统漏洞并修复:" unattended-upgrades --dry-run -v if [ $? -eq 0 ]; then unattended-upgrades -v fi
-
监控系统性能并调整资源分配:
#!/bin/bash echo "监控系统性能并调整资源分配:" cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}') if [ $cpu_usage -gt 80 ]; then echo "CPU 使用率超过80%,调整资源分配..." # 这里可以添加调整资源分配的命令或脚本 fi
-
自动检测未授权访问并封锁 IP:
#!/bin/bash echo "自动检测未授权访问并封锁 IP:" if grep -q "Failed password" /var/log/auth.log; then echo "检测到未授权访问,封锁 IP..." # 这里可以添加封锁 IP 的命令或脚本 fi
-
监控系统服务状态并发送状态报告:
#!/bin/bash echo "监控系统服务状态并发送状态报告:" service_status=$(systemctl is-active service_name) echo "服务状态:$service_status" | mail -s "服务状态报告" user@example.com
-
自动检测系统资源瓶颈并优化:
#!/bin/bash echo "自动检测系统资源瓶颈并优化:" io_wait=$(vmstat 1 2 | awk '/iowait/ {print $13}') if [ $io_wait -gt 50 ]; then echo "I/O 等待时间超过50%,优化系统资源..." # 这里可以添加优化系统资源的命令或脚本 fi
-
阅读剩余
网站声明
本站内容可能存在水印或引流等信息,请擦亮眼睛自行鉴别;以免上当受骗;
本站提供的内容仅限用于学习和研究目的,不得将本站内容用于商业或者非法用途;
相关推荐