Red Hat Training

A Red Hat training course is available for Red Hat Satellite

3.3. 自動備份

備份工作可自動化,如此一來它們便可在非巔峰的時間進行,例如半夜或凌晨。這亦可確保它們能時常進行,而不會被遺忘。最有效率的自動化備份方式,就是透過 cron

過程 3.3. 自動化備份

請建立一個名為 backup-db.sh 的新檔案,並包含下列 script。此 script 將會停用衛星伺服器,執行一項資料庫備份,並重新啟動衛星伺服器。
#!/bin/bash
{
/usr/sbin/rhn-satellite stop
su - oracle -c'
d=db-backup-$(date "+%F");
mkdir -p /tmp/$d;
db-control backup /tmp/$d
';
/usr/sbin/rhn-satellite start
} &> /dev/null
  1. 請建立一個名為 move-files.sh 的新檔案,並包含下列 script。此 script 將會使用 rsync 來將備份檔案移至一個目錄中,以進行儲存:
    #!/bin/bash
    rsync -avz /tmp/db-backup-$(date "+%F") [destination] &> /dev/null
    
    請將 [destination] 替換為備份目錄的路徑。
    此外,下列 script 使用了 scp 來達到相同的目的:
    #!/bin/bash
    scp -r /tmp/db-backup-$(date "+%F") [destination] &> /dev/null
    
  2. 切換為 root 使用者,並在文字編輯器中開啟 crontab
    crontab -e
    

    注意

    crontab 就預設值會在 vi 中開啟。若要更改此特性,請將 EDITOR 變數更改為您希望使用的文字編輯器名稱。
  3. 請使用 crontab 中的前五個欄位(分、時、日、月,與星期)來排程備份 script 以執行:
    0 3 * * * backup-db.sh
    0 6 * * * move-files.sh
    
    crontab 項目將會於 03:00 執行備份,並在 06:00 傳輸備份檔案。其它選項亦可視需求加入。您亦可包含一份清除 script,以移除較舊的備份目錄,並避免備份儲存空間滿出。
  4. 若要儲存 crontab,只要退出文字編輯器即可。新的 cron 規則將會即刻生效。