【Linux】資料備份
阿新 • • 發佈:2018-12-16
前言
為了保障伺服器上的資料的安全,我們需要定期進行備份 本文介紹本地備份和異地備份,通過對伺服器進行設定和寫指令碼來實現
備份步驟
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中是否有其他人的金鑰,如果有則把自己的金鑰貼上在下面,沒有的話則覆蓋就好
小結
定期備份資料十分重要,通過這些命令可以進行實現 當然還有定期的刪除多餘的備份資料,也可以新增郵件通知備份資訊和伺服器狀態