Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # 备份脚本 - Dropbox版
- #
- # 数据库备份无效请设置 mysqldump 为绝对路径
- #
- # tar dropbox mysqldump
- #
- # name backup_linode.sh
- # verson 2.0
- PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
- # 需要保存的服务器文件夹,可以用空格隔开多个文件夹
- BACKUP_SRC="/data/wwwroot"
- # 指定 dropbox_uploader.sh 脚本的保存目录
- SCRIPT_DIR="/root/shell"
- # 上传到 DropBox 的文件夹
- DROPBOX_DIR="/linode/backup"
- # 服务器上临时的备份保存文件夹
- LOCAL_BAK_DIR="/data/backup/upload"
- # 日志
- LOG_DIR="/data/backup/backup.log"
- # MySQL 相应配置, 修改 mysqldump 配置文件,可忽略此项配置
- MYSQL_SERVER="localhost"
- MYSQL_USER="root"
- MYSQL_PASS="password"
- # 数据备份压缩后的文件名称
- DBBakName=Data_$(date +"%Y%m%d").tgz
- WebBakName=Web_$(date +"%Y%m%d").tgz
- # 已过期备份数据的名称(3天前的数据会被删除)
- OldDBBakName=Data_$(date -d -3day +"%Y%m%d").tgz
- OldWebBakName=Web_$(date -d -3day +"%Y%m%d").tgz
- # 导出 MySQL 数据库备份(所有数据库),并压缩为指定文件名,mysqldump 无效请设置为绝对路径
- echo $(date +"[%Y-%m-%d %H:%M:%S]")" Database backup" >> $LOG_DIR
- /usr/local/mysql/bin/mysqldump --events --all-databases > $LOCAL_BAK_DIR/Database.sql
- echo $(date +"[%Y-%m-%d %H:%M:%S]")" Database zip" >> $LOG_DIR
- tar czvPf $LOCAL_BAK_DIR/$DBBakName $LOCAL_BAK_DIR/Database.sql && rm -rf $LOCAL_BAK_DIR/Database.sql
- # 压缩需要保存的文件夹为指定文件名
- echo $(date +"[%Y-%m-%d %H:%M:%S]")" Web backup" >> $LOG_DIR
- tar czvPf $LOCAL_BAK_DIR/$WebBakName $BACKUP_SRC
- # 上传压缩后的备份文件到指定的 DropBox 目录
- echo $(date +"[%Y-%m-%d %H:%M:%S]")" Upload start" >> $LOG_DIR
- $SCRIPT_DIR/dropbox_uploader.sh upload $LOCAL_BAK_DIR/$DBBakName $DROPBOX_DIR/$DBBakName
- $SCRIPT_DIR/dropbox_uploader.sh upload $LOCAL_BAK_DIR/$WebBakName $DROPBOX_DIR/$WebBakName
- echo $(date +"[%Y-%m-%d %H:%M:%S]")" Upload done" >> $LOG_DIR
- # 上传完成后删除服务器上及DropBox中已经过期的备份数据,节省空间
- echo $(date +"[%Y-%m-%d %H:%M:%S]")" delete old backup start" >> $LOG_DIR
- echo $(date +"[%Y-%m-%d %H:%M:%S]")" delete "$OldDBBakName >> $LOG_DIR
- rm -f $LOCAL_BAK_DIR/$OldDBBakName
- $SCRIPT_DIR/dropbox_uploader.sh delete $DROPBOX_DIR/$OldDBBakName
- echo $(date +"[%Y-%m-%d %H:%M:%S]")" delete "$OldWebBakName >> $LOG_DIR
- rm -f $LOCAL_BAK_DIR/$OldWebBakName
- $SCRIPT_DIR/dropbox_uploader.sh delete $DROPBOX_DIR/$OldWebBakName
- echo $(date +"[%Y-%m-%d %H:%M:%S]")" delete old backup done" >> $LOG_DIR
- echo $(date +"[%Y-%m-%d %H:%M:%S]")" Todady backup done" >> $LOG_DIR
- echo "=======" >> $LOG_DIR
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement