1. 程式人生 > >阿里雲伺服器自動備份

阿里雲伺服器自動備份

需求:備份執行在阿里雲伺服器的資料庫(mysql--資料量很小)。

背景:資料庫操作小白。

內容:實現自動備份的過程,參考的文章,以及遇到的問題。

1,先記錄一下,實現自動備份前,手動備份的過程

a,備份整個資料庫到.sql檔案:mysqldump -u root -p 資料庫名字 > /路徑/檔名.sql

(在根命令執行即可,不用進入到資料庫內部)

(如果不支援mysqldump命令需要先配置環境)

b,恢復資料庫,先通過使用者名稱密碼進入指定資料庫,在mysql命令下執行命令:source 資料庫地址

2,折騰自動備份(這部分內容摘抄自:https://www.cnblogs.com/taomylife/p/8022104.html)

第一步:建立備份資料的指令碼檔案

在想要備份的資料夾下,建立檔案。建立命令:

vi bkDatabaseName.sh

在建立的檔案中寫入

輸入/貼上以下內容---備份資料庫到.sql檔案

#!/bin/bash
mysqldump -uusername -ppassword DatabaseName > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql

對備份進行壓縮---可以不要上面一部分,只儲存壓縮的檔案,以節省儲存空間:

#!/bin/bash
mysqldump -uusername -ppassword DatabaseName | gzip > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz

注意: 

把 username 替換為實際的使用者名稱; 

把 password 替換為實際的密碼; 

把 DatabaseName 替換為實際的資料庫名;

第二步:新增可執行許可權

chmod u+x bkDatabaseName.sh

新增可執行許可權之後先執行一下,看看指令碼有沒有錯誤,能不能正常使用;

./bkDatabaseName.sh

第三步,新增計劃任務

檢測或安裝 crontab

確認crontab是否安裝: 

執行 crontab 命令如果報 command not found,就表明沒有安裝

# crontab
-bash: crontab: command not found

如時沒有安裝 crontab,需要先安裝它

新增計劃任務

執行命令:

crontab -e

這時就像使用vi編輯器一樣,可以對計劃任務進行編輯。 

輸入以下內容並儲存:

*/1 * * * * /home/backup/bkDatabaseName.sh

意思是每一分鐘執行一次shell指令碼“/home/backup/bkDatabaseName.sh”。

3,遇到的問題

第一個:在自己電腦上執行crontab -e更教程一樣,順利完成配置,但是去阿里雲伺服器上配置,輸出結果跟教程不一樣,如下圖

沒明白什麼意思,就隨便選了1,然後問題就來了,這個命令一直不能執行。

後來才發現是在Linux系統上第一次執行crontab會讓選擇編輯器,選了第一個就不能編輯或者編輯困難(自己瞎猜的)。重新選擇話可以執行命令:select-editor  (針對crontab的一個命令)可以重新選擇一次,重新選擇了3,就順利可以編輯啦。

學習部落格地址:http://blog.csdn.net/Sweblish/article/details/8653336

第二個:寫備份資料庫指令碼的時候,提示不能在指令碼中直接資料資料庫密碼。現在也沒解決,但是還能用。