新聞中心
如何將Linux中MySQL數(shù)據(jù)定時(shí)備份到git倉(cāng)庫(kù)?相信很多新手小白還沒(méi)學(xué)會(huì)這個(gè)技能,通過(guò)這篇文章的總結(jié),希望你能學(xué)會(huì)學(xué)會(huì)這個(gè)技能。以下資料是實(shí)現(xiàn)的步驟。
成都創(chuàng)新互聯(lián)2013年至今,先為新平等服務(wù)建站,新平等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為新平企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
簡(jiǎn)介
我們?cè)诓渴鹞覀兊闹行⌒晚?xiàng)目時(shí), 在數(shù)據(jù)存儲(chǔ), 我們通常選擇 mysql 作為我們的存儲(chǔ)工具. 那么對(duì)于一個(gè)大的項(xiàng)目來(lái)說(shuō), 每天的數(shù)據(jù)量是十分大的. 對(duì)于每天產(chǎn)生的數(shù)據(jù), 如果哪一天我們的網(wǎng)站或者服務(wù)器受到攻擊, 我們的數(shù)據(jù)丟失是個(gè)很爆炸的事情, 所以說(shuō)自然這設(shè)計(jì)到數(shù)據(jù)庫(kù)的備份. 那么怎樣的備份是我們想要的呢?
對(duì)于備份的數(shù)據(jù)文件我們可能會(huì)存放在服務(wù)器目錄, 備份周期的話當(dāng)然是按照數(shù)據(jù)量來(lái)說(shuō)的, 這里我們一般都是每天的凌晨備份一次. 備份后的文件存放在我們的服務(wù)器的目錄下面, 但是萬(wàn)一有一天服務(wù)器也崩潰了, 那么備份的文件也就沒(méi)了, 所以我們?cè)O(shè)想一個(gè)好的方案就是數(shù)據(jù)庫(kù)每天備份 每次備份自動(dòng)提交到遠(yuǎn)程倉(cāng)庫(kù), 這里我以碼云為例.
碼云
首先建立好遠(yuǎn)程倉(cāng)庫(kù), 在這里我選擇了 碼云
新建一個(gè)私有倉(cāng)庫(kù), 當(dāng)然為了每次可以免密碼提交文件, 在服務(wù)器里可以生成 ssh key
服務(wù)器新建備份
在服務(wù)器為了存儲(chǔ)備份后的文件, 新建一個(gè)備份目錄
$ mkdir /bak
進(jìn)入該目錄后, 繼續(xù)新建兩個(gè)文件夾 mysqlBak 和 shDir, 一個(gè)是放腳本文件, 一個(gè)是放具體備份后的文件.
下面我們可以去新建腳本了, 進(jìn)入 shDir 目錄后執(zhí)行
$ vim mysqlBak.sh
具體的代碼如下:
#!bin/sh ################### 數(shù)據(jù)庫(kù)配置信息 ####################### createAt=`date +%Y-%m-%d-%H:%M:%S` user=root passwd=ghc1996 dbname=ispace mysql_back_path=/bak/mysqlBak ################### 執(zhí)行命令 ####################### mysqldump -u $user -p$passwd $dbname > $mysql_back_path/$createAt.sql cd /bak/mysqlBak /usr/local/git/bin/git add . /usr/local/git/bin/git commit -m $createAt /usr/local/git/bin/git push
這里只是一個(gè)簡(jiǎn)單的腳本, 我想了解 linux 的很容易看的懂, 執(zhí)行的就是備份數(shù)據(jù)庫(kù)并 push 到遠(yuǎn)程倉(cāng)庫(kù).
那么既然是腳本, 我們需要指明什么時(shí)候執(zhí)行這個(gè)腳本, 指定腳本執(zhí)行.
$ crontab -e
我們希望是每天的凌晨執(zhí)行一次備份, 并添加到遠(yuǎn)程倉(cāng)庫(kù), 那么添加
$ 0 0 * * * /bin/sh /bak/shDir/mysqlbak.sh
對(duì) linux 的 crontab 指定的時(shí)間只有五個(gè)部分
使用命令 crontab -e 然后直接編輯定時(shí)腳本。 時(shí)間 + 具體的名字
舉個(gè)列子來(lái)說(shuō)就是:
0 0,3,7,9,12,15,18,21,23 * * * /bin/sh /bak/shell/mysqlBak.sh
這樣的話就是我每天 0,,3,7,9,12,15,18,21,23 點(diǎn)時(shí)會(huì)去執(zhí)行這個(gè)腳本文件, 那么這就實(shí)現(xiàn)了基本的數(shù)據(jù)庫(kù)的備份
執(zhí)行定時(shí)任務(wù):
$ crontab -l
如果服務(wù)沒(méi)有啟動(dòng) 那么重新啟動(dòng)定時(shí)任務(wù)
$ systemctl restart crond
那么現(xiàn)在這個(gè)定時(shí)任務(wù)就已經(jīng)啟動(dòng)了, 對(duì)于提交遠(yuǎn)程倉(cāng)庫(kù)前提是在服務(wù)器生成 ssh key并添加到碼云, 這在上面也提到過(guò).
對(duì)于需要提交文件的目錄初始化 git 目錄就可以了, 這樣局可以構(gòu)成了我們需要的本分任務(wù).
當(dāng)然過(guò)程中可能會(huì)遇到一些問(wèn)題, 我在下面的相關(guān)鏈接都已經(jīng)羅列出來(lái)了.
這樣一來(lái)我們就可以實(shí)現(xiàn)了每天的凌晨備份我們的數(shù)據(jù)庫(kù), 并同時(shí)提交到我們的碼云這個(gè)遠(yuǎn)程倉(cāng)庫(kù), 這也是我們想要的效果.
我也說(shuō)過(guò)備份的周期視我們的項(xiàng)目的數(shù)據(jù)量的大小而定.
對(duì)于每個(gè)框架都有自己的備份機(jī)制 我這里所寫的是我們自己實(shí)現(xiàn)的一個(gè)通用的備份機(jī)制
以上就是將Linux中MySQL數(shù)據(jù)定時(shí)備份到git倉(cāng)庫(kù)的方法,詳細(xì)使用情況還需要大家自己親自動(dòng)手使用過(guò)才能領(lǐng)會(huì)。如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
本文題目:如何將Linux中MySQL數(shù)據(jù)定時(shí)備份到git倉(cāng)庫(kù)
新聞來(lái)源:http://www.ef60e0e.cn/article/jcggde.html