MySQL 定時備份

一、安裝crontabs

   crond是linux系統中用來定期執行命令或者指定程序任務的一種服務或者軟件。

(用rpm -qa | grep crontab查看是否安裝,如果沒有安裝就執行 yum install -y crontabs ) 

[root@izbp1938t1plpjxn10fcqwz ~]# yum install crontab -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
No package crontab available.
Error: Nothing to do
[root@izbp1938t1plpjxn10fcqwz ~]# yum install crontabs -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Package crontabs-1.11-6.20121102git.el7.noarch already installed and latest version
Nothing to do

二、編寫MySQL備份腳本

#!/bin/bash
#獲取當前時間
date_now=$(date "+%Y%m%d%H%M%S")
backUpFolder=/data/backup/mysql
username="root"
password="brillilab_MYSQL_01"
db_name="brill_lab"
#定義備份文件名
fileName="${db_name}_${date_now}.sql"
#定義備份文件目錄
backUpFileName="${backUpFolder}/${fileName}"
echo "starting backup mysql ${db_name} at ${date_now}."
/usr/bin/mysqldump -u${username} -p${password}  --lock-all-tables --flush-logs --master-data=1 ${db_name} > ${backUpFileName}
#進入到備份文件目錄
cd ${backUpFolder}
#壓縮備份文件
tar zcvf ${fileName}.tar.gz ${fileName}
rm -rf ${fileName}
# use nodejs to upload backup file other place
#NODE_ENV=$backUpFolder@$backUpFileName node /home/tasks/upload.js
date_end=$(date "+%Y%m%d-%H%M%S")
echo "finish backup mysql database ${db_name} at ${date_end}."

 三、添加任務到crontabs

 

[root@iZbp1gwwsckn9afrdy0itkZ ~]# crontab -e

加入以下行

0 0 * * 0 sh /root/mysqlBackup.sh

檢查結果

[root@iZbp1gwwsckn9afrdy0itkZ ~]# crontab -l
0 0 * * 0 sh /root/mysqlBackup.sh

完成!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章