上一篇
Linux如何快速备份文件夹
- Linux
- 2025-07-06
- 7
使用 cp -r命令复制文件夹;或用 tar命令打包压缩, , cp -r /源文件夹 /备份路径 或 tar -czvf 备份名.tar.gz /源文件夹
方法1:使用 cp 命令(简单复制)
适用场景:快速小文件备份
步骤:
cp -r /源文件夹路径 /备份目录路径
示例:
cp -r ~/Documents /backup/Documents_backup
参数说明:
- -r:递归复制子目录和文件
- -v:显示复制进度(可选)
注意:cp 会覆盖同名文件,不适合增量备份。
方法2:使用 rsync 命令(增量备份推荐)
适用场景:高效同步/增量备份,支持本地和远程
步骤:

示例:
rsync -av --delete ~/Photos/ /backup/Photos/
参数解析:
- -a:归档模式(保留权限、时间戳等)
- -v:显示详细过程
- --delete:删除备份端多余文件(保持严格同步)
- 末尾的 表示复制文件夹内容(不加 会创建子目录)
远程备份示例(备份到另一台服务器):
rsync -avz -e ssh ~/Data/ user@remote-server:/backup/
方法3:使用 tar 命令(打包压缩)
适用场景:长期归档或节省空间
步骤:

示例:
tar -czvf project_backup_$(date +%F).tar.gz ~/project/
参数说明:
- -c:创建压缩包
- -z:用gzip压缩
- -v:显示过程
- -f:指定文件名
- $(date +%F):自动添加日期(如 project_backup_2025-10-05.tar.gz)
解压命令:
tar -xzvf 备份名.tar.gz -C /解压目录
方法4:使用 dd 命令(磁盘级备份)
适用场景:完整分区/磁盘备份(需谨慎操作)
步骤:
dd if=/源分区路径 of=/备份文件路径/备份名.img bs=4M status=progress
示例:
dd if=/dev/sdb1 of=/backup/disk_backup.img bs=4M status=progress
警告:
- if(输入文件)和 of(输出文件)参数勿颠倒,否则可能覆盖数据!
- 仅适用于块设备(如 /dev/sdb1),普通文件夹需先挂载为分区。
方法5:自动化备份脚本(cron定时任务)
步骤:
- 创建备份脚本 /backup_script.sh: #!/bin/bash rsync -av --delete ~/重要文件/ /backup/每日备份/ tar -czvf /backup/周备份/备份_$(date +%U).tar.gz ~/项目数据/
- 添加执行权限: chmod +x /backup_script.sh
- 设置cron任务(每天凌晨备份): crontab -e
添加行:
0 2 * * * /path/to/backup_script.sh
最佳实践建议
- 3-2-1原则:
- 保留3份备份
- 使用2种不同介质(如硬盘+云存储)
- 1份离线保存(防索要软件)
- 验证备份:
- 定期检查备份文件完整性(tar -tf 备份名.tar.gz 查看内容)
- 云存储方案:
- 使用 rclone 同步到Google Drive、AWS S3等: rclone sync /本地文件夹 remote:云存储路径
为什么这些方法可靠?
- rsync:通过校验和避免数据损坏,增量备份节省时间空间
- tar:保留文件元数据(权限、所有者),压缩减少存储成本
- 自动化脚本:避免人为遗漏,cron日志可审计
引用说明:
- Linux man 手册(命令详情:man cp, man rsync, man tar, man dd)
- 开源工具文档:rsync, rclone
- 备份策略参考:NIST SP 800-34(联邦机构容灾指南)
