centos7配置crontab定时执行备份mysql脚本问题

1.配置定时执行脚本

vim /etc/crontab
可以看到:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

35 9 * * * root /home/gjdb.sh   #每天9点35分执行

即:
分钟(0-59) 小时(0-23) 日(1-31) 月(11-12) 星期(0-6,0表示周日) 用户名 要执行的命令

*/30 * * * * root /usr/local/mycommand.sh (每天,每30分钟执行一次 mycommand命令)

* 3 * * * root /usr/local/mycommand.sh (每天凌晨三点,执行命令脚本,PS:这里由于第一个的分钟没有设置,那么就会每天凌晨3点的每分钟都执行一次命令)

0 3 * * * root /usr/local/mycommand.sh (这样就是每天凌晨三点整执行一次命令脚本)

*/10 11-13 * * * root /usr/local/mycommand.sh (每天11点到13点之间,每10分钟执行一次命令脚本,这一种用法也很常用)

10-30 * * * * root /usr/local/mycommand.sh (每小时的10-30分钟,每分钟执行一次命令脚本,共执行20次)

10,30 * * * * root /usr/local/mycommand.sh (每小时的10,30分钟,分别执行一次命令脚本,共执行2次)

加载任务,使之生效:
crontab /etc/crontab
或者
systemctl restart crond.service (重启服务)
systemctl status crond.service (查看服务状态)
systemctl start crond.service (开启服务)
systemctl enable crond.service (设置开机自启动服务)

查看任务:

crontab -l (列全部用户的定时任务列表)
crontab -u 用户名 -l (列出用户的定时任务列表)

特别注意:crond的任务计划, 有并不会调用用户设置的环境变量,它有自己的环境变量,当你用到一些命令时,比如mysqldump等需要环境变量的命令,手工执行脚本时是正常的,但用crond执行的时候就会不行,这时你要么写完整的绝对路径,要么将环境变量添加到 /etc/crontab 中。

最简单的解决方案:
在脚本的开头中添加 source /etc/profile

2.配置定时删除文件

建一个脚本文件,内容如下,赋予可执行权限

find /home/backup/ -mtime +2 -name "*.sql" -exec rm -rf {} \;

说明:
“/home/backup/” :要删除的文件所在的目录。
“+2” :文件保留天数,即几天前的文件将被删除。
“*.sql”:删除文件后缀为.sql的文件。 其他为固定字符。

配置定时任务同上。

3.还原数据库

(1)首先解压备份的数据库文件xxx.sql.gz

gzip -dc xxx.sql.gz > xxx.sql

(2)由于库是不能被还原的,因此还原之前要先创建相应的数据库xxx,如果不创建直接还原,会报错。

drop database xxx; 删除数据库xxx
create database xxx; 创建数据库xxx

(3)还原数据库 语法格式:

mysql -uusername -ppassword dbname < filename.sql
username,表示登录的用户名
password,表示用户的密码
dbname,表示要还原的数据库名称

你可能感兴趣的:(centos7配置crontab定时执行备份mysql脚本问题)