Skip to content

Instantly share code, notes, and snippets.

@andyliu
Last active April 12, 2016 08:46
Show Gist options
  • Save andyliu/1bfacdff3fc7fa5f6d4186f11013bf97 to your computer and use it in GitHub Desktop.
Save andyliu/1bfacdff3fc7fa5f6d4186f11013bf97 to your computer and use it in GitHub Desktop.
VPS backup
#!/bin/bash
# MYSQL数据库帐号密码
#MYSQL_USR="root" # 数据库帐号
#MYSQL_PWD="password" # 数据库密码
MAIL_TO=kdo@qq.com
# 定义需要备份的目录
NGINX_CONF_DIR=/usr/local/nginx/conf # nginx配置目录
WEB_DIR=/home/wwwroot # 网站数据存放目录
# 定义备份存放目录
DROPBOX_DIR=/dahu/$(date +%Y-%m-%d) # Dropbox上的备份目录
LOCAL_BAK_DIR=/home/backup # 本地备份文件存放目录
# 定义备份文件名称
DBBakName=amh_$(date +%Y%m%d).tar.gz
NginxConfBakName=NginxConf_$(date +%Y%m%d).tar.gz
WebBakName=Web_$(date +%Y%m%d).tar.gz
# 定义旧数据名称
Old_DROPBOX_DIR=/muyuhu/$(date -d -3day +%Y-%m-%d)
OldDBBakName=DB_$(date -d -5day +%Y%m%d).tar.gz
OldNginxConfBakName=NginxConf_$(date -d -5day +%Y%m%d).tar.gz
OldWebBakName=Web_$(date -d -5day +%Y%m%d).tar.gz
cd $LOCAL_BAK_DIR
#使用命令导出SQL数据库,并且按数据库分个压缩
#for db in `mysql -u$MYSQL_USR -p$MYSQL_PWD -B -N -e 'SHOW DATABASES' | xargs`; do
# (mysqldump -u$MYSQL_USR -p$MYSQL_PWD ${db} | gzip -9 - > ${db}.sql.gz)
#done
#压缩数据库文件合并为一个压缩文件
#tar zcf $LOCAL_BAK_DIR/$DBBakName $LOCAL_BAK_DIR/*.sql.gz
#rm -rf $LOCAL_BAK_DIR/*.sql.gz
#压缩数据库文件合并为一个压缩文件
tar zcf $LOCAL_BAK_DIR/$DBBakName $LOCAL_BAK_DIR/*.tar.gz.amh
rm -rf $LOCAL_BAK_DIR/*.tar.gz.amh
#压缩Nginx配置数据
#cd $NGINX_CONF_DIR
#tar zcf $LOCAL_BAK_DIR/$NginxConfBakName ./*
#压缩网站数据
#cd $WEB_DIR
#tar zcf $LOCAL_BAK_DIR/$WebBakName ./*
cd /root/backup
chmod +x dropbox_uploader.sh
#开始上传
./dropbox_uploader.sh upload $LOCAL_BAK_DIR/$DBBakName $DROPBOX_DIR/$DBBakName
#./dropbox_uploader.sh upload $LOCAL_BAK_DIR/$NginxConfBakName $DROPBOX_DIR/$NginxConfBakName
#./dropbox_uploader.sh upload $LOCAL_BAK_DIR/$WebBakName $DROPBOX_DIR/$WebBakName
#删除旧数据
#rm -rf $LOCAL_BAK_DIR/$OldDBBakName $LOCAL_BAK_DIR/$OldNginxConfBakName $LOCAL_BAK_DIR/$OldWebBakName
rm -rf $LOCAL_BAK_DIR/$OldDBBakName
./dropbox_uploader.sh delete $Old_DROPBOX_DIR/
echo -e "Backup Done!"
echo "muyuhu backup ok" | mutt -s "dahu backup ok" $MAIL_TO
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment