Linux下使用tar命令进行数据备份的方法
tar是Linux系统自带的经典归档工具,通过“打包+压缩”实现数据备份,支持保留文件权限、增量备份等特性,适用于本地文件系统、目录或单个文件的备份。
使用tar
命令将指定目录打包为.tar.gz
(gzip压缩,节省空间)或.tar.bz2
(bzip2压缩,压缩率更高)文件。常用参数说明:
-c
:创建新的归档文件;-z
:使用gzip压缩;-j
:使用bzip2压缩;-v
:显示备份过程(可选,大型备份建议关闭);-f
:指定备份文件名(必须放在最后)。示例:备份/home/user/documents
目录到/backup/documents_backup.tar.gz
,保留文件权限:
tar -czvpf /backup/documents_backup.tar.gz -C /home/user documents
(-C
参数用于切换到指定目录,避免备份路径中出现绝对路径,提升恢复灵活性。)
通过--exclude
参数排除临时文件、缓存目录等无需备份的内容,减少备份体积。支持通配符(如*.tmp
)。
示例:备份/data
目录,但排除其中的cache
子目录和所有.log
文件:
tar -czvpf /backup/data_backup.tar.gz -C /data --exclude=./cache --exclude=*.log .
使用-g
参数指定“快照文件”(记录文件状态),后续备份时仅复制快照中新增或修改的文件,节省时间和存储空间。
步骤:
① 第一次备份(完全备份):创建快照文件并备份所有文件;
② 后续备份(增量备份):基于快照文件,仅备份变化的文件。
示例:
# 第一次完全备份(创建快照文件/tmp/data_snapshot.snap)
tar -g /tmp/data_snapshot.snap -czvpf /backup/data_full.tar.gz -C /data .
# 第二次增量备份(仅备份变化的文件)
tar -g /tmp/data_snapshot.snap -czvpf /backup/data_incremental_$(date +%F).tar.gz -C /data .
使用tar
命令解压备份文件,恢复到指定目录。常用参数:
-x
:解压文件;-C
:指定恢复目标目录(可选,默认恢复到当前目录)。示例:
① 解压完全备份文件到/data
目录:
tar -xzvpf /backup/data_backup.tar.gz -C /data
② 解压增量备份文件(需按时间顺序恢复,先恢复完全备份,再恢复增量备份):
tar -xzvpf /backup/data_incremental_2025-09-30.tar.gz -C /data
通过cron
设置定时任务,定期执行备份命令,避免手动操作遗漏。
步骤:
① 编辑当前用户的cron表:crontab -e
;
② 添加定时任务(例如每天凌晨2点备份/data
目录):
0 2 * * * tar -czvpf /backup/data_daily_$(date +\%F).tar.gz -C /data .
(%
需转义为\%
,避免cron解析错误。)
-p
参数,确保恢复后文件的权限、所有者等信息与原文件一致;tar -tzvf backup.tar.gz
查看备份内容;-C
参数切换目录,避免备份文件中包含绝对路径(如/home/user
),提升恢复灵活性。