02-Linux系統壓縮打包
阿新 • • 發佈:2018-06-05
tar zip 壓縮的好處主要有:
節省磁盤空間占用率
節省網絡傳輸帶寬消耗
網絡傳輸更加快捷
Linux系統常見的後綴名所對應的壓縮工具
.gz gzip //壓縮工具壓縮的文件 .bz2 bzip2 //壓縮工具壓縮的文件 .tar tar //tar沒有壓縮功能,只是把一個目錄合並成一個文件 .tar.gz //先使用tar打包,然後使用gzip壓縮歸檔 .tar.bz2 //先使用tar打包,然後使用bzip壓縮歸檔
註意:
1.Linux下常用壓縮文件以.tar.gz結尾.
2.Linux下壓縮文件必須帶後綴.
ZIP壓縮工具
zip是壓縮工具,unzip是解壓縮工具
//壓縮文件為zip包 [root@localhost ~]# zip filename.zip filename //壓縮目錄為zip包 [root@localhost ~]# zip -r dir.zip dir/ //解壓zip文件包 [root@localhost ~]# unzip filename.zip
TAR壓縮工具
語法:tar [-zjxcvfpP] filename
c //創建新的歸檔文件
x //對歸檔文件解包
t //列出歸檔文件裏的文件列表
v //輸出命令的歸檔或解包的過程
f //指定包文件名,多參數f寫最後
C //指定解壓目錄位置
z //使用gzip壓縮歸檔後的文件(.tar.gz)
j //使用bzip2壓縮歸檔後的文件(.tar.bz2)
J //使用xz壓縮歸檔後的文件(tar.xz)
X //排除多個文件(寫入需要排除的文件名稱)
h //打包軟鏈接
**--exclude //在打包的時候寫入需要排除文件或目錄**
1.將文件或目錄進行打包壓縮
//以gzip方式打包壓縮 tar czf test.tar.gz test/ test2/ //以bz2方式壓縮 tar cjf test.tar.bz2 dir.txt dir/ //打包鏈接文件,打包鏈接文件的真實文件 [root@localhost ~]# cd / [root@localhost /]# tar czfh local.tar.gz etc/rc.local //打包/tmp下所有文件 [root@localhost ~]# cd / [root@localhost /]# find tmp/ -type f |xargs tar czf tmp.tar.gz //打包/tmp下所有文件 [root@localhost /]# tar czf tmp.tar.gz | xargs find tmp/ -type f //打包/tmp下所有文件 [root@localhost /]# tar czf tmp.tar.gz `find tmp/ -type f`
2.排除文件, 並打包壓縮
//排除單個文件 [root@localhost /]# tar czf etc.tar.gz --exclude=etc/services etc/ //排除多個文件 [root@localhost /]# tar czf etc.tar.gz --exclude=etc/services --exclude=etc/rc.local etc/ //將需要排除的文件寫入文件中 [root@localhost /]# cat paichu.list etc/services etc/rc.local etc/rc.d/rc.local //指定需要排除的文件列表, 最後進行打包壓縮 [root@localhost /]# tar czfX etc.tar.gz paichu.list etc/
3.查看壓縮文件
//查看壓縮包內容和解壓
[root@xuliangwei /]# tar tf test.tar.gz
4.解壓縮文件
//排除單個文件
[root@localhost /]# tar czf etc.tar.gz --exclude=etc/services etc/
//排除多個文件
[root@localhost /]# tar czf etc.tar.gz --exclude=etc/services --exclude=etc/rc.local etc/
//將需要排除的文件寫入文件中
[root@localhost /]# cat paichu.list
etc/services
etc/rc.local
etc/rc.d/rc.local
//指定需要排除的文件列表, 最後進行打包壓縮
[root@localhost /]# tar czfX etc.tar.gz paichu.list etc/
TAR實踐案例
案例1 mysql
物理備份及恢復
[root@localhost ~]# tar -cJf /backup/mysql.tar.xz /var/lib/mysql
[root@localhost ~]# tar -xf /backup/mysql.tar.xz -C /
案例2 mysql
物理備份及恢復
[root@localhost ~]# cd /var/lib/mysql
[root@localhost mysql]# tar -cJf /backup/mysql.tar.xz *
[root@localhost mysql]# tar -tf /backup/mysql.tar.xz
[root@localhost mysql]# tar -xf /backup/mysql.tar.xz -C /var/lib/mysql
案例3 host A /etc (海量小文件) --> host A /tmp
[root@localhost ~]# tar -czf - /etc |tar -xzf - -C /tmp
案例4 host A /etc (海量小文件) --> host B /tmp
//常規方法
[root@localhost ~]# scp -r /etc 192.168.69.113:/tmp
//建議方法:
//接收B主機, 需要監聽端口
[root@hostB ~]# systemctl stop firewalld.service
[root@hostB ~]# nc -l 8888 |tar -xzf - -C /tmp
//發送方A主機
[root@hostA ~]# tar -czf - /etc | nc 192.168.69.113 8888
tar: Removing leading `/‘ from member names
02-Linux系統壓縮打包