使用linux系统的定时任务进行指定执行shell脚本进行MySQL的数据库备份。
    代码示例(文件名back_db.sh):

    1. #备份目录
    2. BACKUP_ROOT=/mnt/server/data_back
    3. BACKUP_FILEDIR=$BACKUP_ROOT/files
    4. #似乎未起作用
    5. BACKUP_LOGDIR=$BACKUP_ROOT/logs
    6. #当前日期
    7. DATE=$(date +%Y%m%d)
    8. ######备份######
    9. #查询所有数据库
    10. #-uroot -p123456表示使用root账号执行命令,且root账号的密码为:123456
    11. DATABASES=$(mysql -uroot -p123456 -e "show databases" | grep -Ev "Database|sys|information_schema|performance_schema|mysql")
    12. #DATABASES=$(mysql -uroot -p123456 -e "SELECT SCHEMA_NAME FROM information_schema.SCHEMATA WHERE SCHEMA_NAME NOT IN ('sys','mysql','information_schema','performance_schema');" | grep -v "SCHEMA_NAME","ken.io")
    13. echo $DATABASES
    14. #3天前的日期
    15. #echo $(date -d "-3 day" "+%Y%m%d")
    16. #循环数据库进行备份
    17. for db in $DATABASES
    18. do
    19. echo
    20. echo ----------$BACKUP_FILEDIR/${db}_$DATE.sql.gz BEGIN----------
    21. mysqldump -uroot -p123456 --default-character-set=utf8 -q --lock-all-tables --flush-logs -E -R --triggers -B ${db} | gzip > $BACKUP_FILEDIR/${db}_$DATE.sql.gz
    22. #并删除3天前的数据
    23. delete_file=${db}_$(date -d "-3 day" "+%Y%m%d").sql.gz
    24. #echo $delete_file
    25. rm $BACKUP_FILEDIR/$delete_file
    26. echo ----------$BACKUP_FILEDIR/${db}_$DATE.sql.gz COMPLETE----------
    27. echo
    28. done
    29. echo "done"

    备份并删除三天前的记录,如果shell脚本执行失败,则使用notepad++——>编辑——>文档格式转换——>转为unix。
    1、sh文件脚本放置没有特别要求。
    2、执行命令,在该文件目录下执行:sh back_db.sh
    3、添加到Linux系统的定时任务中去

    1. #执行命令进入vi编辑
    2. crontab -e
    3. #内容添加(测试每天12点52分执行)
    4. 52 12 * * * /mnt/server/backup_full.sh
    5. #按:wq!保存退出
    6. #执行查看定时任务列表
    7. crontab -l
    8. #如果系统没有定时任务则进行安装
    9. yum install -y crontab