1. #!/bin/bash
    2. #完成数据库的定时备份。
    3. #备份的路径
    4. BACKUP=/data/backup/db
    5. #当前的时间作为文件名
    6. DATETIME=$(date +%Y_%m_%d_%H%M%S)
    7. #可以输出变量调试
    8. #echo ${DATETIME}
    9. echo "=======开始备份========"
    10. echo "=======备份的路径是 $BACKUP/$DATETIME.tar.gz"
    11. #主机
    12. HOST=localhost
    13. #用户名
    14. DB_USER=root
    15. #密码
    16. DB_PWD=root
    17. #备份数据库名
    18. DATABASE=atguiguDB
    19. #创建备份的路径
    20. #如果备份的路径文件夹存在,就使用,否则就创建
    21. [ ! -d "$BACKUP/$DATETIME" ] && mkdir -p "$BACKUP/$DATETIME"
    22. #执行mysql的备份数据库的指令,后面的 | 表示 把前面备份的数据库文件传递给gzip命令进行压缩
    23. mysqldump -u${DB_USER} -p${DB_PWD} --host=$HOST $DATABASE | gzip > $BACKUP/$DATETIME/$DATETIME.sql.gz
    24. #打包备份文件
    25. cd $BACKUP
    26. tar -zcvf $DATETIME.tar.gz $DATETIME
    27. #删除临时目录
    28. rm -rf $BACKUP/$DATETIME
    29. #删除10天前的备份文件
    30. find $BACKUP -mtime +10 -name "*.tar.gz" -exec rm -rf {} \;
    31. echo "=====备份文件成功==========="