複製代碼 代碼如下:
#!/bin/bash
#author: 505056357@qq.com
echo "backup job start"
#設定要備份的網站目錄,即是網站的根目錄
file=/home/wwwroot/default
#設定本地備份目錄,用於存放打包後的檔案
backpath=/home/wwwroot/bkdata/
dbuser=root
#資料密碼,要記得用單引號將把整個密碼引起來,如果密碼中有單引號就用雙引號,嘿嘿
dbpwd='123456'
dbname=car
domain=192.168.0.187
user=ftpuser
userpwd='123456'
bkdate=$(date +%Y%m%d)
sqlfile_sql=${dbname}_${bkdate}.sql
sqlfile_gz=${dbname}_${bkdate}.tar.gz
sqlfp=${backpath}${bkdate}/$sqlfile_sql
if [ -e $backpath${bkdate} ]
then
echo $backpath is exists.
else
mkdir -p $backpath${bkdate}
fi
#執行Database Backup,/apps/mysql/bin/mysqldump修改為你實際環境的路徑
/apps/mysql/bin/mysqldump -u $dbuser -p$dbpwd $dbname > ${sqlfp}
#對備份之後的資料庫檔案壓縮,或者在Database Backup時通過加入參數直接進行壓縮
tar zcf $backpath${bkdate}/$sqlfile_gz -C ${backpath}${bkdate} ${sqlfile_sql}
#刪除未壓縮SQL的檔案
rm -f ${sqlfp}
#產生的檔案名稱格式:web_網站目錄名_20130419.tar.gz
fn=web_${file##*/}_${bkdate}.tar.gz
tar zcf $backpath${bkdate}/$fn -C ${file%/*} ${file##*/}
#以下操作為FTP自動連接並把本地檔案上傳到異地伺服器上
/usr/bin/lftp ${domain} << END
user ${user} ${userpwd}
lcd ${backpath}
mirror -R ${bkdate}
exit
END
echo "backup job done"