Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # 备份脚本 - 百度云版
- #
- # 数据库备份无效请设置 mysqldump 为绝对路径
- #
- # 7z md5sum baiduyun mysqldump
- #
- # name backup.sh
- # verson 2.2
- PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
- # 需要保存的服务器文件夹,可以用空格隔开多个文件夹
- BACKUP_WEB_SRC="/data/wwwroot"
- # 远程保存地址
- REMOTE_DIR="backup/$(date +"%Y%m%d")"
- # 服务器上临时的备份保存文件夹
- LOCAL_BAK_DIR="/data/backup/upload"
- # 日志
- LOG_DIR="/data/backup/backup.log"
- # MySQL 相应配置, 修改 mysqldump 配置文件,可忽略此项配置
- MYSQL_SERVER="localhost"
- MYSQL_USER="root"
- MYSQL_PASS="password"
- # 压缩包密码
- ZIP_PASSWORD="password"
- # =========================================
- # md5 文件名称
- MD5BakName=MD5SUM_$(date +"%Y%m%d").md5
- # 数据备份压缩后的文件名称
- DBBakName=Data_$(date +"%Y%m%d").7z
- WebBakName=Web_$(date +"%Y%m%d").7z
- # 已过期备份数据的名称(3天前的数据会被删除)
- OldDBBakName=Data_$(date -d -3day +"%Y%m%d").7z
- OldWebBakName=Web_$(date -d -3day +"%Y%m%d").7z
- # 导出 MySQL 数据库备份(所有数据库),并压缩为指定文件名,mysqldump 无效请设置为绝对路径
- echo $(date +"[%Y-%m-%d %H:%M:%S]")" Database backup" >> $LOG_DIR
- /usr/local/mysql/bin/mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS --events --all-databases > $LOCAL_BAK_DIR/Database.sql
- echo $(date +"[%Y-%m-%d %H:%M:%S]")" Database zip" >> $LOG_DIR
- 7za a -p$ZIP_PASSWORD $LOCAL_BAK_DIR/$DBBakName $LOCAL_BAK_DIR/Database.sql && rm -f $LOCAL_BAK_DIR/Database.sql
- # 压缩需要保存的文件夹为指定文件名
- echo $(date +"[%Y-%m-%d %H:%M:%S]")" Web backup" >> $LOG_DIR
- 7za a -p$ZIP_PASSWORD $LOCAL_BAK_DIR/$WebBakName $BACKUP_WEB_SRC
- # 计算 md5
- echo $(date +"[%Y-%m-%d %H:%M:%S]")" Data verify" >> $LOG_DIR
- md5sum $LOCAL_BAK_DIR/$DBBakName $LOCAL_BAK_DIR/$WebBakName > $LOCAL_BAK_DIR/$MD5BakName
- # 上传压缩后的备份文件到指定的远程目录
- echo $(date +"[%Y-%m-%d %H:%M:%S]")" Upload start" >> $LOG_DIR
- for file in $LOCAL_BAK_DIR/*$(date +"%Y%m%d")*
- do
- bypy upload $file $REMOTE_DIR/
- done
- echo $(date +"[%Y-%m-%d %H:%M:%S]")" Upload done" >> $LOG_DIR
- # 上传完成后删除服务器上已经过期的备份数据,节省空间
- 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
- echo $(date +"[%Y-%m-%d %H:%M:%S]")" delete "$OldWebBakName >> $LOG_DIR
- rm -f $LOCAL_BAK_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