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