温馨提示×

LNMP环境下Ubuntu如何进行备份与恢复

小樊
52
2025-08-19 10:26:18
栏目: 智能运维

备份策略

  • 数据库备份:用mysqldump工具导出数据库为SQL文件,可全库或单库备份,建议每日执行并压缩存储。
    mysqldump -u 用户名 -p密码 数据库名 > backup.sql  # 全库备份示例
    
  • 文件备份
    • Nginx配置:备份/etc/nginx/目录,可使用tarrsync
      sudo tar -czvf nginx_backup.tar.gz /etc/nginx/  # 打包配置文件
      
    • PHP代码:备份网站根目录(如/var/www/html/),支持增量备份。
      sudo rsync -aAXv /var/www/html/ /backup/php_code/  # 增量同步
      
  • 系统备份
    • Timeshift:备份系统镜像,支持增量备份,适合桌面和服务器。
      sudo apt install timeshift  # 安装后配置备份路径和计划
      
    • dd命令:备份整个磁盘或分区,适合系统迁移。
      sudo dd if=/dev/sda of=/backup/system.img bs=4M  # 备份系统盘
      

恢复策略

  • 数据库恢复
    • mysql命令导入SQL文件,需先停止MySQL服务。
      sudo systemctl stop mysql
      mysql -u 用户名 -p密码 数据库名 < backup.sql
      sudo systemctl start mysql
      
  • 文件恢复
    • tar解压或rsync同步备份文件到原路径,注意权限设置。
      sudo tar -xzvf nginx_backup.tar.gz -C /  # 解压配置文件
      sudo rsync -a /backup/php_code/ /var/www/html/  # 同步代码文件
      
  • 系统恢复
    • 通过Timeshift恢复系统镜像,需从Live USB启动。
    • 使用dd命令将备份的磁盘镜像写入原磁盘。

自动化备份

  • crontab定时执行备份脚本,例如每日凌晨备份数据库和文件。
    crontab -e
    0 3 * * * /path/to/backup_script.sh  # 每天3点执行
    

注意事项

  • 备份前停止相关服务,避免数据不一致。
  • 定期测试备份文件的可恢复性,确保有效性。
  • 重要数据建议采用“本地+远程+云存储”多层备份。

参考来源:[1,2,4,5,6,7,8,9,10,11,13]

0