您好,登錄后才能下訂單哦!
如何將Linux中MySQL數據定時備份到git倉庫?相信很多新手小白還沒學會這個技能,通過這篇文章的總結,希望你能學會學會這個技能。以下資料是實現的步驟。
簡介
我們在部署我們的中小型項目時, 在數據存儲, 我們通常選擇 mysql 作為我們的存儲工具. 那么對于一個大的項目來說, 每天的數據量是十分大的. 對于每天產生的數據, 如果哪一天我們的網站或者服務器受到攻擊, 我們的數據丟失是個很爆炸的事情, 所以說自然這設計到數據庫的備份. 那么怎樣的備份是我們想要的呢?
對于備份的數據文件我們可能會存放在服務器目錄, 備份周期的話當然是按照數據量來說的, 這里我們一般都是每天的凌晨備份一次. 備份后的文件存放在我們的服務器的目錄下面, 但是萬一有一天服務器也崩潰了, 那么備份的文件也就沒了, 所以我們設想一個好的方案就是數據庫每天備份 每次備份自動提交到遠程倉庫, 這里我以碼云為例.
碼云
首先建立好遠程倉庫, 在這里我選擇了 碼云
新建一個私有倉庫, 當然為了每次可以免密碼提交文件, 在服務器里可以生成 ssh key
服務器新建備份
在服務器為了存儲備份后的文件, 新建一個備份目錄
$ mkdir /bak
進入該目錄后, 繼續新建兩個文件夾 mysqlBak 和 shDir, 一個是放腳本文件, 一個是放具體備份后的文件.
下面我們可以去新建腳本了, 進入 shDir 目錄后執行
$ vim mysqlBak.sh
具體的代碼如下:
#!bin/sh ################### 數據庫配置信息 ####################### createAt=`date +%Y-%m-%d-%H:%M:%S` user=root passwd=ghc1996 dbname=ispace mysql_back_path=/bak/mysqlBak ################### 執行命令 ####################### 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
這里只是一個簡單的腳本, 我想了解 linux 的很容易看的懂, 執行的就是備份數據庫并 push 到遠程倉庫.
那么既然是腳本, 我們需要指明什么時候執行這個腳本, 指定腳本執行.
$ crontab -e
我們希望是每天的凌晨執行一次備份, 并添加到遠程倉庫, 那么添加
$ 0 0 * * * /bin/sh /bak/shDir/mysqlbak.sh
對 linux 的 crontab 指定的時間只有五個部分
使用命令 crontab -e 然后直接編輯定時腳本。 時間 + 具體的名字
舉個列子來說就是:
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 點時會去執行這個腳本文件, 那么這就實現了基本的數據庫的備份
執行定時任務:
$ crontab -l
如果服務沒有啟動 那么重新啟動定時任務
$ systemctl restart crond
那么現在這個定時任務就已經啟動了, 對于提交遠程倉庫前提是在服務器生成 ssh key并添加到碼云, 這在上面也提到過.
對于需要提交文件的目錄初始化 git 目錄就可以了, 這樣局可以構成了我們需要的本分任務.
當然過程中可能會遇到一些問題, 我在下面的相關鏈接都已經羅列出來了.
這樣一來我們就可以實現了每天的凌晨備份我們的數據庫, 并同時提交到我們的碼云這個遠程倉庫, 這也是我們想要的效果.
我也說過備份的周期視我們的項目的數據量的大小而定.
對于每個框架都有自己的備份機制 我這里所寫的是我們自己實現的一個通用的備份機制
以上就是將Linux中MySQL數據定時備份到git倉庫的方法,詳細使用情況還需要大家自己親自動手使用過才能領會。如果想了解更多相關內容,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。