centos文件管理如何备份
导读:CentOS文件管理备份实用指南 一 备份范围与策略 识别关键数据:优先备份**/etc**(系统配置)、/home(用户数据)、业务数据目录(如**/var/www或自定义应用目录)、以及数据库目录(如/var/lib/mysql**)...
CentOS文件管理备份实用指南
一 备份范围与策略
- 识别关键数据:优先备份**/etc**(系统配置)、/home(用户数据)、业务数据目录(如**/var/www或自定义应用目录)、以及数据库目录(如/var/lib/mysql**)。数据库建议用各自工具做逻辑备份(如mysqldump/pg_dump),避免直接拷贝运行中的数据文件。
- 备份策略建议:日常用rsync增量保持一致性,定期做tar全量归档;重大变更前用LVM快照获取一致性点;关键业务可再配合远程副本或企业级方案(如Bacula/Bareos)。
- 保留与异地:至少保留7–30天的历史版本,并做异地/离线副本;定期做恢复演练验证可用性。
二 常用工具与典型命令
- rsync 增量同步(本地或远程)
- 本地镜像:rsync -avz --delete /src/ /dst/(末尾斜杠含义重要,/src/ 表示同步目录内容)
- 远程镜像:rsync -avz --delete -e ssh /src/ user@host:/dst/
- 增量保留(硬链接多版本):rsync -av --delete --link-dest=/dst/prev /src/ /dst/current
- tar 归档压缩(全量快照)
- 目录:tar -czvf /backup/etc_$(date +%F).tar.gz /etc
- 全系统(排除虚拟/临时文件系统):tar -cvpzf /backup/full_$(date +%F).tar.gz --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/run --exclude=/mnt --exclude=/backup /
- 数据库逻辑备份
- MySQL/MariaDB:mysqldump -u root -p --single-transaction --routines --triggers db > db_$(date +%F).sql
- PostgreSQL:pg_dump -U user db > db_$(date +%F).sql
- 块级镜像(整盘/分区)
- 镜像到文件:dd if=/dev/sda of=/backup/disk.img bs=4M status=progress
- 盘到盘克隆:dd if=/dev/sda of=/dev/sdb bs=4M status=progress(目标盘容量需≥源盘)
- LVM 快照(一致性点)
- 创建快照:lvcreate -L 10G -s -n snap /dev/vg0/lv_root
- 挂载并备份:mount /dev/vg0/snap /mnt/snap & & tar -czvf /backup/snap_$(date +%F).tar.gz /mnt/snap
- 清理:umount /mnt/snap & & lvremove /dev/vg0/snap
- 企业/进阶方案
- 网络集中备份:Bacula/Bareos;版本化快照:rsnapshot;加密增量:duplicity。
三 自动化与远程备份
- 备份脚本范例(含日志与多目录)
- 脚本:
- #!/bin/bash
SOURCE_DIRS=“/etc /home /var/www”
DEST_DIR=“/mnt/backup_drive/centos_backups”
LOG_FILE=“/var/log/centos_backup.log”
DATE=$(date +%Y%m%d%H%M%S)
mkdir -p “$DEST_DIR”
echo “=== Backup $DATE ===” > > “$LOG_FILE”
for DIR in $SOURCE_DIRS; do
rsync -avz --delete “$DIR” “$DEST_DIR/$(basename $DIR)” > > “$LOG_FILE” 2> & 1
if [ $? -eq 0 ]; then echo “$DIR OK” > > “$LOG_FILE”; else echo “$DIR FAILED” > > “$LOG_FILE”; fi
done
tar -czvf “$DEST_DIR/etc_config_$DATE.tar.gz” /etc > > “$LOG_FILE” 2> & 1
echo “=== End $DATE ===” > > “$LOG_FILE”
- #!/bin/bash
- 赋权:chmod +x /path/backup_script.sh
- 脚本:
- 定时任务(cron)
- 每天02:00执行:0 2 * * * /path/backup_script.sh
- 每周日03:30执行:30 3 * * 0 /path/backup_script.sh
- 远程传输
- 推送归档:scp /backup/file.tar.gz user@host:/backup/
- 远程同步:rsync -avz -e ssh /backup/ user@host:/backup/
四 恢复与校验
- 从 tar 恢复
- 全量:tar -xvpzf /backup/full_2025-11-23.tar.gz -C /
- 配置:tar -xvpzf /backup/etc_2025-11-23.tar.gz -C /
- SELinux 上下文修复:restorecon -Rv /
- 从 rsync 恢复
- 目录级:rsync -av /backup/home/ /home/
- 若使用 --link-dest 的多版本,直接取对应时间目录回滚
- 从 dd 镜像恢复
- 镜像到盘:dd if=/backup/disk.img of=/dev/sda bs=4M status=progress
- 注意:目标盘容量需≥源盘,操作前确认 if/of 参数,避免数据覆写
- 校验与演练
- 定期核对备份文件大小、列表与关键文件可用性;按季度(或更短周期)进行真实恢复演练,验证流程与时效
五 注意事项与最佳实践
- 使用 --delete 前务必确认源与目标路径,避免误删;远程备份优先使用SSH并限制备份账号权限。
- 全系统打包时务必排除**/proc、/sys、/dev、/run、/mnt、/backup**等虚拟或临时挂载点,防止递归与膨胀。
- 数据库备份优先用mysqldump/pg_dump获取一致性快照;文件系统级备份仅作补充。
- 保留策略与监控:至少保留7–30天历史,监控备份日志与磁盘空间,出现失败及时告警与重试。
- 变更窗口前创建LVM快照,为回滚预留一致性点;关键业务建议增加异地副本与离线介质存储。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos文件管理如何备份
本文地址: https://pptw.com/jishu/754675.html
