linux 下mysql自動備份

2021-08-22 17:43:25 字數 1379 閱讀 6802

前不久要在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...