您的位置 首页 技术

tar指令高档用法――备份数据

Linux上有功能强大的tar命令,tar最初是为了制作磁带备份(tape archive)而设计的,它的作用是把文件和目录备份到磁带中,然后从磁带中提取或恢复文件。

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完成。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/jishu/322936.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部