tar的高级用法_增量备份_SSH远程归档传送
https://blog.csdn.net/u011457628/article/details/19207355
1 档案分割
将目录进行增量归档并分割为100B
[root@server itsection]# tar -g snapshot.snap -zcpvf - test | split -b 100 - $(date +%Y%m%d%H%M%S).tar.
tar: test: Directory is new
tar: test/test1: Directory is new
test/
test/test1/
test/a
test/b
test/c
test/d
test/e
test/f
test/g
test/h
[root@server itsection]# ll
total 36
-rw-r–r-- 1 root root 100 Nov 27 20:23 20131127202321.tar.aa
-rw-r–r-- 1 root root 100 Nov 27 20:23 20131127202321.tar.ab
-rw-r–r-- 1 root root 100 Nov 27 20:23 20131127202321.tar.ac
-rw-r–r-- 1 root root 100 Nov 27 20:23 20131127202321.tar.ad
-rw-r–r-- 1 root root 14 Nov 27 20:23 20131127202321.tar.ae
-rw-r–r-- 1 root root 157 Nov 27 20:23 snapshot.snap
drwxr-xr-x 3 root root 4096 Nov 27 20:18 test
test目录增加新的文件后,再次归档就会按照snapshot.snap快照信息进行增量备份
[root@server itsection]# tar -g snapshot.snap -zcpvf - test | split -b 100 - $(date +%Y%m%d%H%M%S).tar.
test/
test/test1/
test/m
[root@server itsection]# ll
total 48
-rw-r–r-- 1 root root 100 Nov 27 20:23 20131127202321.tar.aa
-rw-r–r-- 1 root root 100 Nov 27 20:23 20131127202321.tar.ab
-rw-r–r-- 1 root root 100 Nov 27 20:23 20131127202321.tar.ac
-rw-r–r-- 1 root root 100 Nov 27 20:23 20131127202321.tar.ad
-rw-r–r-- 1 root root 14 Nov 27 20:23 20131127202321.tar.ae
-rw-r–r-- 1 root root 100 Nov 27 20:24 20131127202413.tar.aa
-rw-r–r-- 1 root root 100 Nov 27 20:24 20131127202413.tar.ab
-rw-r–r-- 1 root root 24 Nov 27 20:24 20131127202413.tar.ac
-rw-r–r-- 1 root root 159 Nov 27 20:24 snapshot.snap
drwxr-xr-x 3 root root 4096 Nov 27 20:24 test
恢复
每次增量备份需要单独恢复
cat 20131127202321.tar.a* | tar -zxvf -
cat 20131127202413.tar.a* | tar -zxvf -
2 通过ssh进行网络备份与恢复
传输到远程:tar czf - file| ssh server “tar zxf -”
示例:[root@server itsection]# tar cvfz - test | ssh 172.29.88.162 “cd /root/itsection/;tar -zxvf -”
压缩到远程:tar czf - file| ssh server “cat > file.tar.gz”
示例:[root@server itsection]# tar cvfz - test | ssh 172.29.88.162 “(cat > /root/itsection/ssh.backup.tar.gz)”
将本地压缩解压到远程:cat test.tar.gz | ssh server “tar zxf -”
示例:[root@server itsection]# cat test.tar.a* | ssh 172.29.88.162 “cd /root/itsection;tar -zxvf -”
将本地压缩解压到本地:ssh server “cat file.tar.gz” | tar zxf -
示例:
tar命令和ssh配合使用
https://blog.csdn.net/rosekin/article/details/18667291
有个朋友问到,如何在空间不是很富裕的情况,把文件从一个分区tar到另外一个分区,其实还有很多办法的,使用管道命令就可以实现
如:
#tar -cvf home |(cd /datavg35; tar -xvf -)—把home文件打包并解压到/datavg35下;
这里我们又想到另外一个问题,把tar的文件传输到另外一台服务器上(个人感觉这个用处对于大的文件,还是写个shell,先tar在ftp/scp).对于一些小文件且目标服务器空间不足的情况下也是可以考虑使用的.
–A机为源服务器,B机为目标服务器
/* 把A机的t11.txt 打包并传送到B机上 */
[root@erpdemo tmp]# tar cvfz - t11.txt|ssh erpprd “cat >t11.tar.gz”
t11.txt
/* 把A机的t11.txt 打包并传送到B机上的/tmp目录下 */
[root@erpdemo tmp]# tar cvfz - t11.txt |ssh erpprd “cd /tmp;cat >t11.tar.gz”
t11.txt
/将A机的t11.txt压缩文件,复制到B机并解压缩/
[root@erpdemo tmp]#zcat dir.tar | ssh 192.168.0.116 “cd /opt; tar -xf -”
/在A机上一边打包t11.txt文件,一边传输到B机并解压/
[root@erpdemo tmp]# tar cvfz - t11.txt |ssh erpprd “cd /tmp; tar -xvfz -”
在补充几个:
传输到远程:tar czf file| ssh server “tar zxf -”
压缩到远程:tar czf file| ssh server “cat > file.tar.gz”
解压到远程:ssh server “tar zxf -” < file.tar.gz
解压到本地:ssh server “cat file.tar.gz” | tar zxf -