linux新建备份数据库的脚本文件,Linux下shell脚本:自动每日备份网站文件和数据库上传FTP空间...
前言
服務(wù)器、vps,難免會遇到各種問題,丟失數(shù)據(jù),則必然痛心疾首啊!!!
數(shù)據(jù)無價,so建議養(yǎng)成定期備份的習(xí)慣!而且,要多備份幾份,本地、網(wǎng)盤、FTP空間等,都多保存幾份!
這里,就為大家?guī)硪粋€linux下,利用lftp作為上傳方式的shell腳本,配合系統(tǒng)crontab定時計劃任務(wù)實現(xiàn)每天自動備份網(wǎng)站數(shù)據(jù),并上傳到FTP空間!
備份腳本
腳本內(nèi)容如下:
#!/bin/bash
#建議使用root賬戶登錄執(zhí)行本腳本
#賦予腳本執(zhí)行權(quán)限 chmod +x BackupToFtp.sh
#修改相關(guān)賬戶和路徑配置
#開始
MYSQL_USER=root #mysql用戶名
MYSQL_PASS=123456 #mysql密碼
FTP_USER=ftpuser #ftp用戶名
FTP_PASS=123456 #ftp密碼
FTP_IP=123.123.123.123 #ftp地址
FTP_backup=backup #ftp上存放備份文件的目錄,請?zhí)崆白约涸趂tp空間上創(chuàng)建
WEB_DATA=/home/www #要備份的網(wǎng)站數(shù)據(jù)目錄
MYSQL_PATH=/usr/local/mysql #MYSQL安裝路徑
DBNAME=dbname #要備份的數(shù)據(jù)庫名稱
LOCALbackup_path=/home/backup #本地備份文件存放路徑
#結(jié)束
#安裝FTP LFTP命令工具
echo "#---------------------------------------------------------------------#"
echo "正在ftp lftp客戶端工具...."
echo "默認(rèn)適用CentOS,Debian等系統(tǒng)請先修改本腳本相應(yīng)位置命令"
echo "若已經(jīng)安裝,請忽略即可"
echo "installing Ftp Lftp...."
echo "#---------------------------------------------------------------------#"
yum install -y ftp lftp
#apt-get install-y ftp lftp
#設(shè)置數(shù)據(jù)庫備份文件的名字和舊數(shù)據(jù)庫備份文件的名字(舊:默認(rèn)為5天前的)
DataBakName=Data_$(date +"%Y%m%d").tar.gz
OldData=Data_$(date -d -5day +"%Y%m%d").tar.gz
#設(shè)置網(wǎng)站數(shù)據(jù)備份文件的名字和舊網(wǎng)站數(shù)據(jù)備份文件的名字(舊:默認(rèn)為5天前的)
WebBakName=Web_$(date +%Y%m%d).tar.gz
OldWeb=Web_$(date -d -5day +"%Y%m%d").tar.gz
#刪除本地5天前的備份數(shù)據(jù)
echo "#---------------------------------------------------------------------#"
echo "自動刪除本地5天前的備份數(shù)據(jù)文件...."
echo "Auto delete local backup data files 5 days ago...."
rm -rf $LOCALbackup_path/Data_$(date -d -5day +"%Y%m%d").tar.gz $LOCALbackup_path/Web_$(date -d -5day +"%Y%m%d").tar.gz
cd $LOCALbackup_path
#導(dǎo)出需要備份的數(shù)據(jù)庫為數(shù)據(jù)庫SQL格式
echo "#---------------------------------------------------------------------#"
echo "正在導(dǎo)出需要備份的 $DBNAME 數(shù)據(jù)庫sql備份文件...."
echo "Exporting you set database:$DBNAME to SQL file...."
$MYSQL_PATH/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS $DBNAME > $LOCALbackup_path/$DBNAME.sql
#壓縮數(shù)據(jù)庫文件并刪除sql文件
echo "正在壓縮打包數(shù)據(jù)庫sql備份文件...."
echo "Tar the Database SQL file to tar.gz And delete SQL file...."
tar zvcf $LOCALbackup_path/$DataBakName $LOCALbackup_path/.sql
rm -rf $LOCALbackup_path/.sql
#壓縮網(wǎng)站數(shù)據(jù)
echo "#---------------------------------------------------------------------#"
echo "正在壓縮打包網(wǎng)站程序文件...."
echo "Tar the WebData file to tar.gz...."
#tar zvcf $LOCALbackup_path/$WebBakName $WEB_DATA
cd $WEB_DATA
tar zvcf $LOCALbackup_path/$WebBakName *
#上傳到FTP空間
echo "#---------------------------------------------------------------------#"
echo "數(shù)據(jù)打包完成,開始登錄FTP空間...."
echo "Start to login to FTP...."
#先進入備份文件路徑
cd $LOCALbackup_path
#默認(rèn)方式:鏡像同步,與下面的單個方式任選其一
#------------------------------------------------------------------
lftp -u $FTP_USER,$FTP_PASS -e "mirror -R --only-newer $LOCALbackup_path $FTP_backup" $FTP_IP << EOF
bye
EOF
#------------------------------------------------------------------
#單個文件上傳方式,請取消橫線內(nèi)的注釋符#并注釋掉前面的默認(rèn)方式
#------------------------------------------------------------------
#lftp -u $FTP_USER,$FTP_PASS $FTP_IP << EOF
#lftp << EOF
#open ftp://$FTP_USER:$FTP_PASS@$FTP_IP
#cd $FTP_backup
#echo "正在上傳數(shù)據(jù)庫備份文件...."
#echo "Uploading Database file...."
#put $DataBakName
#echo "正在上傳網(wǎng)站程序備份文件...."
#echo "Uploading WebData file...."
#put $WebBakName
#bye
#EOF
#------------------------------------------------------------------
echo "#---------------------------------------------------------------------#"
echo "上傳所有備份文件完成..."
echo "Upload all backup files complete..."
echo "請登錄FTP空間查看!"
echo "Please login to the FTP check!"
echo "#---------------------------------------------------------------------#"
腳本內(nèi)容結(jié)束
emmm...請原諒博主英語比較差,大部分都是機翻過來的,懶得校正了!
自動備份
配合系統(tǒng)crontab定時計劃任務(wù)實現(xiàn)每天自動備份
命令:crontab -e
添加定時計劃內(nèi)容:**00 00 * * * /BackupToFtp.sh**
(其中00 00為時間,格式:分/小時,可自行修改,例如:30 23,就是每天23.30運行這個腳本,/BackupToFtp.sh為腳本文件存放路徑)
結(jié)束語
結(jié)束語就是,沒有結(jié)束語!希望能幫到有需要的人吧!就是這樣!
總結(jié)
以上是生活随笔為你收集整理的linux新建备份数据库的脚本文件,Linux下shell脚本:自动每日备份网站文件和数据库上传FTP空间...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 属蛇男取名王宇航合适吗?
- 下一篇: squares怎么读