怎么使用tar命令備份Linux云服務器

基本命令

執行以下命令備份整個文件系統:

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

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享