艾瑞克的 Hexo 空間

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

本文發表於608天之前,文章內容可能已經過時,如有疑問,請聯繫作者。

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

DATECODE=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” > /backups/“$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 /backups/“$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” [email protected]

else

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

fi
 

 

avatar
[筆記] rsync with file version control

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