MySQL在CentOS上執行自動備份

img

​ 開發中咱們經常有使用Svn或者Git來管理咱們的代碼或者是項目相關的文件,然而他們都有一個共同點就是:版本控制mysql

​ 不少人會問爲何要使用Svn或者是Git,那麼我會問:我相信你寫的代碼很好,可是有一天你修改了不少不少的Bug,可是忽然想到之前的代碼中有一個比較重要的算法你不當心覆蓋掉了,這時候你應該怎麼辦?算法

​ 或許你會告訴我你能夠在修改這些代碼以前備份一次當前修改的文件,或者是當前項目。sql

​ 可是時間久了你的機器上會有多少備份文件呢?數據庫

​ 若是有一天你的同事須要回滾到以前的代碼看一下那時候Bug的緣由,你會從你的機器上找到指定時間的文件發給他嘛?bash

​ 固然不是,咱們有Svn或者是Git以後咱們能夠方便的看到文件以前的版本,還能夠方便的對比。那麼如今清楚了版本控制的重要性了。服務器

​ 一樣數據庫也是這樣,咱們的系統99%都離不開數據庫,由於咱們總要把數據存儲起來。spa

​ 那若是咱們數據庫被誤刪、被黑客入侵、被惡意修改怎麼辦?版本控制

​ 那麼咱們能夠試着讓咱們的服務器自動來幫咱們備份數據庫的數據到指定位置,萬一有一天咱們的數據庫不當心手抖了,咱們還能夠用備份下來的數據庫腳本直接恢復。rest

​ 上腳本:code

# db username
db_user="test"  
# db password
db_passwd="test"
# db host
db_host="121.201.5.216"
# backup db name
db_name="Alterem"  
# the directory for story your backup file.  
backup_dir="backup"  cd 
# date format for backup file (dd-mm-yyyy)  
time="$(date +"%Y-%m-%d-%H-%M-%S")"  
# mysql, mysqldump and some other bin's path  
MYSQL="/usr/local/mysql/bin/mysql"  
MYSQLDUMP="/usr/local/mysql/bin/mysqldump"  
GZIP="/bin/gzip"  
  
$MYSQLDUMP -u $db_user -h $db_host -p$db_passwd $db_name | $GZIP -9 > "/data/backup/$backup_dir/$db_name"_"$time.gz"

建立定時器

crontab -e

添加定時器

# 天天凌晨 1 點 30 分 進行數據備份
30  1  *  *  * /root/mysql-backup.sh

重啓定時器

/etc/rc.d/init.d/crond restart

cron解析

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

在線Cron表達式生成器http://cron.qqe2.com/

本文由博客一文多發平臺 OpenWrite 發佈!
相關文章
相關標籤/搜索