. tar 將多個文件打包在一起,,並可以實現解壓打包的文件 -z # 通過gzip壓縮或解壓 -c # 創建新的jar包 -v # 顯示tar命令執行過程 -f # 指定文件壓縮名字 -t # 不解壓查看壓縮包內容 -p # 保持穩健的原有屬性 -P # 以絕對路徑打包,危險參數 --exclud ...
. tar
將多個文件打包在一起,,並可以實現解壓打包的文件
-z # 通過gzip壓縮或解壓
-c # 創建新的jar包
-v # 顯示tar命令執行過程
-f # 指定文件壓縮名字
-t # 不解壓查看壓縮包內容
-p # 保持穩健的原有屬性
-P # 以絕對路徑打包,危險參數
--exclude=PATTERN # 打包時排除不需要處理的文件或目錄
-h # 打包軟連接文件指向的
-j # bzip2命令壓縮或解壓
-x # 加壓tar包
-C # 解壓到指定目錄
--hard-derefrence #打包硬鏈接文件
[root@mysql-141 ~]# mkdir -p /test [root@mysql-141 ~]# touch /test/{01..10}.txt [root@mysql-141 ~]# ls /test/{01..10}.txt /test/01.txt /test/03.txt /test/05.txt /test/07.txt /test/09.txt /test/02.txt /test/04.txt /test/06.txt /test/08.txt /test/10.txt [root@mysql-141 ~]# cd /test/ [root@mysql-141 ~]# tar zvf test.tar.gz /test/ [root@mysql-141 test]# tar ztvf test.tar.gz -C /tmp/ [root@mysql-141 test]# tar zcvf www.tar.gz ./html/ --exclude=test/A [root@mysql-141 test]# tar zxf test.tar.gz
. gzip
將一個大文件通過壓縮演算法變成一個小文件,gzip命令不能直接壓縮目錄,因此需要先用tar打包成一個文件,然後tar再調用gzip進行壓縮
-d # 加開壓縮文件
-v # 顯示指令執行的過程
-l # 列出壓縮文件的內容消息
-c # 將內容輸出到標準輸出,不改變原始文件
-r # 將目錄下的所有文件遞歸進行壓縮操作
-t # 測試,檢查壓縮文件是否完整
[root@mysql-141 test]# ls 01.txt 03.txt 05.txt 07.txt 09.txt 02.txt 04.txt 06.txt 08.txt 10.txt [root@mysql-141 test]# gzip *.txt [root@mysql-141 test]# ls 01.txt.gz 03.txt.gz 05.txt.gz 07.txt.gz 09.txt.gz 02.txt.gz 04.txt.gz 06.txt.gz 08.txt.gz 10.txt.gz [root@mysql-141 test]# gzip -l *.gz compressed uncompressed ratio uncompressed_name 27 0 0.0% 01.txt 27 0 0.0% 02.txt 27 0 0.0% 03.txt 27 0 0.0% 04.txt 27 0 0.0% 05.txt 27 0 0.0% 06.txt 27 0 0.0% 07.txt 27 0 0.0% 08.txt 27 0 0.0% 09.txt 27 0 0.0% 10.txt [root@mysql-141 test]# echo >11.txt [root@mysql-141 test]# ls 01.txt.gz 03.txt.gz 05.txt.gz 07.txt.gz 09.txt.gz 11.txt 02.txt.gz 04.txt.gz 06.txt.gz 08.txt.gz 10.txt.gz [root@mysql-141 test]# gzip -c 11.txt >11.txt.gz # 壓縮保留源文件 [root@mysql-141 test]# ls 01.txt.gz 03.txt.gz 05.txt.gz 07.txt.gz 09.txt.gz 11.txt 02.txt.gz 04.txt.gz 06.txt.gz 08.txt.gz 10.txt.gz 11.txt.gz
. unzip
unzip命令可以解壓zip命令或其他壓縮軟體壓縮的zip格式的文件
. scp
在不同主機之間複製文件,採用ssh協議來保證複製的安全性,scp命令每次都是全量複製,效率不高
scp [options] [[user@]host1:]file1 ... [[user@]host2:]file2
-C # 壓縮傳輸
-l # 指定傳輸占用的帶寬
-P port # 指定埠號傳輸
-p # 傳輸後保留文件的原始屬性
-q # 不顯示傳輸進度條
-r # 遞歸複製整個目錄
[root@mysql-141 ~]# ll /etc/services -rw-r--r-- 1 root root 641020 Apr 17 09:27 /etc/services [root@mysql-141 ~]# scp /etc/services 10.0.0.201:/tmp # 推送文件到遠程伺服器 The authenticity of host '10.0.0.201 (10.0.0.201)' can't be established . RSA key fingerprint is 67:e7:85:b7:bf:4a:01:8c:98:98:87:98:64:27:46:d4.Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '10.0.0.201' (RSA) to the list of known host s. root@10.0.0.201's password: services 100% 626KB 626.0KB/s 00:00 [root@centos7 ~]# ll /tmp/services -rw-r--r-- 1 root root 641020 Apr 18 13:46 /tmp/services [root@centos7 ~]# touch /tmp/scp.txt # 遠程伺服器創建文件 [root@mysql-141 ~]# scp -rp 10.0.0.201:/tmp/scp.txt /tmp/ # 通過遠程伺服器拉取文件到本地 root@10.0.0.201's password: scp.txt 100% 0 0.0KB/s 00:00 [root@mysql-141 ~]# ls /tmp/scp.txt -l -rw-r--r-- 1 root root 0 Apr 18 13:50 /tmp/scp.txt
. rsync
可以實現全量以及增量的本地或遠程數據鏡像同步備份的優秀工具,適用於多種操作系統平臺
本身是一個C/S模式服務,被xinetd管理埠
rsync有三種常見模式:
1)本地模式 # 數據的傳輸和cp命類似,一般av參數常用
rsync [OPTION...] SRC... [DEST]
源文件 目標文件
2)守護進程模式 #
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
用戶@主機::源文件 目標文件
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
源文件 用戶@主機::目標文件
3)遠程shell模式訪問 # 類似scp命令,只不過需要制定用戶和主機名
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
用戶@主機:源文件 目標文件
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
源文件 用戶@主機:目標文件
-v # 詳細模式輸出進度信息
-z # 傳輸時進行壓縮以提高傳輸效率
-a # 以遞歸方式傳輸文件,並保持所有文件的屬性
-r # 對子目錄以遞歸模式傳輸
-l # 保留軟連接
-n # 測試選項,模擬執行
--exclude=PATTERN # 指定排除不需要傳輸的文件模式
--exclude-from=file #從文本文件中讀取要排除的文件列表
--bwlimit=KBPS # 限制傳輸速度
--deldete # 使目標目錄內容和源目錄保持一致,刪除不同的文件
[root@centos7 ~]# rsync -av 10.0.0.141:/tmp/passwd.out /tmp The authenticity of host '10.0.0.141 (10.0.0.141)' can't be established. RSA key fingerprint is SHA256:jYke6mtF+s2Hm5yhAOqJbZuM6aMMlZl+XJ3Ada7f0Zk. RSA key fingerprint is MD5:e0:33:96:70:07:e4:bf:c6:c8:a5:2e:86:9b:6b:2d:62. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '10.0.0.141' (RSA) to the list of known hosts. root@10.0.0.141's password: receiving incremental file list passwd.out sent 30 bytes received 266 bytes 45.54 bytes/sec total size is 183 speedup is 0.62 [root@centos7 ~]# ls -l /tmp/passwd.out -rw-r--r-- 1 root root 183 Apr 17 13:21 /tmp/passwd.out