Advertisement
Guest User

Untitled

a guest
Aug 16th, 2016
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.65 KB | None | 0 0
  1. #!/bin/bash
  2. # 备份脚本 - 百度云版
  3. #
  4. # 数据库备份无效请设置 mysqldump 为绝对路径
  5. #
  6. # 7z md5sum baiduyun mysqldump
  7. #
  8. # name backup.sh
  9. # verson 2.2
  10.  
  11. PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
  12.  
  13. # 需要保存的服务器文件夹,可以用空格隔开多个文件夹
  14. BACKUP_WEB_SRC="/data/wwwroot"
  15. # 远程保存地址
  16. REMOTE_DIR="backup/$(date +"%Y%m%d")"
  17. # 服务器上临时的备份保存文件夹
  18. LOCAL_BAK_DIR="/data/backup/upload"
  19. # 日志
  20. LOG_DIR="/data/backup/backup.log"
  21. # MySQL 相应配置, 修改 mysqldump 配置文件,可忽略此项配置
  22. MYSQL_SERVER="localhost"
  23. MYSQL_USER="root"
  24. MYSQL_PASS="password"
  25. # 压缩包密码
  26. ZIP_PASSWORD="password"
  27. # =========================================
  28. # md5 文件名称
  29. MD5BakName=MD5SUM_$(date +"%Y%m%d").md5
  30. # 数据备份压缩后的文件名称
  31. DBBakName=Data_$(date +"%Y%m%d").7z
  32. WebBakName=Web_$(date +"%Y%m%d").7z
  33. # 已过期备份数据的名称(3天前的数据会被删除)
  34. OldDBBakName=Data_$(date -d -3day +"%Y%m%d").7z
  35. OldWebBakName=Web_$(date -d -3day +"%Y%m%d").7z
  36. # 导出 MySQL 数据库备份(所有数据库),并压缩为指定文件名,mysqldump 无效请设置为绝对路径
  37. echo $(date +"[%Y-%m-%d %H:%M:%S]")" Database backup" >> $LOG_DIR
  38. /usr/local/mysql/bin/mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS --events --all-databases > $LOCAL_BAK_DIR/Database.sql
  39. echo $(date +"[%Y-%m-%d %H:%M:%S]")" Database zip" >> $LOG_DIR
  40. 7za a -p$ZIP_PASSWORD $LOCAL_BAK_DIR/$DBBakName $LOCAL_BAK_DIR/Database.sql && rm -f $LOCAL_BAK_DIR/Database.sql
  41. # 压缩需要保存的文件夹为指定文件名
  42. echo $(date +"[%Y-%m-%d %H:%M:%S]")" Web backup" >> $LOG_DIR
  43. 7za a -p$ZIP_PASSWORD $LOCAL_BAK_DIR/$WebBakName $BACKUP_WEB_SRC
  44. # 计算 md5
  45. echo $(date +"[%Y-%m-%d %H:%M:%S]")" Data verify" >> $LOG_DIR
  46. md5sum $LOCAL_BAK_DIR/$DBBakName $LOCAL_BAK_DIR/$WebBakName > $LOCAL_BAK_DIR/$MD5BakName
  47. # 上传压缩后的备份文件到指定的远程目录
  48. echo $(date +"[%Y-%m-%d %H:%M:%S]")" Upload start" >> $LOG_DIR
  49. for file in $LOCAL_BAK_DIR/*$(date +"%Y%m%d")*
  50. do
  51. bypy upload $file $REMOTE_DIR/
  52. done
  53. echo $(date +"[%Y-%m-%d %H:%M:%S]")" Upload done" >> $LOG_DIR
  54. # 上传完成后删除服务器上已经过期的备份数据,节省空间
  55. echo $(date +"[%Y-%m-%d %H:%M:%S]")" delete old backup start" >> $LOG_DIR
  56. echo $(date +"[%Y-%m-%d %H:%M:%S]")" delete "$OldDBBakName >> $LOG_DIR
  57. rm -f $LOCAL_BAK_DIR/$OldDBBakName
  58. echo $(date +"[%Y-%m-%d %H:%M:%S]")" delete "$OldWebBakName >> $LOG_DIR
  59. rm -f $LOCAL_BAK_DIR/$OldWebBakName
  60. echo $(date +"[%Y-%m-%d %H:%M:%S]")" delete old backup done" >> $LOG_DIR
  61. echo $(date +"[%Y-%m-%d %H:%M:%S]")" Todady backup done" >> $LOG_DIR
  62. echo "=======" >> $LOG_DIR
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement