看板 Knuckles_note
作者 標題 [MySQL] 每日自動備份 script
時間 2013年09月11日 Wed. PM 04:40:05
在資料庫新增一個使用者 backup
給予3個全域權限 SELECT, RELOAD, LOCK TABLES
建立一個自動備份的script檔
例如我的帳號是 knuckles
$ vim /home/knuckles/backup/backup.sh
============= backup.sh ===============
#!/bin/bash
# 資料庫連線的設定值
myHost="localhost"
myUser="backup"
myPass="password"
# 日期 20130911
date=$(date +"%Y%m%d")
# 星期 1~7
week=$(date +"%u")
# 備份整個資料庫,只儲存前7天的
# 備份檔儲存位置與檔名
backup_dir="/home/backup/"
sql_file=$backup_dir"full."$week".sql"
echo "mysqldump all databases..."
mysqldump -h $myHost -u $myUser -p$myPass --single-transaction --flush-logs --all-databases --quick --force -r $sql_file
echo "gzip $sql_file ..."
gzip -f $sql_file
# 只對某幾個資料庫做備份
DBs="my_data1
my_data2
my_data3"
for db in ${DBs}
do
echo "backup $db ..."
backup_dir="/home/backup/"
sql_file="$backup_dir$date.$db.sql"
mysqldump -h $myHost -u $myUser -p$myPass $db > $sql_file
gzip -f $sql_file
done
# 資料庫連線的設定值
myHost="localhost"
myUser="backup"
myPass="password"
# 日期 20130911
date=$(date +"%Y%m%d")
# 星期 1~7
week=$(date +"%u")
# 備份整個資料庫,只儲存前7天的
# 備份檔儲存位置與檔名
backup_dir="/home/backup/"
sql_file=$backup_dir"full."$week".sql"
echo "mysqldump all databases..."
mysqldump -h $myHost -u $myUser -p$myPass --single-transaction --flush-logs --all-databases --quick --force -r $sql_file
echo "gzip $sql_file ..."
gzip -f $sql_file
# 只對某幾個資料庫做備份
DBs="my_data1
my_data2
my_data3"
for db in ${DBs}
do
echo "backup $db ..."
backup_dir="/home/backup/"
sql_file="$backup_dir$date.$db.sql"
mysqldump -h $myHost -u $myUser -p$myPass $db > $sql_file
gzip -f $sql_file
done
加上可執行權限
$ chmod 700 /home/knuckles/backup/backup.sh
在 crontab 加上這行,每日早上5:40執行
40 5 * * * knuckles /home/knuckles/backup/backup.sh
--
※ 作者: Knuckles 時間: 2013-09-11 16:40:05
※ 編輯: Knuckles 時間: 2015-10-19 06:56:13
※ 看板: KnucklesNote 文章推薦值: 1 目前人氣: 0 累積人氣: 2358
回列表(←)
分享