首页主机资讯centos lamp怎样进行数据备份

centos lamp怎样进行数据备份

时间2026-01-19 07:18:03发布访客分类主机资讯浏览920
导读:CentOS LAMP 数据备份实操指南 一 备份范围与策略 备份范围建议覆盖:网站文件(如 /var/www/html)、数据库(MySQL/MariaDB 数据或逻辑备份)、Web 与 PHP 配置(/etc/httpd/、/etc/...

CentOS LAMP 数据备份实操指南

一 备份范围与策略

  • 备份范围建议覆盖:网站文件(如 /var/www/html)、数据库(MySQL/MariaDB 数据或逻辑备份)、Web 与 PHP 配置(/etc/httpd//etc/php.ini/etc/php.d/)、以及必要的系统配置(如 /etc/hosts、定时任务等按需)。数据库优先采用 mysqldump 做一致性逻辑备份,避免直接拷贝数据目录导致不一致。
  • 备份类型与频率:建议采用“全量 + 增量”组合。例如:每周日做全量,周一至周六做增量;全量保留 4 周、增量保留 7 天(与最近全量对应)。
  • 保留与多副本:结合业务 RPO/RTO 制定保留周期,至少保留 2–4 周;关键数据建议“本地暂存 + 远程集中”双副本。
  • 自动化与验证:用 cron 定时执行;定期做“恢复演练”验证可用性与完整性。

二 数据库备份与恢复

  • 逻辑备份(推荐):使用 mysqldump 导出为 .sql,便于跨版本迁移与一致性校验。示例:
    • 单库备份:mysqldump -u 用户名 -p 数据库名 > /backup/mysql/数据库名_$(date +%F).sql
    • 所有库备份:mysqldump -u 用户名 -p --all-databases > /backup/mysql/full_$(date +%F).sql
    • 指定字符集(避免乱码):mysqldump -u 用户名 -p --default-character-set=utf8mb4 数据库名 > 备份.sql
  • 恢复:先建库(若全量导入可省略),再导入 SQL:mysql -u 用户名 -p 数据库名 < 备份.sql
  • 一致性建议:在备份前对表加读锁并刷新日志(适合停机窗口或读多写少场景):mysqldump -u 用户名 -p --single-transaction --flush-logs --routines --triggers --databases 库名 > 备份.sql--single-transaction 对 InnoDB 一致性友好,--flush-logs 便于基于 binlog 的增量恢复)。

三 网站文件与配置备份

  • 打包归档:对网站根目录与配置目录做压缩归档,便于传输与留存。示例:
    • 网站文件:tar -czvf /backup/www/html_$(date +%F).tar.gz -C /var/www/html .
    • Apache 配置:tar -czvf /backup/conf/httpd_$(date +%F).tar.gz -C /etc httpd
    • PHP 配置:tar -czvf /backup/conf/php_$(date +%F).tar.gz -C /etc php.ini /etc/php.d
  • 增量同步:用 rsync 做文件级增量备份与镜像,适合日常持续备份与远程集中。示例:
    • 本地/远程镜像:rsync -avz --delete /var/www/html/ 用户@备份机:/backup/web/$(hostname)/html/
    • 仅增量传输(配合快照/全量使用):rsync -av --link-dest=../full_上次日期 /var/www/html/ /backup/web/inc_$(date +%F)/
  • 远程拷贝:小量或临时拷贝可用 scpscp -P 22 /backup/mysql/*.sql 用户@备份机:/backup/mysql/

四 自动化与远程集中备份方案

  • 单机自动化脚本示例(含清理与日志):
    #!/bin/bash
    BACKUP_ROOT="/backup"
    MYSQL_USER="backup"
    MYSQL_PASS="YourStrongPass"
    DB_NAME="your_db"
    WWW_DIR="/var/www/html"
    CONF_DIRS="/etc/httpd /etc/php.ini /etc/php.d"
    DATE=$(date +%F)
    LOG="$BACKUP_ROOT/backup_$DATE.log"
    
    mkdir -p $BACKUP_ROOT/{
    mysql,www,conf}
        
    
    # 1) MySQL 逻辑备份
    mysqldump -u"$MYSQL_USER" -p"$MYSQL_PASS" --single-transaction --routines --triggers "$DB_NAME" \
      >
     $BACKUP_ROOT/mysql/${
    DB_NAME}
        _$DATE.sql 2>
        >
        "$LOG"
    
    # 2) 网站文件归档
    tar -czf $BACKUP_ROOT/www/html_$DATE.tar.gz -C $WWW_DIR . 2>
        >
        "$LOG"
    
    # 3) 配置归档
    tar -czf $BACKUP_ROOT/conf/conf_$DATE.tar.gz -C / $(
      echo $CONF_DIRS | xargs -n1 | sed 's/^/\//'
    ) 2>
        >
        "$LOG"
    
    # 4) 远程集中(rsync over SSH)
    rsync -avz --delete -e ssh $BACKUP_ROOT/ user@backup-server:/data/backup/$(hostname)/ 2>
        >
        "$LOG"
    
    # 5) 本地保留策略:保留最近7天
    find $BACKUP_ROOT/mysql -type f -mtime +7 -delete
    find $BACKUP_ROOT/www  -type f -mtime +7 -delete
    find $BACKUP_ROOT/conf  -type f -mtime +7 -delete
    
    echo "[$DATE] Backup finished. See $LOG"
    
    • 加入定时任务(每天 02:00):0 2 * * * /usr/local/bin/backup_lamp.sh
  • 多机集中备份(rsync 守护进程模式,适合大规模):
    • 备份服务器:部署 rsyncd,按客户端 IP/主机名 划分模块,启用认证与访问控制(默认端口 873),数据按 /data/rsync_backup/客户端IP/... 存放,便于隔离与审计。
    • 客户端:按“全量 + 增量”节奏推送;全量日做打包归档,其余日做 rsync 增量 推送;推送完成清理本地临时包。
    • 安全与网络:优先走内网;使用 auth users + secrets fileSSH 保证凭据与传输安全;定期做连通性与恢复演练。

五 恢复与校验要点

  • 数据库恢复:先建库(若需要),再导入:mysql -u 用户名 -p 数据库名 < 备份.sql;多库全量:mysql -u 用户名 -p < full_日期.sql
  • 文件与配置恢复:
    • 解压覆盖:tar -xzvf /backup/www/html_日期.tar.gz -C /var/www/html
    • 配置还原:tar -xzvf /backup/conf/conf_日期.tar.gz -C /
  • 校验清单:
    • 核对 文件数量/大小/权限 与备份清单一致;
    • 抽查导入数据与关键页面/接口可用性;
    • 定期做“全量恢复演练”,并验证 binlog 增量回放(如有开启)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos lamp怎样进行数据备份
本文地址: https://pptw.com/jishu/785388.html
CentOS如何利用nohup实现定时任务 centos lamp怎样配置虚拟主机

游客 回复需填写必要信息