shell腳本與計劃任務
說起計劃任務,我們可以crond服務來管理(臨時文件夾\linux\文檔\2018.11.17\g-Linux計劃任務管理.docx),而步驟複雜、操作繁瑣的任務可以使用shell腳本來批量處理,兩者結合可以非常靈活、自主地完成各種系統運維工作。
下面通過Mysql數據庫的定期自動備份,了解shell腳本與計劃任務的完美協作過程。其中,shell腳本負責具體的備份操作,crond服務負責控制備份周期。
1.确定備份方案
對于存在多個應用的數據庫服務器,備份工作可能會劃分得比較細,需要針對不同的庫和表、不同的備份路徑使用不同的驗證用戶等。下面以遠程備份某某平台的兩個論壇數據庫為例,備份環境與需求如下所述:
根據需求,首先需要做兩個工作:其一,确保備份主機與數據庫服務器之間保持連接暢通,不能用網絡鍊路故障、防火牆封鎖等阻礙;其二,MySQL服務必須允許從備份主機遠程訪問,且授權用戶能夠查詢studydb、coursedb庫。
針對本案例的情況,可以創建一個專用的數據庫備份賬戶backuper,允許從備份主機172.16.16.220連接到MySQL數據庫,并授予對studydb、coursedb庫的讀取權限。
從備份主機中測試數據庫訪問、查詢授權等是否有效,或者直接使用mysqldump備份工具進行測試。如下圖:
2.編寫MySQL備份腳本
在備份主機中,創建用存放備份文件的目錄(/opt/dbbak),并編寫備份腳本(dbbak.sh),确認能夠成功執行備份。
腳本代碼中,對于目标主機的ip地址、用戶名、密碼、備份路徑、文件名等信息,可能會在必要的時候變更,為了方便更新腳本,這些内容最好存放到固定名稱的變量中。當需要備份的數據庫發生變化時,隻要修改腳本中的相關變量即可,從而使備份腳本具有可重用、可移植使用的特點,減少了大量的重複編碼的工作量。
3.設置計劃任務
有了批量備份的shell腳本以後,接下來可按照備份要求設置計劃任務,以便自動、定期執行備份操作。在crontab配置記錄中,直接指定dbbak.sh腳本程序的路徑作為執行命令。
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!