mysql数据自动备份_每天自动备份MySQL数据库的shell脚本
經(jīng)常備份數(shù)據(jù)庫(kù)是一個(gè)好習(xí)慣,雖然數(shù)據(jù)庫(kù)損壞或數(shù)據(jù)丟失的概率很低,但一旦發(fā)生這種事情,后悔是沒(méi)用的。一般網(wǎng)站或應(yīng)用的后臺(tái)都有備份數(shù)據(jù)庫(kù)的功能按鈕,但需要去手工執(zhí)行。我們需要一種安全的,每天自動(dòng)備份的方法。下面的這個(gè)shell腳本就是能讓你通過(guò)過(guò)設(shè)定Crontab來(lái)每天備份MySQL數(shù)據(jù)庫(kù)的方法。
#!/bin/bash
# 數(shù)據(jù)庫(kù)認(rèn)證
user=""
password=""
host=""
db_name=""
# 其它
backup_path="/path/to/your/home/_backup/mysql"
date=$(date +"%d-%b-%Y")
# 設(shè)置導(dǎo)出文件的缺省權(quán)限
umask 177
# Dump數(shù)據(jù)庫(kù)到SQL文件
mysqldump --user=$user --password=$password --host=$host $db_name > $backup_path/$db_name-$date.sql
通過(guò)上面的腳本,我們可以每天導(dǎo)出一份sql備份文件,文件的名稱按當(dāng)日日期生成。日積月累,這樣的文件會(huì)生成很多,有必要定時(shí)刪除一些老舊的備份的文件,下面的這行命令就是做這個(gè)任務(wù)的,你可以把它加在上面的腳本后面。
# 刪除30天之前的就備份文件
find $backup_path/* -mtime +30 -exec rm {} \;
我在使用上面的腳本時(shí)曾經(jīng)遇到過(guò)一個(gè)問(wèn)題,Crontab定時(shí)執(zhí)行腳本導(dǎo)出沒(méi)有報(bào)錯(cuò),但導(dǎo)出的是空的SQL文件,但登錄到控制臺(tái)手工執(zhí)行這個(gè)腳本是備份成功的。后來(lái)發(fā)現(xiàn)是Crontab執(zhí)行腳本是缺少系統(tǒng)環(huán)境信息,找不到mysqldump,改正的方法是使用mysqldump全路徑就行了。而之所以沒(méi)有報(bào)錯(cuò)信息,是因?yàn)閙ysqldump把錯(cuò)誤信息輸出到了 stderr。在命令的后面末尾接 “2>&1” 這樣一個(gè)信息重定向命令就可以看到錯(cuò)誤信息了:
mysqldump -ujoe -ppassword > /tmp/somefile 2>&1
總結(jié)
以上是生活随笔為你收集整理的mysql数据自动备份_每天自动备份MySQL数据库的shell脚本的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: executequery方法_在IDEA
- 下一篇: 太原有哪些工艺品 山西太原特产