linux計劃任務每天淩晨3點執行mysql資料庫的備份腳本
一、用指令實作備份 首頁進入mysql的bin目錄 1、備份資料 #mysqldump-uusername-ppassworddiscuz>discuz_ 這樣就把discuz資料庫所有的表結構和資料備份到discuz_裡了,如果資料量大會占用很大空間,這時可以利用gzip壓縮資料, 指令如下: #mysqldump-uusername-ppassworddiscuz|gzip>discuz_ 系統崩潰,重建系統時,可以這樣恢複資料: #mysql-uusername-ppassworddiscuz +%Y-%m-%d_%H%M%S`. 3、修改檔案屬性,使其可以執行 #chmod+x/usr/sbin/bakmysql 4、修改/etc/crontab 在下面添加 013***root/usr/sbin/bakmysql 表示每天3點鐘執行備份crontab使用說明 5、重新啟動crond #/etc///crondrestart 完成。 三、資料的恢複/mysqldata/uptry`date 首頁進入mysql的bin目錄建立資料庫 #mysqladmincreatediscuz恢複資料 #mysqldiscuztd_ ::E:\MYOA\mysql\bin\-uroot-pmyoa888td_oa>td_ rara%filename%td_ ::%windir%\System32\a%filename%td_ move%filename%F:\OA_BACKUP\%dirname% deltd_ echo資料庫備份完成! echo.&pause 備份過程中遇到的問題: (1)建立檔案夾失敗。在windowsXX下,預設的日期格式為類似 XX/12/27的樣式,在根據日期建立檔案夾或者檔案時由于windows不允許有“/”特殊字元的存在,故報建立錯誤。這裡使用“set nowdate=%date:~0,4%%date:~5,2%%date:~8,2%”分别取得年、月、日拼湊的形式變相實作。 (2)環境變量問題。在寫完上述腳本後,輕按兩下bat檔案可以無誤順利的執行,但是扔到計劃任務執行時就總是報錯,具體為rar和mysqldump指令不存在。我懷疑是環境變量的設定沒有生效,由于在伺服器上不能輕易的執行伺服器的重新開機,這裡用rar和mysqldump的完整路徑來代替 附:常見dos指令 下的複制和移動 c盤下的檔案複制或移動到d盤 指令為: 複制copyc:\d:\ 移動movec:\d:\ 下的條件判斷 ifnotexistF:\OA_BACKUP\%dirname%mdF:\OA_BACKUP\%dirname% 下的目錄建立和删除 MD——建立子目錄 RD——删除子目錄 4.關于%DATE:~4,10%的格式 這個指令的意思就是在DATE的輸出中,取4-10中間的字元。 對于不同的機器,可能有不同的時間格式,這個可以在控制台裡設定。可以通過ECHO指令察看目前設定,如: C:>echo%DATE% 星期一XX-10-28 當然,我們可以同樣取到星期的值: C:>echo%DATE:~0,3% 星期一 當然也可以從不同方向來: C:>echo%DATE:~-10% XX-10-28 C:>echo%DATE:~0,-10% 星期一 5.rar指令解壓縮檔案前要進行的操作: 1〉将檔案拷貝到system32檔案夾下; 2〉将winRAR的安裝路徑放到環境變量中 rar打封包件: rara%filename%.rar%filename%.* rar解壓縮檔案 rare%filename%.rar 6.用jar打包解壓檔案必須在目前系統中裝有jre環境 jar打封包件: jarcvf%filename%.jar%filwname%.* jar解壓縮檔案: jarxvf%filename%.jar 先建立一個的檔案在把下面的内容添加進去改改實際路徑 做個計劃任務就自動備份了指令:crontab-e #!/bin/bash # #備份至/root/bak/ BackupPath=/root/bak/ LogFile=/root/bak/ DBPath=/usr/local/app/#需要備份的目錄 NewFile="$BackupPath"app_bac