前不久要在linux下每天自動備份mysql資料庫。
版本[list]
[*]linux: redhat enterprise linux 5
[*]mysql: 5.1
[/list]在網上找了找,要寫個shell命令執行mysqldump然後儲存檔案
1. 建立shell指令碼檔案
[quote]
filename=`date +%y%m%d_%h:%m`
mysqldump --opt database -u username -h host -ppassword | gzip > /var/mysqlbackup/$filename.gz
[/quote]
然後把該檔案放到/etc/cron.daily/(每天執行目錄)
[list]
[*]/etc/cron.hourly/ (每小時)
[*]/etc/cron.monthly/ (每月)
[*]/etc/cron.weekly/ (每週)
[/list]
[quote]
前面的時間格式為「m h d m d cmd」。其中,m代表分鐘(0~59),h代表小時(0~23),d代表天(1~31),m代表月(1~12),d代表一星期內的天(0~6,0為星期天)。*表示任何.例如01 * * * * 表示每小時的01分執行
[/quote]
gedit /etc/crontab
在最後加入
[quote]
01 5 * * * root /opt/autobackup(上面shell指令碼檔案)
[/quote]
每天5點執行指令碼,也可以修改5為其他指定時間
2. 為指令碼增加許可權
# chmod +x /opt/autobackup(面shell指令碼檔案)
3. 重啟crontab
# /etc/rc.d/init.d/crond restart
到這為止看似ok挺easy可是執行後也沒有報錯
發現/var/mysqlbackup/(備份目錄)下有乙個叫..%y%m%d_%h:%m.gz的檔案
看樣是日期檔名沒有生效。最後又搞了半天,也查了半天就是不知道怎麼回事
最後問了乙個朋友他讓我把shell指令碼發過去,過了一會。才知道是因為
[quote]
filename=`date +%y%m%d_%h:%m`
[/quote]
[color=red]這個" ' "應該是tab鍵上的那點,而我打的是單引號。我瘋 :( [/color]
在此感謝他->孫偉 :idea:
linux下mysql自動備份
其實這個mysql自動備份的小指令碼非常簡單,下面是這個小指令碼的步驟。cd www mkdir mysqlbackup vi mysqlautobackup.sh 這個mysqlautobackup.sh的檔案裡寫入以下內容 filename date y m d mysql bin dir my...
linux 下 mysql自動備份指令碼
伺服器上有n個資料庫 現在需要備份其中的5個資料庫 隨性寫了個 僅供參考 每天自動備份 db user root db passwd pwd time date y m d all db mysql u db user p db passwd bse show databases for db in...
linux 下 mysql自動備份指令碼
伺服器上有n個資料庫 現在需要備份其中的5個資料庫 隨性寫了個 僅供參考 每天自動備份 db user root db passwd pwd time date y m d all db mysql u db user p db passwd bse show databases for db in...