Linux常用脚本100例46-80|助你快速了解Linux系统命令
-
检查磁盘空间并清理旧内核:
#!/bin/bash echo "检查磁盘空间并清理旧内核:" disk_usage=$(df -h | grep '/' | awk '{ print $5 }') if [[ $disk_usage == *"100%"* ]]; then echo "磁盘空间已满,正在清理旧内核..." sudo apt autoremove --purge -y sudo apt clean fi
-
监控系统负载并重启:
#!/bin/bash echo "监控系统负载并重启:" load=$(uptime | grep -ohe 'load average[s:][: ].*' | awk '{ print $3 }') if [[ $load -gt 10 ]]; then echo "系统负载过高,正在重启..." sudo reboot fi
-
检查和修复文件系统(ext4):
#!/bin/bash echo "检查和修复文件系统(ext4):" sudo e2fsck -f /dev/sda1
-
监控网络流量:
#!/bin/bash echo "监控网络流量:" nload
-
自动更新系统并重启:
#!/bin/bash echo "自动更新系统并重启:" sudo apt update && sudo apt upgrade -y sudo reboot
-
监控磁盘 I/O:
#!/bin/bash echo "监控磁盘I/O:" iostat -dx /dev/sda
-
#!/bin/bash echo "检查和修复MySQL数据库:" mysqlcheck -u root -p --auto-repair --all-databases
-
监控内存泄漏:
#!/bin/bash echo "监控内存泄漏:" while true; do mem_usage=$(free -m | awk '/Mem:/ { print $3/$2 * 100.0 }') echo "当前内存使用率:$mem_usage%" sleep 60 done
-
自动备份 PostgreSQL 数据库:
#!/bin/bash echo "自动备份 PostgreSQL 数据库:" pg_dump -U username -F c -b -v -f /path/to/backup.dump database_name
-
监控系统资源使用情况:
#!/bin/bash echo "监控系统资源使用情况:" top -b -n 1
-
检查系统是否受到 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 暴力破解攻击" fi
-
自动清理临时文件:
#!/bin/bash echo "自动清理临时文件:" sudo find /tmp -type f -atime +7 -delete
-
监控系统服务状态:
#!/bin/bash echo "监控系统服务状态:" systemctl list-units --type=service
-
自动备份 Nginx 配置文件:
#!/bin/bash echo "自动备份 Nginx 配置文件:" sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.$(date +%Y%m%d%H%M%S)
-
检查磁盘配额并发送警告邮件:
#!/bin/bash echo "检查磁盘配额并发送警告邮件:" for user in $(awk '{print $1}' /etc/passwd); do if [ $(usermod -U $user | grep -c "User $user may log in") -eq 0 ]; then if [ $(df -k /home | grep /home | awk '{print $3}') -lt 500000 ]; then echo "用户 $user 的磁盘配额不足" | mail -s "磁盘配额警告" $user fi fi done
-
监控系统运行时间并重启:
#!/bin/bash echo "监控系统运行时间并重启:" days=$uptime | awk -F'(up |,)' '{print $2}' | awk '{print $1}' if [ "$days" -gt 30 ]; then echo "系统运行时间超过30天,正在重启..." sudo reboot fi
-
自动清理日志文件:
#!/bin/bash echo "自动清理日志文件:" find /var/log -name "*.log" -type f -mtime +30 -exec rm {} ;
-
监控系统端口并发送警告邮件:
#!/bin/bash echo "监控系统端口并发送警告邮件:" ports=$(netstat -tulnp | grep LISTEN | awk '{print $4}') for port in $ports; do if [ $port != "80/tcp" ] && [ $port != "443/tcp" ]; then echo "检测到非标准端口监听" | mail -s "端口监听警告" user@example.com fi done
-
自动同步时间并设置时区:
#!/bin/bash echo "自动同步时间并设置时区:" sudo timedatectl set-ntp true sudo timedatectl set-timezone America/New_York
-
监控系统资源使用情况并发送警告邮件:
#!/bin/bash echo "监控系统资源使用情况并发送警告邮件:" high_usage=$(uptime | awk -F'(average: |,)' '{print $2}' | awk '{print $1}') if [ "$high_usage" -gt 7 ]; then echo "系统负载过高" | mail -s "系统负载警告" user@example.com fi
-
自动备份 MySQL 数据库并清理旧备份:
#!/bin/bash echo "自动备份 MySQL 数据库并清理旧备份:" mysqldump -u username -p'password' database_name > /path/to/backup/$(date +%Y%m%d%H%M%S).sql find /path/to/backup -name "*.sql" -mtime +7 -exec rm {} ;
-
监控系统服务状态并重启服务:
#!/bin/bash echo "监控系统服务状态并重启服务:" service_status=$(systemctl is-active service_name) if [ "$service_status" != "active" ]; then echo "服务未运行,正在重启..." systemctl restart service_name fi
-
自动清理缓存文件:
#!/bin/bash echo "自动清理缓存文件:" find /tmp -type f -name "*.cache" -exec rm {} ;
-
监控系统磁盘 I/O 并发送警告邮件:
#!/bin/bash echo "监控系统磁盘I/O并发送警告邮件:" io_usage=$(iostat /dev/sda 1 3 | tail -1 | awk '{print $4+$5}') if [ "$io_usage" -gt 90 ]; then echo "磁盘I/O过高" | mail -s "磁盘I/O警告" user@example.com fi
-
监控系统日志并发送警告邮件:
#!/bin/bash echo "监控系统日志并发送警告邮件:" if grep -q "Error" /var/log/syslog; then echo "系统日志中检测到错误" | mail -s "系统日志错误警告" user@example.com fi
-
监控系统磁盘空间并发送警告邮件:
#!/bin/bash echo "监控系统磁盘空间并发送警告邮件:" disk_usage=$(df / | awk '/// {print $5}' | sed 's/%//g') if [ $disk_usage -ge 90 ]; then echo "磁盘空间不足,已达到$disk_usage%" | mail -s "磁盘空间警告" user@example.com fi
-
自动更新软件包并发送更新报告:
#!/bin/bash echo "自动更新软件包并发送更新报告:" apt-get update > /tmp/update.log 2>&1 apt-get upgrade -y >> /tmp/update.log 2>&1 mail -s "软件包更新报告" user@example.com < /tmp/update.log
-
监控系统运行时间并发送警告邮件:
#!/bin/bash echo "监控系统运行时间并发送警告邮件:" days=$(cat /proc/uptime | awk '{print $1}' | cut -d. -f1 | cut -d: -f2) if [ $days -gt 30 ]; then echo "系统已运行超过30天" | mail -s "系统运行时间警告" user@example.com fi
-
自动清理 APT 缓存:
#!/bin/bash echo "自动清理 APT 缓存:" apt-get clean && apt-get autoclean
-
监控系统温度并发送警告邮件:
#!/bin/bash echo "监控系统温度并发送警告邮件:" temp=$(cat /sys/class/thermal/thermal_zone0/temp) if [ $temp -gt 75000 ]; then echo "系统温度过高,当前温度为$(printf "%.1f" $(awk '{printf "%.1f°C", $1/1000}' temp))°C" | mail -s "系统温度警告" user@example.com fi
-
自动备份配置文件并发送备份报告:
#!/bin/bash echo "自动备份配置文件并发送备份报告:" tar -czvf /path/to/backup/config-$(date +%Y%m%d%H%M%S).tar.gz /path/to/config mail -s "配置文件备份报告" user@example.com < /path/to/backup/config-$(date +%Y%m%d%H%M%S).tar.gz
-
监控系统内存使用情况并发送警告邮件:
#!/bin/bash echo "监控系统内存使用情况并发送警告邮件:" mem_usage=$(free -m | awk '/Mem:/ {print $3/$2 * 100.0}') if [ $mem_usage -gt 80 ]; then echo "内存使用率超过80%" | mail -s "内存使用警告" user@example.com fi
-
自动同步时间并发送同步报告:
#!/bin/bash echo "自动同步时间并发送同步报告:" ntpdate pool.ntp.org > /tmp/ntp.log 2>&1 mail -s "时间同步报告" user@example.com < /tmp/ntp.log
-
监控系统磁盘读写速度并发送报告:
#!/bin/bash echo "监控系统磁盘读写速度并发送报告:" dd if=/dev/zero of=test bs=1M count=1024 sync; sync; sync dd if=test of=/dev/null bs=1M rm -f test mail -s "磁盘读写速度报告" user@example.com < /tmp/dd.log
-
自动监控系统服务状态并发送警告邮件:
#!/bin/bash echo "自动监控系统服务状态并发送警告邮件:" service_status=$(systemctl is-active service_name) if [ "$service_status" != "active" ]; then echo "服务未运行" | mail -s "服务状态警告" user@example.com fi
-
阅读剩余
网站声明
本站内容可能存在水印或引流等信息,请擦亮眼睛自行鉴别;以免上当受骗;
本站提供的内容仅限用于学习和研究目的,不得将本站内容用于商业或者非法用途;
相关推荐