簡介:本文主要介紹怎麼将資料庫伺服器上的資料檔案進行封裝并自動上傳到指定的FTP伺服器,實作資料檔案的異地備份。其具體措施是提前部署好FTP伺服器,然後将資料庫伺服器的需要備份的資料檔案進行壓縮并移動到其他檔案夾下,最後通過expect封裝賬号密碼并通過scp上傳到FTP伺服器儲存。確定本地和FTP服務端各存一份,實作資料異地備份。
資料異地備份的意義就在于,當受到網絡攻擊、入侵、電源故障或者操作失誤等事故的發生後,可以完整、快速、簡捷、可靠地恢複原有系統,在一定的範圍内保障系統的正常運作。
詳細内容請參考下文。
一、登入linux系統
二、檢視mysql服務運作狀态
三、資料庫備份封裝并上傳到FTP伺服器
1、安裝依賴工具expect
執行指令# yum install -y expect
2、本地資料庫備份
先執行指令# mkdir -p /backup/`date "+%Y-%m-%d"`
建立當天日期命名的目錄。如下圖
然後執行指令# /usr/bin/mysqldump -p -B -F -R -x --master-data=2 -uroot -p pythondb > /backup/date_$(date '+%Y%m%d').sql
備份pythondb資料表到/backup目錄中。如下圖
最後執行指令# tar -zcvf date_20221014.tar.gz date_20221014.sql
加壓備份檔案。如下圖
3、編寫異地備份腳本
執行腳本# scp -C -r /backup/2022-10-14/ [email protected]:/usr/local/backup/
上傳備份檔案到FTP伺服器。如下圖
檢視FTP伺服器端對應目錄。如下圖
4、使用expect封裝scp異地備份腳本
先編寫使用expect封裝賬号和密碼的scp傳輸腳本。如下所示
然後儲存該檔案為scp-backup.sh
最後,執行計劃任務指令# crontab –e編寫備份任務。如下圖
* * * * * /usr/local/scp-backup.sh
格式說明:第1列為分鐘,0~59;第2列為小時,0~23;第3列為日期,1~31;第4列為月份,1~12;第5列為星期,0~7(0和7表示星期天);第6列為要運作的指令(如果有多個指令用 && 隔開)。