Linux上有功能强大的tar指令,tar开端是为了制造磁带备份(tape archive)而规划的,它的作用是把文件和目录备份到磁带中,然后从磁带中提取或康复文件。现在咱们能够运用tar来备份数据到任何存储介质上。它是文件级备份,不用考虑底层文件体系类别,并且支撑增量备份。
1. 部分常用选项
-z, –gzip:运用gzip东西(解)紧缩,后缀一般为.gz
-c, –create:tar打包,后缀一般为.tar
-f, –file=:后边马上接打包或紧缩后得到的文件名
-x, –extract:解包指令,与-c对应
-p:保存备份数据的本来权限和特点
-g:后接增量备份的快照文件
-C:指定解紧缩的目录
–exclude:扫除不打包的目录或文件,支撑正则匹配
其他
-X, –exclude-from:在一个文件中列出要扫除的目录或文件(在–exclude=较多时运用)
-t, –list:列出备份档案中的文件列表,不与-c、-x一起呈现
-j, –bzip2:运用bzip2东西(解)紧缩,后缀一般为.bz2
-P:保存绝对路径,解压时相同会主动解压到绝对路径下
-v:(解)紧缩进程显示文件处理进程,常用但不主张对大型文件运用
2. 增量备份(网站)数据
许多体系(运用或网站)每天都有静态文件发生,关于一些比较重要的静态文件假设有进行定时备份的需求,就能够经过tar打包紧缩备份到指定的当地,特别是对一些总文件比较大比较多的状况,还能够运用-g选项来做增量备份。
备份的目录最好运用相对路径,也便是进入到需求备份的根目录下
详细示例办法如下。
12345
备份当时目录下的一切文件# tar -g /tmp/snapshot_data.snap -zcpf /tmp/data01.tar.gz .在需求康复的目录下解压康复# tar -zxpf /tmp/data01.tar.gz -C .
-g选项能够了解备份时给目录文件做一个快照,记载权限和特点等信息,第一次备份时/tmp/snapshot_data.snap不存在,会新建一个并做彻底备份。当目录下的文件有修正后,再次履行第一条备份指令(记住修正后边的档案文件名),会主动依据-g指定的快照文件,增量备份修正正的文件,包含权限和特点,没有动过的文件不会重复备份。
别的需求留意上面的康复,是“保存康复”,即存在相同文件名的文件会被掩盖,而原目录下已存在(但备份档案里没有)的,会仍然保存。所以假设你想彻底康复到与备份文件如出一辙,需求清空原目录。假设有增量备份档案,则还需求运用相同的方法别离解压这些档案,并且要留意次序。
下面演示一个比较归纳的比如,要求:
备份/tmp/data目录,但cache目录以及临时文件扫除在外
由于目录比较大(>4G),所以全备时切割备份的档案(如每个备份档案文件最大1G)
保存一切文件的权限和特点,如用户组和读写权限
12345678910111213141516171819
# cd /tmp/data做一次彻底备份# rm -f /tmp/snapshot_data.snap# tar -g /tmp/snapshot_data.snap -zcpf – –exclude=./cache ./ | split -b 1024M – /tmp/bak_data$(date -I).tar.gz_切割后文件名后会顺次加上aa,ab,ac,…,上面终究的备份归档会保存成bak_data2014-12-07.tar.gz_aabak_data2014-12-07.tar.gz_abbak_data2014-12-07.tar.gz_ac…增量备份能够是与彻底备份如出一辙的指令,但需求留意的是假设你一天备份屡次,或许导致档案文件名重复,那么就会导致备份完成,由于split仍然会从aa,ab开端命名,假设一天的文件发生(修正)量不是特别大,那么主张增量部分不切割处理了:( 一定要切割的话,文件名参加更详尽的时刻如$(date +%Y-%m-%d_%H) )# tar -g /tmp/snapshot_data.snap -zcpf /tmp/bak_data2014-12-07.tar.gz –exclude=./cache ./第二天增备# tar -g /tmp/snapshot_data.snap -zcpf /tmp/bak_data2014-12-08.tar.gz –exclude=./cache ./
康复进程
123456789
康复彻底备份的档案文件能够挑选是否先清空/tmp/data/目录# cat /tmp/bak_data2014-12-07.tar.gz_* | tar -zxpf – -C /tmp/data/康复增量备份的档案文件$ tar –zxpf /tmp/bak_data2014-12-07.tar.gz -C /tmp/data/$ tar –zxpf /tmp/bak_data2014-12-08.tar.gz -C /tmp/data/…一定要确保是按时刻次序康复的,像下面文件名规矩也能够运用上面通配符的方式
假设需求定时备份,如每周一次全备,每天一次增量备份,则能够结合crontab完成。