CentOS Stream 8常用备份方法
tar是Linux下经典的归档工具,可将系统或指定目录打包为压缩文件(如.tar.gz),适合完整备份。常用命令示例:
# 备份整个系统(排除临时、虚拟文件系统等无需备份的目录)
sudo tar cvpzf /backups/centos_stream/centos_stream_full_backup_$(date +%Y%m%d).tgz --exclude=/proc --exclude=/lostfound --exclude=/mnt --exclude=/sys --exclude=/dev /
# 备份特定目录(如/etc、/var,排除特殊子目录)
sudo tar czvf /backups/centos_stream/etc_var_backup_$(date +%Y%m%d).tgz --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lostfound"} /etc/ /var/
特点:备份完整,适合离线存储;需预留足够磁盘空间,恢复时需用root权限。
rsync通过对比源与目标文件的差异,仅传输修改过的部分,节省时间和带宽,适合频繁备份(如每日增量)。常用命令示例:
# 备份/etc目录到/backups/centos_stream/,排除特殊目录
sudo rsync -avz --delete --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lostfound"} /etc/ /backups/centos_stream/etc/
# 备份/var目录(同理)
sudo rsync -avz --delete --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lostfound"} /var/ /backups/centos_stream/var/
特点:高效节省空间,支持远程同步(通过SSH);需手动或通过cron设置定期执行。
若系统运行MySQL/MariaDB等数据库,需使用专用工具备份数据库文件,避免数据丢失。以mysqldump为例:
# 备份单个数据库(如wordpress_db)到SQL文件
mysqldump -u root -p wordpress_db > /backups/centos_stream/wordpress_db_$(date +%Y%m%d).sql
# 备份所有数据库
mysqldump -u root -p --all-databases > /backups/centos_stream/all_databases_$(date +%Y%m%d).sql
特点:针对性强,适合结构化数据;备份文件为可执行的SQL脚本,恢复时直接导入数据库。
Syncthing是一款开源的实时文件同步工具,可将本地目录同步到远程服务器或其他设备,适合需要实时备份的场景。主要步骤:
<address>改为0.0.0.0:8384(允许远程访问)。sudo systemctl enable --now syncthing@root)。通过cron设置定时任务,自动运行备份脚本,避免人工遗忘。示例步骤:
#!/bin/bash
BACKUP_DIR="/backups/centos_stream/$(date +%Y%m%d)"
mkdir -p "$BACKUP_DIR"
rsync -avz --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lostfound"} /etc/ "$BACKUP_DIR/etc/"
rsync -avz --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lostfound"} /var/ "$BACKUP_DIR/var/"
tar czvf "$BACKUP_DIR/full_backup_$(date +%Y%m%d).tgz" /etc/ /var/
chmod +x /backup_script.sh。crontab -e,添加以下行(每天凌晨2点执行):0 2 * * * /backup_script.sh
特点:自动化执行,减少人工干预;需定期检查日志确认备份成功。