TAR 实现 Linux 操作系统备份
Tar 命令工具除了用于日常打包、解压源码包或者压缩包之外,最大的亮点是还可以用于 Linux 操作系统文件及目录的备份,使用 tar -g 可以基于 GNU 格式的增量备份,备份原
理是基于检查目录或者文件的 atime、mtime、ctime 属性是否被修改。文件及目录时间属性
详解如下:
文件被访问的时间(Access time,atime);
文件内容被改变的时间(Modified time,mtime);
文件写入、权限更改的时间(Change time,ctime)。
总结,更改文件内容 mtime 和 ctime 都会改变,但 ctime 可以在 mtime 未发生变化时被更改,例如修改文件权限,文件 mtime 时间不变,而 ctime 时间改变。TAR 增量备份案例演示步骤如下
(1) /root 目录创建 jingfeng 文件夹,同时在 jingfeng 文件夹中,新建 jf1.txt,jf2.txt 文件,
(2) 使用 tar 命令第一次完整备份 jingfeng 文件夹中的内容,-g 指定快照 snapshot 文件,第一次没有该文件则会自动创建
cd /root/jingfeng/
tar -g /data/backup/snapshot -czvf /data/backup/2017jingfeng.tar.gz
(3) 使用 tar 命令第一次完整备 份 jingfeng 文件夹中之后,会 生成快照文件:/data/backup/snapshot,后期增量备份会以 snapshot 文件为参考,在 jingfeng 文件夹中再创建 jf3.txt jf4.txt 文件,然后通过 tar 命令增量备份 jingfeng 目录所有内容,如图
cd /root/jingfeng/
touch jf3.txt jf4.txt
tar -g /data/backup/snapshot -czvf /data/backup/2017jingfeng_add1.tar.gz *
如上图所示,增量备份时,需-g 指定第一次完整备份的快照 snapshot 文件,同时增
量打包的文件名不能跟第一次备份后的文件名重复,通过 tar –tf 可以查看打包后的文件内容。
[root@localhost songlss]# tar -g /data/backup/snapshot -czvf dff.tar.gz ./*
tar: ./Desktop: Directory is new
tar: ./dfg: Directory is new
tar: ./Documents: Directory is new
tar: ./Downloads: Directory is new
tar: ./Music: Directory is new
tar: ./Pictures: Directory is new
tar: ./Public: Directory is new
tar: ./Templates: Directory is new
tar: ./Videos: Directory is new
./1.txt
./12.txt
./123.txt
./Desktop/
./Documents/
./Downloads/
./Music/
./Pictures/
./Public/
./Templates/
./Videos/
./dfg/
./dfg/1.txt
./dfg/2.txt
./dfg/3.txt
./dfg/4.txt
./dfg/aa.tar.bz2
./dfg/ddd.tar.gz
./dfg/dfg.tar.gz
[root@localhost songlss]# cd /data/backup/
[root@localhost backup]# ls
snapshot
[root@localhost backup]# cd snapshot
bash: cd: snapshot: Not a directory
[root@localhost backup]# cat snapshot
GNU tar-1.23-2
15532250893655690140155230354769007620020501446332./Public0155230354769007620020501446330./Downloads0155230354769007620020501446329./Desktop0155230354769007620020501446336./Videos015532245497100602720501446371./dfgY1.txtY2.txtY3.txtY4.txtYaa.tar.bz2Yddd.tar.gzYdfg.tar.gz0155230354769007620020501446331./Templates0155230354769007620020501446335./Pictures0155230354769007620020501446334./Music0155230354769007620020501446333./Documents[root@localhost backup]#