在Linux系統(tǒng)中,MySQL數(shù)據(jù)庫是非常常用的一種關(guān)系型數(shù)據(jù)庫,特別是在web開發(fā)中。為了避免數(shù)據(jù)的丟失或者誤操作,我們需要對MySQL數(shù)據(jù)庫進行備份。而手動備份的方式比較繁瑣,因此我們可以使用腳本自動對MySQL數(shù)據(jù)庫進行備份。
下面我們就來學習一下如何編寫一個自動備份腳本。
#!/bin/bash # 定義備份文件名 BACKUP_NAME=mysql-backup-$(date +%Y%m%d%H%M%S).tar.gz # 定義備份目錄 BACKUP_DIR=/data/mysql-backup # 判斷備份目錄是否存在,不存在則創(chuàng)建 if [ ! -d "$BACKUP_DIR" ]; then mkdir -p "$BACKUP_DIR" fi # 備份MySQL數(shù)據(jù)庫 # 假設(shè)MySQL的用戶名為root,密碼為123456,需要備份的數(shù)據(jù)庫為test mysqldump -u root -p123456 test | gzip >"$BACKUP_DIR/$BACKUP_NAME" # 判斷備份是否成功 if [ $? == 0 ]; then echo "MySQL backup success" else echo "MySQL backup fail" fi # 刪除3天前的備份文件 find "$BACKUP_DIR" -name "*.tar.gz" -type f -mtime +3 -exec rm {} \;
首先,定義了備份文件名和備份目錄。然后創(chuàng)建了備份目錄(如果不存在的話)。接著使用mysqldump命令備份MySQL數(shù)據(jù)庫,并將備份文件壓縮成.tar.gz格式的文件保存到備份目錄中。如有備份成功,則輸出MySQL backup success,否則輸出MySQL backup fail。最后使用find命令刪除3天前的備份文件。
使用該腳本時,只需要將腳本保存到一個.sh文件中,并將該文件添加到定時任務中,就可以實現(xiàn)每天自動備份MySQL數(shù)據(jù)庫了。