設為首頁

收藏本站

導覽首頁 | 新登場    ◇聯盟溫泉 | 民宿 | 人力銀行 | 女性 |

類型:mysql_article

定時自動備分MySQL資料庫
建立一個sh檔案,配合crontab,即可以完美備分,並且避免佔用太多空間。

步驟 1:文件夾和文件創建

在任何地方創建一個文件夾,比如:/var/backup/,最好在 web 根目錄之外,以避免除您之外的任何人意外訪問。
現在,在之前創建的文件夾中創建一個名為“script.sh”的具有可執行權限的文件。
您需要創建另一個文件夾,比如說“db”,您將使用以下命令在其中存儲數據庫備份:

sudo mkdir /var/backup/db

步驟 2 :文件內容

使用 vim script.sh 或 nano script.sh 命令編輯您在步驟 1 中創建的文件“script.sh”(您可能需要將 sudo 放在語法的開頭)並將以下內容放入其中:
# (1) set up all the mysqldump variables
DATE=`date +"%d_%b_%Y_%H%M"`
SQLFILE=/var/backup/db/db_backup_${DATE}.sql
DATABASE=<database_name>
USER=<db_user>
PASSWORD=<db_user_password>

# (2) in case you run this more than once a day,
# remove the previous version of the file
unalias rm 2> /dev/null
rm ${SQLFILE} 2> /dev/null
rm ${SQLFILE}.gz  2> /dev/null

# (3) do the mysql database backup (dump)
sudo mysqldump -u ${USER} -p${PASSWORD} ${DATABASE}|gzip > ${SQLFILE}.gz
這個文件的內容有3個不同的部分,讓我們來看看:
第 1 節:
第一部分允許您將適合您的環境的特定值設置為稍後在同一文件的其他兩個部分中使用的變量。
1.DATE日期
將當前日期和時間附加到備份文件的名稱,以便您稍後通過查看其名稱來識別任何所需的文件。
2.SQLFILE數據庫文件
為了讓您設置備份文件的路徑和文件名,為方便起見,附加當前日期和時間(由前一個變量計算)。
3. DATABASE數據庫
指定要備份的數據庫。這在 MySQL 腳本中用於進行數據庫轉儲/備份。
4.USER用戶
讓您設置有權轉儲前面提到的數據庫的數據庫用戶名。
5.PASSWORD密碼
提及您選擇在上一個變量中提供的數據庫用戶的密碼。
第 2 節:
第二部分幫助您刪除具有相同名稱的任何數據庫。當您將日期和時間參數附加到文件名時,您實際上並不需要此部分,但是如果您使用文件的通用名稱並且您希望您的腳本覆蓋前一個文件,那麼您可以包含此部分到你的腳本。
第 3 節:
第三部分使用第一部分的變量並執行mysqldump命令創建導出的gzip文件。請注意,您需要將數據庫密碼放在此文件中,這在某些情況下您可能不需要,但是存在一種替代方法來轉儲數據庫,而無需在腳本中提供密碼。為此,您需要編輯 mysql 配置的 my.cnf 文件。該文件可能位於 5 個或更多位置,所有位置都是有效的,因為它們都加載級聯。

步驟 3:測試以驗證腳本是否正常工作

到腳本的文件夾:
cd /var/backup/
sudo ./script.sh
如果您的腳本工作正常,您應該在 /var/backup/db/ 文件夾中創建一個備份文件。 如果沒有這樣的文件,則可能是您遺漏了上述命令中的某些內容,或者您有一些用戶權限限制,可能需要您對每個命令使用 sudo。

第 4 步:使用 Cron 調度執行

使用下面提到的命令編輯服務器的 cron:
crontab -e
請注意:如果您使用 root 登錄或您登錄的用戶具有足夠的權限來執行 cron 和創建備份,則可以排除“sudo”命令。
在此文件的底部輸入以下行:
0 1 * * * /var/backup/script.sh
cron 中的上述行將在每天服務器時間凌晨 1:00 運行。 如果您想以不同的方式安排它,您可以根據需要對其進行修改。

步驟 5:刪除舊備份以限制服務器上的空間使用

由於託管服務器提供的空間有限,我們通常傾向於限制存儲在服務器上的日誌和備份。 因此,您需要刪除將來不需要的舊備份。
在備份文件的底部,添加以下命令:
sudo find /var/backup/db/. -mtime +7 -exec rm {} \;
這將刪除超過 7 天的備份。 但是,您可以修改 -mtime 參數的值以使其符合您所需的時間。

https://www.folio3.com/5-easy-steps-on-scheduling-mysql-database-backup-using-cron

104休閒信箱 2.3.0 © 104mm.com 2001 - 2021. 您尚未登錄
Page generated in 0.02968907 seconds with 3 Queries