我的操作環(huán)境為mysql5.7 汽煮, centos7.4
一: 數(shù)據(jù)庫的定時(shí)備份
1.創(chuàng)建備份文件目錄
mkdir /home/dbback
2.創(chuàng)建備份shell腳本
cd /home/dbback
vim bkDatabaseName.sh
然后輸入:
#!/bin/bash
mysqldump -uusername -ppassword DatabaseName | gzip > /home/dbback/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz
這樣可以直接將sql備份成壓縮文件棚唆,節(jié)約空間
可以用:
gunzip *******.zip 命令解壓出sql文件
3.添加權(quán)限并測(cè)試
chmod u+x bkDatabaseName.sh
./bkDatabaseName.sh
執(zhí)行腳本搬卒,如果有文件備份的話說明一切正常,執(zhí)行腳本過程中出現(xiàn)了 Warning: Using a password on the command line interface can be insecure契邀,不過我的能正常備份,就沒處理微饥。
4.添加腳本到計(jì)劃任務(wù)
輸入crontab古戴,如果提示找不到命令,請(qǐng)自行安裝crontab
添加任務(wù)
crontab -e
0 2 * * * /home/dbback/bkDatabaseName.sh
這樣就可以了现恼。0 2 * * *表示每天凌晨?jī)牲c(diǎn)鐘執(zhí)行一次,這個(gè)可以根據(jù)具體需求改變
tail -f /var/log/cron 這個(gè)可以看定時(shí)任務(wù)的執(zhí)行記錄始锚。這樣喳逛,定時(shí)備份數(shù)據(jù)庫的任務(wù)就實(shí)現(xiàn)了。
參考文章鏈接地址: https://blog.csdn.net/qq_35923749/article/details/79363364
crontab 定時(shí)任務(wù) http://www.reibang.com/p/d93e2b177814
二:將備份的數(shù)據(jù)用rsync推到遠(yuǎn)程服務(wù)器
將這臺(tái)服務(wù)器用作rsync客戶端姐呐,遠(yuǎn)程服務(wù)器用作rsync服務(wù)器典蝌。
1.先配置rsync服務(wù)器(即配置要同步到的遠(yuǎn)程服務(wù)器) 【配置三個(gè)文件rsyncd.conf(主配置文件)、rsyncd.secrets(密碼文件)赠法、rsyncd.motd(rysnc服務(wù)器信息)】
touch /etc/rsyncd.conf #創(chuàng)建rsyncd.conf,這是rsync服務(wù)器的配置文件
touch /etc/rsyncd.secrets #創(chuàng)建rsyncd.secrets款侵,這是用戶密碼文件
chmod 600 /etc/rsyncd.secrets #將rsyncd.secrets這個(gè)密碼文件的文件屬性設(shè)為root擁有, 且權(quán)限要設(shè)為600, 否則無法備份成功!
(注意:服務(wù)器A和服務(wù)器B都要設(shè)置該權(quán)限2啻俊)
touch /etc/rsyncd.motd
-
修改rsyncd.conf文件:
vim /etc/rsyncd.conf
修改內(nèi)容為:
# /etc/rsyncd: configuration file for rsync daemon mode
uid = root
gid = root
use chroot = no
max connections = 6
pid file = /var/run/rsyncd.pid
read only = no
hosts allow = 10.47.160.0/255.255.255.0
motd file = /etc/rsyncd.motd
log file = /var/log/rsync.log
log format = %t %a %m %f %b
syslog facility = local3
timeout = 600
[zzzcs]
path = /home/nbjk/upload
list=no
ignore errors
comment = This is sync upload files
auth users = root
secrets file = /etc/rsyncd.secrets
注: hosts allow中IP和子網(wǎng)掩碼應(yīng)設(shè)置為rsync客戶端的真實(shí)網(wǎng)段數(shù)據(jù)。
path 為要備份到rsync服務(wù)端的目錄
修改rsyncd.secrets密碼文件:
vim /etc/rsyncd.secrets
內(nèi)容改為:
root:zzzcs
啟動(dòng)rsync服務(wù):
rsync --daemon
到這里rsync服務(wù)器已配置完畢妹笆。
接下來配置rsync客戶端:
touch /etc/rsyncd.secrets #創(chuàng)建rsyncd.secrets密碼文件
chmod 600 /etc/rsyncd.secrets #將rsyncd.secrets這個(gè)密碼文件的文件屬性設(shè)為root擁有, 且權(quán)限要設(shè)為600, 否則無法備份成功!
修改rsyncd.secrets密碼文件:
vim /etc/rsyncd.secrets
內(nèi)容改為:
zzzcs
在rsync客戶端上執(zhí)行命令,將數(shù)據(jù)推送到rsync服務(wù)器
rsync -arv --password-file=/etc/rsyncd.secrets /home/nbjk/upload/* rsync://root@10.47.160.93/zzzcs
1)上述同步命令中的IP為服務(wù)器B的地址墩新;
2)可以將該命令寫入一個(gè).sh文件窟坐,例如(rsync.sh),并用cron job定時(shí)執(zhí)行哲鸳,即可達(dá)到定時(shí)向外網(wǎng)服務(wù)器同步文件的目的;
執(zhí)行命令:
crontab -e
在定時(shí)文件中寫入定時(shí)執(zhí)行任務(wù)讯沈,實(shí)例如下,即可實(shí)現(xiàn)定時(shí)同步婿奔。
0 4 * * * /home/***/***/rsync.sh 每天凌晨四點(diǎn)執(zhí)行一次數(shù)據(jù)同步;
注意:兩臺(tái)服務(wù)器均要打開873/tcp萍摊、873/udp端口。另外要保證rsync服務(wù)器指定的同步到的目錄要存在。
firewall-cmd --zone=public --add-port=873/tcp --permanent
firewall-cmd --zone=public --add-port=873/udp --permanent
firewall-cmd --reload
至此薇正,mysql的數(shù)據(jù)庫定時(shí)備份和定時(shí)同步到遠(yuǎn)程服務(wù)器就實(shí)現(xiàn)了。
參考文章鏈接: https://blog.csdn.net/dorantest/article/details/51788156?utm_source=blogxgwz1