debian

LNMP在Debian上如何自动备份

小樊
52
2025-07-07 20:58:56
栏目: 智能运维

在Debian上使用LNMP(Linux, Nginx, MySQL, PHP)环境时,自动备份数据库和网站文件是一个重要的任务。以下是一个基本的步骤指南,帮助你设置自动备份。

1. 备份MySQL数据库

使用 mysqldump 工具

  1. 创建备份脚本

    创建一个名为 backup_db.sh 的脚本文件:

    nano /usr/local/bin/backup_db.sh
    

    在文件中添加以下内容:

    #!/bin/bash
    
    # 数据库配置
    DB_USER="your_db_user"
    DB_PASSWORD="your_db_password"
    DB_NAME="your_db_name"
    BACKUP_DIR="/path/to/your/backup/directory"
    
    # 当前日期
    DATE=$(date +"%Y%m%d%H%M%S")
    
    # 备份文件名
    FILENAME="$BACKUP_DIR/$DB_NAME-$DATE.sql"
    
    # 执行备份
    mysqldump -u $DB_USER -p$DB_PASSWORD $DB_NAME > $FILENAME
    
    # 压缩备份文件
    gzip $FILENAME
    
    # 删除超过7天的备份文件
    find $BACKUP_DIR -type f -name "*.sql.gz" -mtime +7 -exec rm {} \;
    

    保存并退出编辑器。

  2. 设置脚本权限

    chmod +x /usr/local/bin/backup_db.sh
    
  3. 设置定时任务

    使用 cron 设置定时任务:

    crontab -e
    

    添加以下行以每天凌晨2点执行备份脚本:

    0 2 * * * /usr/local/bin/backup_db.sh
    

2. 备份Nginx配置文件

使用 tar 工具

  1. 创建备份脚本

    创建一个名为 backup_nginx.sh 的脚本文件:

    nano /usr/local/bin/backup_nginx.sh
    

    在文件中添加以下内容:

    #!/bin/bash
    
    # Nginx配置文件路径
    NGINX_CONF="/etc/nginx/nginx.conf"
    BACKUP_DIR="/path/to/your/backup/directory"
    
    # 当前日期
    DATE=$(date +"%Y%m%d%H%M%S")
    
    # 备份文件名
    FILENAME="$BACKUP_DIR/nginx-$DATE.conf"
    
    # 执行备份
    cp $NGINX_CONF $FILENAME
    
    # 压缩备份文件
    gzip $FILENAME
    
    # 删除超过7天的备份文件
    find $BACKUP_DIR -type f -name "*.conf.gz" -mtime +7 -exec rm {} \;
    

    保存并退出编辑器。

  2. 设置脚本权限

    chmod +x /usr/local/bin/backup_nginx.sh
    
  3. 设置定时任务

    使用 cron 设置定时任务:

    crontab -e
    

    添加以下行以每天凌晨3点执行备份脚本:

    0 3 * * * /usr/local/bin/backup_nginx.sh
    

3. 备份网站文件

使用 tar 工具

  1. 创建备份脚本

    创建一个名为 backup_files.sh 的脚本文件:

    nano /usr/local/bin/backup_files.sh
    

    在文件中添加以下内容:

    #!/bin/bash
    
    # 网站文件路径
    SITE_DIR="/var/www/html"
    BACKUP_DIR="/path/to/your/backup/directory"
    
    # 当前日期
    DATE=$(date +"%Y%m%d%H%M%S")
    
    # 备份文件名
    FILENAME="$BACKUP_DIR/site-$DATE.tar.gz"
    
    # 执行备份
    tar -czvf $FILENAME $SITE_DIR
    
    # 删除超过7天的备份文件
    find $BACKUP_DIR -type f -name "*.tar.gz" -mtime +7 -exec rm {} \;
    

    保存并退出编辑器。

  2. 设置脚本权限

    chmod +x /usr/local/bin/backup_files.sh
    
  3. 设置定时任务

    使用 cron 设置定时任务:

    crontab -e
    

    添加以下行以每天凌晨4点执行备份脚本:

    0 4 * * * /usr/local/bin/backup_files.sh
    

总结

通过上述步骤,你可以在Debian上设置自动备份MySQL数据库、Nginx配置文件和网站文件。确保备份目录有足够的空间,并定期检查备份文件的完整性和可用性。

0
看了该问题的人还看了