官术网_书友最值得收藏!

6.2 tar軟件包管理

Linux操作系統除了使用RPM管理工具對二進制軟件包管理之外,還可以通過tar、zip、jar等工具對源碼包軟件進行管理。

6.2.1 tar命令參數詳解

tar命令參數詳解如下:

□-A,--catenate,--concatenate:將存檔與已有的存檔合并。

□-c,--create:建立新的存檔。

□-d,--diff,--compare:比較存檔與當前文件的不同之處。

□--delete:從存檔中刪除。

□-r,--append:附加到存檔結尾。

□-t,--list:列出存檔中文件的目錄。

□-u,--update:僅將較新的文件附加到存檔中。

□-x,--extract,--get:解壓文件。

□-j,--bzip2,--bunzip2:有bz2屬性的軟件包。

□-z,--gzip,--ungzip:有gz屬性的軟件包。

□-b,--block-size N:指定塊大小為N?512字節(默認時N=20)。

□-B,--read-full-blocks:讀取時重組塊。

□-C,--directory DIR:指定新的目錄。

□--checkpoint:讀取存檔時顯示目錄名。

□-f,--file[HOSTNAME:]F:指定存檔或設備,后接文件名稱。

□--force-local:強制使用本地存檔,即使存在克隆。

□-G,--incremental:建立老GNU格式的備份。

□-g,--listed-incremental:建立新GNU格式的備份。

□-h,--dereference:不轉儲動態鏈接,轉儲動態鏈接指向的文件。

□-i,--ignore-zeros:忽略存檔中的0字節塊(通常意味著文件結束)。

□--ignore-failed-read:在不可讀文件中作0標記后再退出。

□-k,--keep-old-files:保存現有文件,從存檔中展開時不進行覆蓋。

□-K,--starting-file F:從存檔文件F開始。

□-l,--one-file-system:在本地文件系統中創建存檔。

□-L,--tape-length N:在寫入N?1024個字節后暫停,等待更換磁盤。

□-m,--modification-time:當從一個檔案中恢復文件時,不使用新的時間標簽。

□-M,--multi-volume:建立多卷存檔,以便在幾個磁盤中存放。

□-O,--to-stdout:將文件展開到標準輸出。

□-P,--absolute-paths:不要從文件名中去除“/”。

□-v,--verbose:詳細顯示處理的文件。

□--version:顯示tar程序的版本號。

□--exclude:file不把指定文件包含在內。

□-X,--exclude-from FILE:從指定文件中讀入不想包含的文件列表。

6.2.2 tar企業案例演示

tar企業案例演示如下:

□tar-cvf jfedu.tar.gz jfedu:打包jfedu文件或者目錄,打包后名稱為jfedu.tar.gz。

□tar-tf jfedu.tar.gz:查看jfedu.tar.gz包中內容。

□tar-rf jfedu.tar.gz jfedu.txt:將jfedu.txt文件追加到jfedu.tar.gz中。

□tar-xvf jfedu.tar.gz:解壓jfedu.tar.gz程序包。

□tar-czvf jfedu.tar.gz jfedu:使用gzip格式打包并壓縮jfedu目錄。

□tar-cjvf jfedu.tar.bz2 jfedu:使用bzip2格式打包并壓縮jfedu目錄。

□tar-czf jfedu.tar.gz ? -X list.txt:使用gzip格式打包并壓當前目錄所有文件,排除list.txt中記錄的文件。

□tar-czf jfedu.tar.gz ? --exclude=zabbix-3.2.4.tar.gz--exclude=nginx-1.12.0.tar. gz:使用gzip格式打包并壓縮所有文件和目錄,排除zabbix-3.2.4.tar.gz和nginx-1. 12.0.tar.gz軟件包。

6.2.3 tar實現Linux操作系統備份

tar命令工具除了用于日常打包、解壓源碼包之外,最大的亮點還可以用于Linux操作系統文件及目錄的備份。使用tar-g可以基于GNU格式做增量備份,備份原理是檢查目錄和文件的atime、mtime、ctime屬性是否被修改。文件及目錄時間屬性詳解如下:

□文件被訪問的時間(access time,atime);

□文件內容被改變的時間(modified time,mtime);

□文件寫入、權限更改的時間(change time,ctime)。

總結:更改文件內容mtime和ctime都會改變,但ctime可以在mtime未發生變化時被更改。例如修改文件權限文件mtime時間不變而ctime時間改變。tar增量備份案例演示步驟如下:

(1)/root目錄創建jingfeng文件夾,同時在jingfeng文件夾中新建jf1.txt、jf2.txt文件,如圖6-1所示。

圖6-1 創建jingfeng目錄及文件

(2)使用tar命令第一次完整備份jingfeng文件夾,-g指定快照snapshot文件,第一次沒有該文件則會自動創建,如圖6-2所示。

圖6-2 tar備份jingfeng目錄中文件

(3)使用tar命令第一次完整備份jingfeng文件夾會生成快照文件/data/backup/ snapshot,后期增量備份會以snapshot文件為參考。在jingfeng文件夾中再創建jf3.txt、jf4. txt文件,然后再通過tar命令增量備份jingfeng文件夾所有內容,如圖6-3所示。

圖6-3 tar增量備份jingfeng目錄中文件

如圖6-3所示,增量備份時需-g指定第一次完整備份的快照snapshot文件,同時增量打包的文件名不能與第一次備份后的文件名重名,通過tar-tf可以查看打包后的文件內容。

6.2.4 shell+tar實現增量備份

企業中日常備份的數據包括/boot、/etc、/root、/data等目錄。備份的策略為每周一至周六執行增量備份,每周日執行全備份。在企業中備份操作系統數據均使用shell腳本完成,此處auto_backup_system.sh備份腳本供參考。后面章節會系統講解shell腳本,腳本內容如下:

主站蜘蛛池模板: 庆元县| 鹤岗市| 佳木斯市| 衡阳县| 温州市| 喜德县| 陵川县| 沈丘县| 秦安县| 方城县| 临清市| 石首市| 和硕县| 颍上县| 达孜县| 清涧县| 嘉峪关市| 华亭县| 马山县| 新龙县| 福贡县| 甘肃省| 深州市| 如皋市| 常州市| 龙游县| 奉新县| 弋阳县| 淳安县| 宁南县| 云阳县| 禹州市| 扶余县| 容城县| 上林县| 景宁| 桐梓县| 五大连池市| 琼中| 海淀区| 闽清县|