運維日記012 Linux下的tar命令

2021-07-22 21:29:54 字數 1825 閱讀 9703

tar是linux下的「打包工具」。所謂「打包」,就是將多個目錄或者檔案打包成乙個大檔案。而且tar命令還可以通過呼叫gzip/bzip2等壓縮命令將打包檔案進行壓縮。tar的本意是tap archive,即操作磁帶文件,但基於共同的檔案系統機制,tar同樣也適用於普通磁碟檔案。目前tar是linux環境下最常用的備份工具之一。

tar的選項極多,但通常只需要記住幾個常用的即可,這裡列出我認為必要的:

特別注意:-c、-t、-x三個引數不能同時出現引數

說明-c

新建打包檔案

-t檢視打包檔案的內容含有哪些檔案

-x解包

這幾個引數配合-c或者-x引數使用,通過呼叫相關的壓縮命令對打包檔案進行壓縮或者解壓。

引數說明

-z呼叫gzip進行壓縮或解壓

-j呼叫bzip2進行壓縮或解壓

-j呼叫xz進行壓縮或解壓

如果用gzip壓縮,則生成的目標檔名最好按照習慣將字尾名命名為.gz;如果是bzip2壓縮,最好是.bz2;而xz壓縮,則最好是.xz。

引數說明

-v顯示詳細資訊,verbose

-f filename

-f後面指定檔名

-c指定解包的目錄,如不指定將在當前目錄解包

-p(大寫)保留檔案的許可權與屬性

-p(小寫)保留絕對路徑

–exclude=file

在備份過程中,不要將file打包

tar命令的使用非常簡單,只要記住以下三種方式即可:

$ tar -czvf filename.tar

.gz file_or_dir_name

該命名將檔案或目錄file_or_dir_name打包並用gzip壓縮為filename.tar.gz。你也可以使用-j或者-j引數呼叫bzip2或者xz壓縮,對應的引數組合為-cjvf-cjvf。有的人喜歡把-f引數單獨寫,也不失為一種好的習慣,如:

$ tar -czv -f filename.tar

.gz file_or_dir_name

當然你喜歡第一種寫法也沒錯,只是要記住,-f後面必須緊跟要處理的檔名,而前面三個引數的順序隨意可變。

$ tar -xzv -f filename.tar

.gz

該命令查詢filename.tar.gz這個打包壓縮檔案裡面包含了哪些檔案和目錄。

$ tar -xzv

-f filename.tar.gz -c dir_name

該命令將打包壓縮檔案filename.tar.gz解壓解包到指定目錄dir_name中。如果不跟-c引數的話,就會解到當前目錄中。

案例:寫乙個指令碼,每天會自動備份一次/etc目錄下的所有檔案,將備份檔案存放在/tmp目錄下,並且檔名自動命名為etc-備份日期.tar.gz,如2023年9月15日備份的檔名為etc-2016-09-15.tar.gz。

1、寫shell指令碼

# vim ~/backup.sh

#! /bin/bash

tar czvf /tmp/etc-`date +%f.tar.gz /etc`

2、新增定時器任務

# crontab -e
自動開啟vim,在其中編輯定時器任務,設定每日凌晨2點0分執行備份操作。

# crontab -l

02 * * * /root/backup.sh

設定完畢!

運維學習日記 Linux學習01

運維須知的網路基礎知識 一 計算機網路 從硬體上定義,計算機網路是通過線纜將網路裝置和計算機連線起來 從軟體上定義,計算機網路是作業系統 應用軟體 應用程式通過通訊線路互連 計算機網路可以實現資源共享 資訊傳遞。具有資料通訊 資源共享 增加資料可靠性和提高系統處理能力的功能。網路發展階段 60年代 ...

Linux運維是什麼?linux運維的基礎知識

如果您對運維行業了解一些,應該會知道,現在的運維早已不是早年的 睡機房 往辦公室打眼一看,分不清是運維攻城獅還是開發程式猿,但是,運維這行也是春天到了,今天linux,明天雲計算的,各種新鮮概念層出不窮,那麼,linux運維是什麼?雲計算運維又是什麼?linux運維需要掌握的基礎知識 1 shell...

疫情下的IT運維

度過了 最好的 2019,卻迎來了 史無前例 的2020。疫情猶如絞肉機,將本不景氣的傳統行業絞的更加支離破碎。時代進入到了拐點,他甩下了一批人,也成就了一批人。縱觀過去的it行業,每一次技術的迭代更新,總會經歷乙個循序漸進的過程。但是今年,在新冠疫情的推動下,雲計算以勢如破竹之勢,席捲了各個行業。...