VPS常用命令与脚本

Linux服务器管理必备命令参考,实用脚本一键部署。提高服务器运维效率,解决常见管理问题。

》最新活动-促销产品 16H16G 200元/月《

常用命令参考

Linux服务器管理中最常用的命令,按功能分类整理,方便快速查找和使用。

实用脚本集

经过验证的实用Shell脚本,可一键执行或根据需求修改使用。

服务器信息收集脚本
#!/bin/bash
# ======================================================
# 服务器信息收集脚本
# 作者: VPS工具箱
# 描述: 收集并显示服务器的基本信息和运行状态
# ======================================================

echo "=========================================="
echo "         服务器信息收集报告"
echo "=========================================="
echo ""
echo "1. 系统信息"
echo "------------------------------------------"
hostnamectl
echo ""
echo "2. 系统运行时间和负载"
echo "------------------------------------------"
uptime
echo ""
echo "3. 内存使用情况"
echo "------------------------------------------"
free -h
echo ""
echo "4. 磁盘使用情况"
echo "------------------------------------------"
df -h
echo ""
echo "5. CPU信息"
echo "------------------------------------------"
lscpu | grep -E "Model name|CPU\(s\)|Thread|Core"
echo ""
echo "6. 网络连接"
echo "------------------------------------------"
ss -tunlp | head -20
echo ""
echo "7. 当前登录用户"
echo "------------------------------------------"
who
echo ""
echo "8. 进程使用资源TOP 10"
echo "------------------------------------------"
ps aux --sort=-%cpu | head -11
echo ""
echo "=========================================="
echo "信息收集完成于: $(date)"
echo "=========================================="

脚本说明

此脚本用于快速收集服务器的基本信息和运行状态,包括系统信息、内存、磁盘、CPU使用情况等。适用于服务器巡检和故障排查。

  • 使用方法: 保存为 server-info.sh,添加执行权限(chmod +x server-info.sh),然后运行(./server-info.sh)
  • 输出: 显示服务器各项关键信息
  • 适用系统: CentOS, Ubuntu, Debian等主流Linux发行版
网站自动化备份脚本
#!/bin/bash
# ======================================================
# 网站自动化备份脚本
# 作者: VPS工具箱
# 描述: 自动备份网站文件和数据库,保留指定天数
# ======================================================

# 配置变量
BACKUP_DIR="/backup/web"          # 备份保存目录
WEBSITE_DIR="/var/www/html"       # 网站目录
DB_NAME="website_db"              # 数据库名称
DB_USER="root"                    # 数据库用户名
DB_PASS="your_password"           # 数据库密码
KEEP_DAYS=7                       # 保留最近7天的备份

# 创建备份目录
mkdir -p $BACKUP_DIR

# 生成时间戳
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")

# 备份网站文件
echo "正在备份网站文件..."
tar -czf "$BACKUP_DIR/website_files_$TIMESTAMP.tar.gz" -C $(dirname $WEBSITE_DIR) $(basename $WEBSITE_DIR)

# 备份MySQL数据库
echo "正在备份MySQL数据库..."
mysqldump -u$DB_USER -p$DB_PASS $DB_NAME | gzip > "$BACKUP_DIR/database_$TIMESTAMP.sql.gz"

# 备份PostgreSQL数据库 (如果使用)
# echo "正在备份PostgreSQL数据库..."
# pg_dump $DB_NAME | gzip > "$BACKUP_DIR/pg_database_$TIMESTAMP.sql.gz"

# 生成备份报告
echo "生成备份报告..."
echo "备份时间: $(date)" > "$BACKUP_DIR/backup_report_$TIMESTAMP.txt"
echo "备份文件: website_files_$TIMESTAMP.tar.gz" >> "$BACKUP_DIR/backup_report_$TIMESTAMP.txt"
echo "备份大小: $(du -h "$BACKUP_DIR/website_files_$TIMESTAMP.tar.gz" | cut -f1)" >> "$BACKUP_DIR/backup_report_$TIMESTAMP.txt"
echo "数据库备份: database_$TIMESTAMP.sql.gz" >> "$BACKUP_DIR/backup_report_$TIMESTAMP.txt"
echo "数据库大小: $(du -h "$BACKUP_DIR/database_$TIMESTAMP.sql.gz" | cut -f1)" >> "$BACKUP_DIR/backup_report_$TIMESTAMP.txt"

# 清理旧备份
echo "清理 $KEEP_DAYS 天前的旧备份..."
find $BACKUP_DIR -name "*.tar.gz" -mtime +$KEEP_DAYS -delete
find $BACKUP_DIR -name "*.sql.gz" -mtime +$KEEP_DAYS -delete
find $BACKUP_DIR -name "*.txt" -mtime +$KEEP_DAYS -delete

echo "=========================================="
echo "备份完成!"
echo "备份文件保存在: $BACKUP_DIR"
echo "备份报告: $BACKUP_DIR/backup_report_$TIMESTAMP.txt"
echo "=========================================="

脚本说明

此脚本用于自动化备份网站文件和数据库,可配置保留天数自动清理旧备份。适合用于定期备份任务。

  • 使用方法: 修改脚本开头的配置变量,然后执行脚本
  • 定时任务: 可使用crontab设置每日自动备份,例如: 0 2 * * * /path/to/website-backup.sh
  • 注意事项: 请根据实际情况修改数据库名称、用户名和密码
服务器监控与告警脚本
#!/bin/bash
# ======================================================
# 服务器监控与告警脚本
# 作者: VPS工具箱
# 描述: 监控服务器关键指标,超过阈值发送告警
# ======================================================

# 配置变量
ALERT_EMAIL="admin@example.com"   # 告警接收邮箱
CPU_THRESHOLD=80                  # CPU使用率阈值(%)
MEM_THRESHOLD=85                  # 内存使用率阈值(%)
DISK_THRESHOLD=85                 # 磁盘使用率阈值(%)
LOG_FILE="/var/log/server_monitor.log"

# 获取当前时间
TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")

# 检查CPU使用率
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d'%' -f1)
if (( $(echo "$CPU_USAGE > $CPU_THRESHOLD" | bc -l) )); then
    echo "[$TIMESTAMP] 警告: CPU使用率过高 - ${CPU_USAGE}%" >> $LOG_FILE
    # 发送邮件告警 (需要配置邮件服务器)
    # echo "CPU使用率过高: ${CPU_USAGE}%" | mail -s "服务器告警" $ALERT_EMAIL
fi

# 检查内存使用率
MEM_TOTAL=$(free -m | awk 'NR==2{print $2}')
MEM_USED=$(free -m | awk 'NR==2{print $3}')
MEM_USAGE=$(echo "scale=2; $MEM_USED/$MEM_TOTAL*100" | bc)
if (( $(echo "$MEM_USAGE > $MEM_THRESHOLD" | bc -l) )); then
    echo "[$TIMESTAMP] 警告: 内存使用率过高 - ${MEM_USAGE}%" >> $LOG_FILE
    # 发送邮件告警
    # echo "内存使用率过高: ${MEM_USAGE}%" | mail -s "服务器告警" $ALERT_EMAIL
fi

# 检查磁盘使用率
DISK_USAGE=$(df -h / | awk 'NR==2{print $5}' | cut -d'%' -f1)
if [ $DISK_USAGE -gt $DISK_THRESHOLD ]; then
    echo "[$TIMESTAMP] 警告: 磁盘使用率过高 - ${DISK_USAGE}%" >> $LOG_FILE
    # 发送邮件告警
    # echo "磁盘使用率过高: ${DISK_USAGE}%" | mail -s "服务器告警" $ALERT_EMAIL
fi

# 检查网络连接数
CONN_COUNT=$(ss -tun | tail -n +2 | wc -l)
if [ $CONN_COUNT -gt 1000 ]; then
    echo "[$TIMESTAMP] 警告: 网络连接数过高 - ${CONN_COUNT}" >> $LOG_FILE
fi

# 检查关键服务状态
SERVICES=("nginx" "mysql" "ssh")
for SERVICE in "${SERVICES[@]}"; do
    if ! systemctl is-active --quiet $SERVICE; then
        echo "[$TIMESTAMP] 警告: 服务 $SERVICE 未运行" >> $LOG_FILE
        # 尝试重启服务
        systemctl restart $SERVICE
        if systemctl is-active --quiet $SERVICE; then
            echo "[$TIMESTAMP] 信息: 服务 $SERVICE 已重启成功" >> $LOG_FILE
        else
            echo "[$TIMESTAMP] 错误: 服务 $SERVICE 重启失败" >> $LOG_FILE
        fi
    fi
done

# 生成监控报告
echo "==========================================" >> $LOG_FILE
echo "监控时间: $TIMESTAMP" >> $LOG_FILE
echo "CPU使用率: ${CPU_USAGE}%" >> $LOG_FILE
echo "内存使用率: ${MEM_USAGE}%" >> $LOG_FILE
echo "磁盘使用率: ${DISK_USAGE}%" >> $LOG_FILE
echo "网络连接数: ${CONN_COUNT}" >> $LOG_FILE
echo "==========================================" >> $LOG_FILE

echo "监控完成,详细日志查看: $LOG_FILE"

脚本说明

此脚本用于监控服务器关键指标(CPU、内存、磁盘、服务状态),超过阈值可触发告警。适合用于服务器健康状态监控。

  • 使用方法: 配置阈值和告警邮箱,添加执行权限后运行
  • 定时任务: 建议添加到crontab中每5分钟执行一次
  • 邮件告警: 需要先配置服务器的邮件发送功能
  • 扩展功能: 可添加短信告警、微信通知等

更多资源

扩展您的服务器管理知识,了解更多高级技巧和最佳实践。