创建编辑脚本文件

  1. mkdir -p /data/scripts
  2. cd /data/scripts
  3. vim mysql_backup.sh

文件内容

  1. #!/bin/bash
  2. # -------------------------------------------------------------------------------
  3. # FileName: mysql_backup.sh
  4. # Describe: Used for database backup
  5. # Revision: 1.0
  6. # Date: 2020/08/11
  7. # Author: lcy
  8. # 设置mysql的登录用户名和密码(根据实际情况填写)
  9. mysql_user="root"
  10. mysql_password="123456"
  11. mysql_host="localhost"
  12. mysql_port="3306"
  13. backup_dir=/data/mysql_backup
  14. dt=$(date '+%Y%m%d_%H%M')
  15. echo "Backup Begin Date:" $(date +"%Y-%m-%d %H:%M:%S")
  16. # 备份全部数据库
  17. mysqldump -h$mysql_host -u$mysql_user -p$mysql_password -R -E --all-databases --single-transaction > $backup_dir/mysql_backup_$dt.sql
  18. find $backup_dir -mtime +7 -type f -name '*.sql' -exec rm -rf {} \;
  19. echo "Backup Succeed Date:" $(date +"%Y-%m-%d %H:%M:%S")

赋予执行权限

  1. chmod +x mysql_backup.sh

执行脚本

  1. ./mysql_backup.sh

image.png
结果:
image.png

加入任务计划

查看任务计划

  1. crontab -l

新增任务计划

  1. crontab -e
  1. 00 00 * * * /bin/bash /data/scripts/mysql_backup.sh

每天凌晨0点进行备份

有待改进的点

①、进行备份之前,需要判断一下备份目录是否已经创建,若没有创建,则需要在脚本中编写代码,创建备份目录
②、如果备份文件比较大,可以对备份文件进行压缩
③、没有记录日志
④、没有进行异地备份,即没有将备份文件FTP上传到别的地方进行保存,