開發中我們常常有使用Svn或Git來管理我們的程式碼或是專案相關的文件,然而他們都有一個共通點就是:版本控制
## 很多人會問為什麼要使用Svn或Git,那麼我會問:我相信你寫的程式碼很好,但是有一天你修改了很多很多的Bug,但是突然想到以前的程式碼中有一個比較重要的演算法你不小心覆蓋掉了,這時候該怎麼辦? 推薦 或許你會告訴我你可以在修改這些程式碼之前備份一次目前修改的文件,或是目前專案。 但是時間久了你的機器上會有多少備份檔案呢? 如果有一天你的同事需要回滾到之前的程式碼看一下那時候Bug的原因,你會從你的機器上找到指定時間的文件發給他嘛? 當然不是,我們有Svn或是Git之後我們可以方便的看到檔案之前的版本,還可以方便的比較。那現在清楚了版本控制的重要性了。 同樣資料庫也是這樣,我們的系統99%都離不開資料庫,因為我們總是要把資料儲存起來。 那如果我們資料庫被誤刪、被駭客入侵、被惡意修改怎麼辦? 那麼我們可以試著讓我們的伺服器自動來幫我們備份資料庫的資料到指定位置,萬一有一天我們的資料庫不小心手抖了,我們還可以用備份下來的資料庫腳本直接恢復。上腳本:
# 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/
以上是MySQL在CentOS上執行自動備份的詳細內容。更多資訊請關注PHP中文網其他相關文章!