Linux常用脚本100例1-45|助你快速了解Linux系统命令

Linux常用脚本100例1-45|助你快速了解Linux系统命令

  1. 检查磁盘空间
    #!/bin/bash
    echo "磁盘空间使用情况:"
    df -h
    
  2. 查看当前系统负载
    #!/bin/bash
    echo "当前系统负载:"
    uptime
    
  3. 列出当前目录下的所有文件和目录
    #!/bin/bash
    echo "当前目录下的文件和目录:"
    ls -l
    
  4. 查找文件
    #!/bin/bash
    echo "查找文件:"
    find /path/to/search -name "filename"
    
  5. 备份文件或目录
    #!/bin/bash
    tar -czvf backup.tar.gz /path/to/directory
    
  6. 监控日志文件
    #!/bin/bash
    echo "监控日志文件:"
    tail -f /path/to/logfile.log
    
  7. 检查网络连接
    #!/bin/bash
    echo "检查网络连接:"
    ping -c 4 google.com
    
  8. 批量替换文件中的文本
    #!/bin/bash
    sed -i 's/original_text/replacement_text/g' /path/to/file
    
  9. 创建一个新用户
    #!/bin/bash
    username="newuser"
    useradd $username
    echo "$username:password" | chpasswd
    
  10. 检查磁盘 I/O
    #!/bin/bash
    echo "磁盘I/O:"
    iostat
    
  11. 检查端口使用情况
    #!/bin/bash
    echo "端口使用情况:"
    netstat -tulnp
    
  12. 清理临时文件
    #!/bin/bash
    echo "清理临时文件:"
    rm -rf /tmp/*
    
  13. 检查系统内存使用情况
    #!/bin/bash
    echo "系统内存使用情况:"
    free -h
    
  14. 列出所有运行中的进程
    #!/bin/bash
    echo "所有运行中的进程:"
    PS aux
    
  15. 检查系统磁盘读写速度
    #!/bin/bash
    echo "磁盘读写速度测试:"
    dd if=/dev/zero of=test bs=64k count=1000
    rm -f test
    
  16. 检查系统 CPU 使用率
    #!/bin/bash
    echo "系统CPU使用率:"
    top
    
  17. 同步时间服务器
    #!/bin/bash
    echo "同步时间服务器:"
    ntpdate pool.ntp.org
    
  18. 检查系统服务状态
    #!/bin/bash
    echo "系统服务状态:"
    systemctl status
    
  19. 列出所有已安装的包
    #!/bin/bash
    echo "所有已安装的包:"
    dpkg -l | grep -v '^rc'
    
  20. 检查系统日志
    #!/bin/bash
    echo "系统日志:"
    journalctl -xe
    
  21. 创建一个自解压的压缩包
    #!/bin/bash
    zip -r /path/to/directory.zip /path/to/directory
    unzip /path/to/directory.zip -d /path/to/extract
    
  22. 检查系统是否需要更新
    #!/bin/bash
    echo "检查系统更新:"
    apt-get update && apt-get upgrade -y
    
  23. 设置防火墙规则
    #!/bin/bash
    echo "设置防火墙规则:"
    ufw allow 22/tcp
    ufw enable
    
  24. 监控磁盘空间并发送警告邮件
    #!/bin/bash
    if [ $( df -h | grep / | awk '{ print $5 }' | sed 's/%//g' | sort -nr | head -n 1 | awk '{ print $1 }') -gt 85 ]; then
      echo "磁盘空间不足" | mail -s "磁盘空间警告" user@example.com
    fi
    
  25. 批量重命名文件
    #!/bin/bash
    for file in *.jpg; do
      mv "$file" "${file%.jpg}.png"
    done
    
  26. 检查系统是否受到 SSH 暴力破解攻击
    #!/bin/bash
    echo "检查SSH登录失败尝试:"
    grep -i "Failed password" /var/log/auth.log | tail
    
  27. 自动备份 MySQL 数据库
    #!/bin/bash
    echo "备份MySQL数据库:"
    mysqldump -u username -p'password' database_name > /path/to/backup.sql
    
  28. 监控特定服务的端口
    #!/bin/bash
    echo "监控服务端口:"
    while ! nc -z host port; do
      echo "服务未运行,正在重启..."
      systemctl restart service_name
      sleep 1
    done
    echo "服务已运行"
    
  29. 清理旧的日志文件
    #!/bin/bash
    echo "清理旧的日志文件:"
    find /path/to/logs -name "*.log" -mtime +30 -exec rm {} ;
  30. 检查和修复文件系统
    #!/bin/bash
    echo "检查和修复文件系统:"
    fsck -y /dev/sda1
    
  31. 监控特定进程是否存在
    #!/bin/bash
    echo "监控特定进程是否存在:"
    pgrep -f process_name
    if [ $? -eq 0 ]; then
      echo "进程正在运行"
    else
      echo "进程未运行"
    fi
    
  32. 自动安装系统更新
    #!/bin/bash
    echo "自动安装系统更新:"
    apt-get update && apt-get upgrade -y
    
  33. 创建一个简单的 Web 服务器
    #!/bin/bash
    echo "创建一个简单的 Web 服务器:"
    python -m SimpleHTTPServer 8000
    
  34. 监控磁盘空间并清理
    #!/bin/bash
    echo "监控磁盘空间并清理:"
    df -h | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read data disk; do
      percent=$(echo $data | cut -d'%' -f1)
      if [ $percent -ge 85 ]; then
        echo "磁盘空间不足,正在清理:$disk"
        sudo apt-get clean
        sudo rm -rf /tmp/* /var/tmp/*
      fi
    done
    
  35. 备份配置文件
    #!/bin/bash
    echo "备份配置文件:"
    cp /path/to/config /path/to/backup/config.$(date +%Y%m%d%H%M%S)
    
  36. 检查系统是否受到 DDoS 攻击
    #!/bin/bash
    echo "检查系统是否受到 DDoS 攻击:"
    if [ $(netstat -n | grep ESTABLISHED | wc -l) -gt 5000 ]; then
      echo "可能受到 DDoS 攻击"
    else
      echo "系统正常"
    fi
    
  37. 自动重启服务
    #!/bin/bash
    echo "自动重启服务:"
    systemctl restart service_name
    
  38. 监控内存使用情况并发送警告邮件
    #!/bin/bash
    echo "监控内存使用情况并发送警告邮件:"
    mem_usage=$(free -m | awk '/Mem:/ { print $3/$2 * 100.0 }')
    if (( $(echo "$mem_usage > 80" | bc -l) )); then
      echo "内存使用率超过80%" | mail -s "内存使用警告" user@example.com
    fi
    
  39. 批量下载文件
    #!/bin/bash
    echo "批量下载文件:"
    wget -m -k -p -np -A.pdf http://example.com/path/to/files
    
  40. 监控特定用户是否存在
    #!/bin/bash
    echo "监控特定用户是否存在:"
    id username &>/dev/null
    if [ $? -eq 0 ]; then
      echo "用户存在"
    else
      echo "用户不存在"
    fi
    
  41. 监控特定服务是否运行
    #!/bin/bash
    echo "监控特定服务是否运行:"
    systemctl is-active service_name
    if [ $? -eq 0 ]; then
      echo "服务正在运行"
    else
      echo "服务未运行"
    fi
    
  42. 检查和修复磁盘配额
    #!/bin/bash
    echo "检查和修复磁盘配额:"
    repquota -a
    quotacheck -avugm
    quotaon -avug
    
  43. 监控系统温度
    #!/bin/bash
    echo "监控系统温度:"
    lm-sensors
    
  44. 自动同步时间
    #!/bin/bash
    echo "自动同步时间:"
    timedatectl set-ntp true
  45. 设置 cron 任务
    #!/bin/bash
    echo "设置 cron 任务:"
    (crontab -l 2>/dev/null; echo "0 0 * * * /path/to/script.sh") | crontab -
    
阅读剩余