1. 程式人生 > >【Linux】資料備份

【Linux】資料備份

前言

為了保障伺服器上的資料的安全,我們需要定期進行備份 本文介紹本地備份和異地備份,通過對伺服器進行設定和寫指令碼來實現

備份步驟

1. 編寫指令碼

#本機備份
WEEKDAY=`date +%w`
SOURCE_DIR="/data"
BCK_DIR="/backup/temp"
DATE=`date +%F`

#每週一進行備份
if [ ${WEEKDAY} -eq 1  ];then
        if [ -f ${BCK_DIR}/gitblit_${DATE}.tar.gz ];then
                echo "YOURFILE_${DATE} backup file is existing!"
else echo "Start tar file" sudo tar -zcvf ${BCK_DIR}/YOURFILE_${DATE}.tar.gz -C ${SOURCE_DIR} YOURFILE #異地備份 echo "Finish tar file! Start scp file" scp -r /backup/temp/YOURFILE_${DATE}.tar.gz [email protected]:/backup echo
"Finish scp file!" fi else echo "No need to backup today" fi

2. 開啟crontab定期執行指令碼

  • 編輯crontab:sudo vim /etc/crontab
  • 重啟crontab:service cron restart
  • 檢視crontab狀態:service cron status

crontab編輯內容示例

#正式:每天凌晨1點執行gitblit備份指令碼
#0 1	* * *	/backup/backup-YOURFILE.sh
#測試:每分鐘執行gitblit備份指令碼
*/1 *	* * *  root    /backup/backup-YOURFILE.sh

在這裡注意格式,製表符和cron表示式的書寫,詳情下面參考

3. 伺服器免密scp

因為上傳資料需要輸入密碼,開啟免密傳輸就可以直接使用scp

  • 在本機輸入命令:ssh-keygen -trsa(一路回車就好)
  • 在本機輸入命令:scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/authorized_keys

Ps. 提前檢視一下遠端備份伺服器的authorized_keys中是否有其他人的金鑰,如果有則把自己的金鑰貼上在下面,沒有的話則覆蓋就好

小結

定期備份資料十分重要,通過這些命令可以進行實現 當然還有定期的刪除多餘的備份資料,也可以新增郵件通知備份資訊和伺服器狀態