顯示廣告
隱藏 ✕
看板 Knuckles_note
作者 Knuckles (站長 那克斯)
標題 [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

加上可執行權限
$ 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 
( ̄︶ ̄)b fyshung 說讚!
e)編輯 d)刪除 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇