[筆記] Daily backup Websites and Offsite Backup using FTP 網頁備份

 Daily backup Websites and Offsite Backup using FTP 網頁備份

 

1.多個資料庫一起備份 (事實上應該說備份MySQL Server內的所有資料庫) backup multiple databases , in facts , all databases will be dump and backup

2.每一天都是完整備份,所以空間使用量請自行斟酌 in my case , there`s a little more than 500MB per day , that means 180GB per year

3.備份完的資料透過FTP 外推到其他空間 backup files will be push to another sites using FTP

4.變數請自行替換成符合個人的環境 please consider to change the variables in the script

 

#!/bin/bash

############### Infos – Edit them accordingly  ########################

DATE=`date +%Y-%m-%d`
LOCAL_BACKUP_DIR=”/backups”
#DB_NAME1=”DB1″
#DB_NAME2=”DB2″
#DB_NAME3=”DB3″
#DB_NAME4=”DB4″
DB_USER=”DBadmin”
DB_PASSWORD=”DBadminpassword”

FTP_SERVER=”ftp.abc.com”
FTP_USERNAME=”ftpuser”
FTP_PASSWORD=”ftpuserpassword”
FTP_UPLOAD_DIR=”/website_backup”

LOG_FILE=/backups/backup-DATE.log

############### Local Backup  ########################
#mysqldump -u $DB_USER -p$DB_PASSWORD –databases $DB_NAME1 $DB_NAME2 $DB_NAME3 $DB_NAME4 |gzip > $LOCAL_BACKUP_DIR/$DATE-DB.sql.gz
#mysql -uDBadmin -pDBadminpassword -e ‘show databases’ | while read dbname; do mysqldump -uroot -pu6hk4  “$dbname” > “$dbname”_$datecode.sql; done
mysql -uroot -pDBadmin -e ‘show databases’|grep -v Databas|grep -v information | while read dbname; do mysqldump -uDBadmin -pDBadminpassword  “$dbname” > “$dbname”_$datecode.sql; done
ls /backups/*.sql|while read dbname;do gzip -9 “$dbname”;done
#############################################
#網頁原始程式備份 ##
#############################################

ls -l /var/www/html |egrep  “^d”|awk -F ” ” ‘{print $9}’|while read sitename;do tar czvf “$sitename”_$datecode.tgz /var/www/html/$sitename;done
#mysqldump -u $DB_USER  -p$DB_PASSWORD $DB_NAME | gzip  > $LOCAL_BACKUP_DIR/$DATE-$DB_NAME.sql.gz

############### UPLOAD to FTP Server  ################

ftp -nv $FTP_SERVER << EndFTP
user “$FTP_USERNAME” “$FTP_PASSWORD”
binary
cd $FTP_UPLOAD_DIR
lcd $LOCAL_BACKUP_DIR
prom
mput *.sql.gz
mput *.tgz
bye
EndFTP

############### Check and save log, also send an email  ################

if test $? = 0
then
echo “Database Successfully Uploaded to the Ftp Server!”
echo -e “Database Successfully created and uploaded to the FTP Server!” | mail -s “Backup from $DATE” user@abc.com

else
echo “Error in database Upload to Ftp Server” > $LOG_FILE
fi

 

 

<

p data->總計有 (0) 人看過這篇文。

Leave a Reply

你的電子郵件位址並不會被公開。 必要欄位標記為 *