linux使用tar命令備份系統


Linux tar 命令

Linux 命令大全 Linux 命令大全

Linux tar(英文全拼:tape archive )命令用於備份文件。

tar 是用來建立,還原備份文件的工具程序,它可以加入,解開備份文件內的文件。

語法

tar [-ABcdgGhiklmMoOpPrRsStuUvwWxzZ][-b <區塊數目>][-C <目的目錄>][-f <備份文件>][-F <Script文件>][-K <文件>][-L <媒體容量>][-N <日期時間>][-T <范本文件>][-V <卷冊名稱>][-X <范本文件>][-<設備編號><存儲密度>][--after-date=<日期時間>][--atime-preserve][--backuup=<備份方式>][--checkpoint][--concatenate][--confirmation][--delete][--exclude=<范本樣式>][--force-local][--group=<群組名稱>][--help][--ignore-failed-read][--new-volume-script=<Script文件>][--newer-mtime][--no-recursion][--null][--numeric-owner][--owner=<用戶名稱>][--posix][--erve][--preserve-order][--preserve-permissions][--record-size=<區塊數目>][--recursive-unlink][--remove-files][--rsh-command=<執行指令>][--same-owner][--suffix=<備份字尾字符串>][--totals][--use-compress-program=<執行指令>][--version][--volno-file=<編號文件>][文件或目錄...]

參數

  • -A或--catenate 新增文件到已存在的備份文件。
  • -b<區塊數目>或--blocking-factor=<區塊數目> 設置每筆記錄的區塊數目,每個區塊大小為12Bytes。
  • -B或--read-full-records 讀取數據時重設區塊大小。
  • -c或--create 建立新的備份文件。
  • -C<目的目錄>或--directory=<目的目錄> 切換到指定的目錄。
  • -d或--diff或--compare 對比備份文件內和文件系統上的文件的差異。
  • -f<備份文件>或--file=<備份文件> 指定備份文件。
  • -F<Script文件>或--info-script=<Script文件> 每次更換磁帶時,就執行指定的Script文件。
  • -g或--listed-incremental 處理GNU格式的大量備份。
  • -G或--incremental 處理舊的GNU格式的大量備份。
  • -h或--dereference 不建立符號連接,直接復制該連接所指向的原始文件。
  • -i或--ignore-zeros 忽略備份文件中的0 Byte區塊,也就是EOF。
  • -k或--keep-old-files 解開備份文件時,不覆蓋已有的文件。
  • -K<文件>或--starting-file=<文件> 從指定的文件開始還原。
  • -l或--one-file-system 復制的文件或目錄存放的文件系統,必須與tar指令執行時所處的文件系統相同,否則不予復制。
  • -L<媒體容量>或-tape-length=<媒體容量> 設置存放每體的容量,單位以1024 Bytes計算。
  • -m或--modification-time 還原文件時,不變更文件的更改時間。
  • -M或--multi-volume 在建立,還原備份文件或列出其中的內容時,采用多卷冊模式。
  • -N<日期格式>或--newer=<日期時間> 只將較指定日期更新的文件保存到備份文件里。
  • -o或--old-archive或--portability 將資料寫入備份文件時使用V7格式。
  • -O或--stdout 把從備份文件里還原的文件輸出到標准輸出設備。
  • -p或--same-permissions 用原來的文件權限還原文件。
  • -P或--absolute-names 文件名使用絕對名稱,不移除文件名稱前的"/"號。
  • -r或--append 新增文件到已存在的備份文件的結尾部分。
  • -R或--block-number 列出每個信息在備份文件中的區塊編號。
  • -s或--same-order 還原文件的順序和備份文件內的存放順序相同。
  • -S或--sparse 倘若一個文件內含大量的連續0字節,則將此文件存成稀疏文件。
  • -t或--list 列出備份文件的內容。
  • -T<范本文件>或--files-from=<范本文件> 指定范本文件,其內含有一個或多個范本樣式,讓tar解開或建立符合設置條件的文件。
  • -u或--update 僅置換較備份文件內的文件更新的文件。
  • -U或--unlink-first 解開壓縮文件還原文件之前,先解除文件的連接。
  • -v或--verbose 顯示指令執行過程。
  • -V<卷冊名稱>或--label=<卷冊名稱> 建立使用指定的卷冊名稱的備份文件。
  • -w或--interactive 遭遇問題時先詢問用戶。
  • -W或--verify 寫入備份文件后,確認文件正確無誤。
  • -x或--extract或--get 從備份文件中還原文件。
  • -X<范本文件>或--exclude-from=<范本文件> 指定范本文件,其內含有一個或多個范本樣式,讓ar排除符合設置條件的文件。
  • -z或--gzip或--ungzip 通過gzip指令處理備份文件。
  • -Z或--compress或--uncompress 通過compress指令處理備份文件。
  • -<設備編號><存儲密度> 設置備份用的外圍設備編號及存放數據的密度。
  • --after-date=<日期時間> 此參數的效果和指定"-N"參數相同。
  • --atime-preserve 不變更文件的存取時間。
  • --backup=<備份方式>或--backup 移除文件前先進行備份。
  • --checkpoint 讀取備份文件時列出目錄名稱。
  • --concatenate 此參數的效果和指定"-A"參數相同。
  • --confirmation 此參數的效果和指定"-w"參數相同。
  • --delete 從備份文件中刪除指定的文件。
  • --exclude=<范本樣式> 排除符合范本樣式的文件。
  • --group=<群組名稱> 把加入設備文件中的文件的所屬群組設成指定的群組。
  • --help 在線幫助。
  • --ignore-failed-read 忽略數據讀取錯誤,不中斷程序的執行。
  • --new-volume-script=<Script文件> 此參數的效果和指定"-F"參數相同。
  • --newer-mtime 只保存更改過的文件。
  • --no-recursion 不做遞歸處理,也就是指定目錄下的所有文件及子目錄不予處理。
  • --null 從null設備讀取文件名稱。
  • --numeric-owner 以用戶識別碼及群組識別碼取代用戶名稱和群組名稱。
  • --owner=<用戶名稱> 把加入備份文件中的文件的擁有者設成指定的用戶。
  • --posix 將數據寫入備份文件時使用POSIX格式。
  • --preserve 此參數的效果和指定"-ps"參數相同。
  • --preserve-order 此參數的效果和指定"-A"參數相同。
  • --preserve-permissions 此參數的效果和指定"-p"參數相同。
  • --record-size=<區塊數目> 此參數的效果和指定"-b"參數相同。
  • --recursive-unlink 解開壓縮文件還原目錄之前,先解除整個目錄下所有文件的連接。
  • --remove-files 文件加入備份文件后,就將其刪除。
  • --rsh-command=<執行指令> 設置要在遠端主機上執行的指令,以取代rsh指令。
  • --same-owner 嘗試以相同的文件擁有者還原文件。
  • --suffix=<備份字尾字符串> 移除文件前先行備份。
  • --totals 備份文件建立后,列出文件大小。
  • --use-compress-program=<執行指令> 通過指定的指令處理備份文件。
  • --version 顯示版本信息。
  • --volno-file=<編號文件> 使用指定文件內的編號取代預設的卷冊編號。

linux-tar備份

 首先使用 fdisk -l  查看一下磁盤和分區情況。
再使用df -lh 查看分區掛載情況。
可以使用livecd啟動,使用 mkdir aa 命令新建一個文件夾,將要備份的分區使用mount /dev/sda1 aa  命令掛載在aa目錄下。然后再使用tar備份整個分區。

1. 備份系統

首先成為root用戶:

$ sudo su

然后進入文件系統的根目錄(當然,如果你不想備份整個文件系統,你也可以進入你想要備份的目錄,包括遠程目錄或者移動硬盤上的目錄):

# cd /

下面是我用來備份系統的完整命令:

# tar cvpzf backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys /

“tar”當然就是我們備份系統所使用的程序了。

“cvpfz”是tar的選項,意思是“創建檔案文件”、“保持權限”(保留所有東西原來的權限)、“使用gzip來減小文件尺寸”。

“backup.gz”是我們將要得到的檔案文件的文件名。

“/”是我們要備份的目錄,在這里是整個文件系統。

在 檔案文件名“backup.gz”和要備份的目錄名“/”之間給出了備份時必須排除在外的目錄。有些目錄是無用的,例如“/proc”、“/lost+ found”、“/sys”。當然,“backup.gz”這個檔案文件本身必須排除在外,否則你可能會得到一些超出常理的結果。如果不把“/mnt”排 除在外,那么掛載在“/mnt”上的其它分區也會被備份。另外需要確認一下“/media”上沒有掛載任何東西(例如光盤、移動硬盤),如果有掛載東西, 必須把“/media”也排除在外。

有人可能會建議你把“/dev”目錄排除在外,但是我認為這樣做很不妥,具體原因這里就不討論了。

 

備份完成后,在文件系統的根目錄將生成一個名為“backup.tgz”的文件

在備份命令結束時你可能會看到這樣一個提示:’tar: Error exit delayed from previous errors’,多數情況下你可以忽略它。

你還可以用Bzip2來壓縮文件,Bzip2比gzip的壓縮率高,但是速度慢一些。如果壓縮率對你來說很重要,那么你應該使用Bzip2,用“j”代替命令中的“z”,並且給檔案文件一個正確的擴展名“bz2”。完整的命令如下:

# tar cvpjf backup.tar.bz2 –exclude=/proc –exclude=/lost+found –exclude=/backup.tar.bz2 –exclude=/mnt –exclude=/sys /

 

2. 恢復系統

切換到root用戶,並把文件“backup.tgz”拷貝到分區的根目錄下。

 

使用下面的命令來恢復系統:

# tar xvpfz backup.tgz -C /

 

如果你的檔案文件是使用Bzip2壓縮的,應該用:

# tar xvpfj backup.tar.bz2 -C /

 

重新創建那些在備份時被排除在外的目錄:

# mkdir proc
# mkdir lost+found
# mkdir mnt
# mkdir sys
1
<br>restorecon -Rv /   # 這條指令必須執行,否則重啟無法進入系統 

重啟系統 reboot

 

備份指定文件夾

tar  -xvzf  /abc/bcd/mm_20141223.tar.gz      /aaa/bbb/ccc.txt        將文件/aaa/bbb/ccc.txt 壓縮到另一個路徑/abc/bcd/下,並以mm_20141223.tar.gz名字命名

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM