執行下列指令備份整個檔案系統:
sudo /usr/bin/tar -czpvf /home/zhaomu/backup/linux_backup.tar.gz /
其中各參數說明如下:
-c:表示歸檔。
-z:使用gzip格式備份。 gzip的備份速度較快,但相比其他方式產生的備份檔案也較大。
-p:備份的同時保留檔案的權限,在復原時不會產生權限問題。
-v:顯示備份過程的詳細資訊。
-f:指定備份的目錄和檔案名稱。
/:表示備份整個檔案系統。
1、排除不需要備份的檔案
#以上備份指令並非最優方案,原因是整個檔案系統中有大量不需要備份的文件,包括系統文件、臨時文件、歷史備份文件等。因此我們需要把這些文件都排除掉。
sudo /usr/bin/tar --exclude-from=/home/zhaomu/exclude.txt -czpvf /home/zhaomu/backup/linux_backup.tar.gz /
這裡使用了--exclude-from指令定義了排除檔案的路徑。一個典型的排除檔案的內容如下:
/home/zhaomu/backup/* /tmp/* /proc/* /dev/* /sys/* /run/* /var/tmp/* /var/run/* /var/lock/*
首先,/home/zhaomu/backup目錄下的檔案需要排除,否則先前備份的資料還會重複備份,導致備份檔案越來越大。其次,在Linux系統中,tmp、proc、dev、sys、run都屬於動態建立的目錄,不需要備份,但需要保留這些目錄結構,因此我們排除了這些目錄下的文件,而沒有排除整個目錄。
2、為檔案名稱加上日期
透過為檔案名稱加上日期,可以區分不同時間所建立的備份,建立一套備份鏈的機制。
sudo /usr/bin/tar --exclude-from=/home/zhaomu/exclude.txt -czpvf /home/zhaomu/backup/linux_backup-$(date +%F-%H-%M).tar.gz /
其中$(date %F-%H-%M)這個參數,代表當前日期、當前小時和當前分鐘,例如:linux_backup-2020-03-02-15-22.tar.gz
3、使用xz壓縮演算法
我們把-z指令換成-J指令,檔案副檔名也從tar.gz換成tar.xz。 xz壓縮演算法比gzip壓縮演算法慢一些,但是壓縮比例更高,所以建立的備份檔案也更小一些。
sudo /usr/bin/tar --exclude-from=/home/zhaomu/exclude.txt -cJpvf /home/zhaomu/backup/linux_backup-$(date +%F-%H-%M).tar.xz /
我們可以把以上指令整合到一個腳本中執行:
vi /home/zhaomu/bin/linux_backup.sh
腳本內容如下:
#!bin/sh _tarfile=/home/zhaomu/backup/linux_backup-$(date +%F-%H-%M).tar.xz sudo /usr/bin/tar --exclude-from=/home/zhaomu/exclude.txt -cJpvf $ /
賦予腳本執行權限:
sudo chmod +x /home/zhaomu/bin/linux_backup.sh
執行腳本開始備份:
sh /home/zhaomu/bin/linux_backup.sh
以上是怎麼使用tar指令備份Linux雲端伺服器的詳細內容。更多資訊請關注PHP中文網其他相關文章!