|
|
本館粉絲專頁 |
|
|
使用者:Minwei/資訊筆記/系統自動備份
台灣棒球維基館
目次 |
三支shell
- 我放在/root/backup/
匯出mysql資料庫
#!/bin/bash #=============================================== #程式用途:每日備份mysql的資料庫檔案。 #說明: #MySql的資料是放在/var/mysql/ #此程式目的是備份每天mysql資料夾內的ndapwiki1_11_1資料庫 #並且每個備份檔案都有日期標明。 # #撰寫完後,再透過/etc/crontab來每日執行備份工作。 # #=============================================== #歷史紀錄 #日期 內容 作者 #2008/4/21 完成第一次的撰寫。每日備份mysql # # #=============================================== # #設定shell執行路徑,讓此程式在任何地方都可以執行。 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH # 1.設定檔名日期,以及備份檔之後要放的地方。 day=`date +%Y%m%d` # 將/backup資料夾設定為basedir變數。 basedir="/root/backup" # 2.ndapwiki的MySQL資料夾位置 ( PATH =/var/mysql/ ) # 備份前,我們先停止MySQL的運作 #/var/mysql/ stopmysql # 3.利用mysqldump將MySQL打包備份。 mysqldump -u ndapwiki -ppsswd ndap_1_11_1 > "$basedir"/ndap_1_11_1_"$day".sql # 再將MySQL啟動 #/var/mysql/ startmysql exit 0
打包logs
#!/bin/bash #=============================================== #程式用途:每日備份ndap logs的檔案。 #說明: #log的資料是放在/var/www/ #此程式目的是備份每天/var/www/資料夾內的logs資料夾 #並且每個備份檔案都有日期標明。 # #撰寫完後,再透過/etc/crontab來每日執行備份工作。 # #=============================================== #歷史紀錄 #日期 內容 作者 #2008/4/21 完成第一次的撰寫。每日備份logs # #=============================================== # #設定shell執行路徑,讓此程式在任何地方都可以執行。 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH # 1.設定檔名日期,以及備份檔之後要放的地方。 day=`date +%Y%m%d` # 將/backup資料夾設定為basedir變數。 basedir="/root/backup" # 2.log資料夾位置 ( PATH =/var/www/) # 進入/var/www/ cd /var/www/ # 在/var/www/下,將logs打包壓縮備份到之後要放的地方。 tar -zcf "$basedir"/logs_"$day".tar.gz logs exit 0
打包images
#!/bin/bash #=============================================== #程式用途:每日備份ndap images的檔案。 #說明: #image的資料是放在/var/www/ndapwiki-1.11.1/images #此程式目的是備份每天ndapwiki-1.11.1資料夾內的images資料夾 #並且每個備份檔案都有日期標明。 # #撰寫完後,再透過/etc/crontab來每日執行備份工作。 # #=============================================== #歷史紀錄 #日期 內容 作者 #2008/4/21 完成第一次的撰寫。每日備份images # #=============================================== # #設定shell執行路徑,讓此程式在任何地方都可以執行。 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH # 1.設定檔名日期,以及備份檔之後要放的地方。 day=`date +%Y%m%d` # 將/backup資料夾設定為basedir變數。 basedir="/root/backup" # 2.ndap的image資料夾位置 ( PATH =/var/www/ndapwiki-1.11.1/ ) # 進入/var/www/ndapwiki-1.11.1/ cd /var/www/ndapwiki-1.11.1/ # 在/var/www/ndapwiki-1.11.1/下,將image打包壓縮備份到之後要放的地方。 tar -zcf "$basedir"/images_"$day".tar.gz images exit 0
scp傳輸備份檔
#!/bin/bash #=============================================== #程式用途:將每日備份檔:傳送至備份主機。 #說明: #每日/root/backup目錄底下會產生log、image、mysql三個備份檔 #logs_$dav.tar.gz、images_$dav.tar.gz、ndap_1_11_1_$dav.sql #此程式目的是將備份檔傳輸至45保存 # #撰寫完後,再透過/etc/crontab來每日執行傳輸工作。 # #=============================================== #歷史紀錄 #日期 內容 作者 #2008/5/12 完成第一次的撰寫。 MinWei # #=============================================== # #設定shell執行路徑,讓此程式在任何地方都可以執行。 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH # 1.設定檔名的日期,備份檔之路徑。 day=`date +%Y%m%d` # 將/backup資料夾設定為basedir變數。 basedir="/root/backup"
測試shell&Debug
sh [-nvx] scripts.sh 參數: -n :不要執行 script,僅查詢語法的問題; -v :再執行 sccript 前,先將 scripts 的內容輸出到螢幕上; -x :將使用到的 script 內容顯示到螢幕上
/etc/crontab
寫入/etc/crontab,改放在/etc/cron.d/backup裡,讓備份程式例行運作。
#buckup shell script auto run 30 3 * * 0 root /back/system_backup_weekly.sh 30 2 * * * root /back/mysql_backup_daily.sh #delect old backupfiles 35 3 * * * root /back/del_old_backup_file.sh