linux设置定时任务备份mysql数据库

1.用root登录服务器,先看服务器能否远程连接数据库,不能的话执行 yum install mariadb 语句,安装完毕之后就能远程连接mysql数据库

2.编写定时任务执行文件

#!/bin/bash
backupdir=/data/mcoop/backup
user=root
port=3307
password=nkNXJFhEoMjH0Ero
host=172.27.0.8
file=increment

echo "backup start" `date` >> $backupdir/backup_history.log

#case `date +%u` in
# 1)
echo "logic full backup" >> $backupdir/backup_history.log
mysqldump -u$user -p$password -h$host -P$port -e --single-transaction --max_allowed_packet=503316480 --net_buffer_length=16384 --opt --default-character-set=utf8 --hex-blob mcoop --skip-triggers | gzip >$backupdir/mcoop_`date +%Y%m%d%H%M%S`.zip
# ;;
# *) echo "error" >> $backupdir/backup_history.log
# ;;

注解:
(1、执行 /usr/bin/mysqldump;
(2、--opt是quick,add-drop-table,add-locks,extended-insert,lock-tables几个参数的合称,一般都要使用,具体意思自行搜索;
(3、-u数据库用户名 -p数据库用户密码 -h数据库地址 -P端口号 数据库名 > 导出的文件路径;
(4、`date +%Y%m%d%H%M%S`是shell中生成当前时间,包括时分秒,格式如2019-11-05,所以成功导出时生成的文件名为 mcoop_20191105030001.zip;
(5、下载生成的 sql文件 ,用文本编辑器打开检查,本地导入测试数据库,看是否有问题;

3.查看定时任务

crontab -l

4,vi root 编辑定时任务 编辑完成后,点ESC,然后:wq

00 03 *   * * /bin/sh /data/mcoop/backup/backup.sh   每天凌晨3点执行一次上述的命令文件,备份数据库

时间格式

分钟 小时 日期 月份 周 命令

数字范围 0-59 0-23 1-31 1-12 0-7 echo "hello" >> abc.log

特殊字符的含义

*(星号) 代表任何时刻都接受。

,(逗号) 代表分隔时段的意思。

-(减号) 代表一段时间范围内。

/n(斜线) 那个 n 代表数字,每隔 n 单位间隔。

eg1: 每年的五月一日 10:5 执行一次

5 10 1 5 * command(要是执行网址(curl "http://网址"),或者执行其它的直接写路径)

eg2: 每天的三点,六点各执行一次

00 3,6 * * * command

eg3: 每天的8:20, 9:20,10:20,11:20各执行一次

20 8-11 * * * command

eg4: 每五分钟执行一次

*/5 * * * * command

eg5: 每周一十点执行一次

00 10 * * 1 command

5、重新启动

#service crond restart

猜你喜欢

转载自www.cnblogs.com/xx1219/p/12176008.html