您好,登錄后才能下訂單哦!
這篇文章主要介紹“自動備份MySQL到FTP并定期清理過期備份的Shell腳本分享”,在日常操作中,相信很多人在自動備份MySQL到FTP并定期清理過期備份的Shell腳本分享問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”自動備份MySQL到FTP并定期清理過期備份的Shell腳本分享”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
代碼如下:
date +%Y-%m-%d
那么,如果我們要得到1個月之前的日期怎么辦呢?使用下面的這條命令就可以得到:
代碼如下:
date -d last-month +%Y-%m-%d
怎么樣?簡單吧。實際備份的時候,因為之前腳本使用的是“m-d-Y”的形式,也就是“月-日-年”的形式,所以我稍微做了下調(diào)整。但是下面這個Shell腳本中的是按照“年-月-日”來產(chǎn)生文件名的。
于是,給出整個備份Shell腳本,需要的朋友只需要填寫下有中文說明的部分,即可在自己的Linux服務(wù)器上使用。使用辦法:復(fù)制到某個目錄下,然后給予執(zhí)行權(quán)限,再在cron中設(shè)置每天指定時間運行即可。(關(guān)于這部分,請自行查找相關(guān)說明,這里不再復(fù)述)
帶自動清理功能的MySQL備份到FTP的Shell腳本如下:
代碼如下:
#!/bin/bash
MyUSER="db_username" # 數(shù)據(jù)庫用戶名,建議使用root賬戶或者擁有全局權(quán)限的用戶名
MyPASS="db_password" # 數(shù)據(jù)庫密碼
MyHOST="localhost" # 數(shù)據(jù)庫服務(wù)器
# Linux bin paths, change this if it can't be autodetected via which command
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
CHOWN="$(which chown)"
CHMOD="$(which chmod)"
GZIP="$(which gzip)"
# 數(shù)據(jù)庫備份的路徑
DEST="/home/backup"
# Main directory where backup will be stored
MBD="$DEST/mysql"
# Get hostname
HOST="$(hostname)"
# Get data in dd-mm-yyyy format
NOW="$(date +%d-%m-%Y)"
OLD="$(date -d last-month +%d-%m-%Y)"
# File to store current backup file
FILE=""
# Store list of databases
DBS=""
# DO NOT BACKUP these databases
IGGY="test"
rm -rf $MBD
[ ! -d $MBD ] && mkdir -p $MBD || :
# Only root can access it!
$CHOWN 0.0 -R $DEST
$CHMOD 0600 $DEST
# Get all database list first
DBS="$($MYSQL -u $MyUSER -h $MyHOST -p$MyPASS -Bse 'show databases')"
cat > ftpcc.sh <<EOF
cd $MBD
ftp -i -n<<!
open blog.renhao.org #在這里填寫FTP服務(wù)器的域名或IP
user ftp_user ftp_pass #在這里填寫FTP用戶名和密碼,注意空格分隔
binary
mput *.gz
EOF
for db in $DBS
do
skipdb=-1
if [ "$IGGY" != "" ];
then
for i in $IGGY
do
[ "$db" = "$i" ] && skipdb=1 || :
done
fi
if [ "$skipdb" = "-1" ] ; then
FILE="$MBD/$db.$HOST.$NOW.gz"
echo "delete $db.$HOST.$OLD.gz" >> ftpcc.sh
# do all inone job in pipe,
# connect to mysql using mysqldump for select mysql database
# and pipe it out to gz file in backup dir :)
$MYSQLDUMP -u $MyUSER -h $MyHOST -p$MyPASS $db | $GZIP -9 > $FILE
fi
done
cat >> ftpcc.sh <<EOF
close
bye
!
EOF
sh ftpcc.sh
rm ftpcc.sh
這樣的Shell腳本運行后,可以得到每個MySQL庫的獨立備份文件,且以gz格式壓縮以便節(jié)省空間。
到此,關(guān)于“自動備份MySQL到FTP并定期清理過期備份的Shell腳本分享”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。