一、编辑定时任务
为了直观的体现定时任务,这里模拟一个简单的场景,就是每次往一个txt文件里面添加数据
1-1、准备一个txt文件
touch /xdx/xdx.txt
1-2、准备一个追加信息的命令
echo "hello word" >> /xdx/xdx.txt
1-3、写到定时任务里面去
vim /var/spool/cron/root
把下面的这个命令写进去,前面是定时任务执行的频率,现在配置的是每分钟执行一次。
*/1 * * * * echo "hello word" >> /xdx/xdx.txt
过几分钟后,我们就可以发现xdx.txt里面有不少数据了
1-4、相关常用命令
# 查看当前的定时任务
crontab -l
# 编辑定时任务
crontab -e
1-5、定时规则
5个*的具体意义如下:
含义 | 范围 | |
---|---|---|
第一个 * | 一个小时的第几分钟 | 0 - 59 |
第二个 * | 一天中的第几个小时 | 0 - 23 |
第三个 * | 一个月中的第几天 | 1 - 31 |
第四个 * | 一年中的第几个月 | 1 - 12 |
第五个 * | 一个星期中的星期几 | 0 - 7 (0和7都表示星期天) |
特殊符号的含义
符号 | 含义 |
---|---|
* | 表示任何时间 |
, | 表示不连续的时间,比如 0 8,10 * * * 表示每天8点0分,10点0分都执行一次 |
- | 代表连续的时间范围,比如 0 5 * * 1-6 表示周一到周六每天5点分执行一次 |
*/n | 代表隔多久执行一次,比如 */1 * * * * 表示每分钟执行一次 |
实例:
# 每分钟执行一次
*/1 * * * * command
# 每第三分钟和第十五分钟执行一次
3,15 * * * * command
# 每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * command
# 每月1、10、22日的4 : 45 执行
45 4 1,10,22 * * command
# 晚上11点到早上7点之间 执行
23-7/1 * * * command
二、备份MySql数据
前天被安排备份数据这个任务,我自己之前都是直接navicat右键导出备份数据。但是现在要备份公司的数据,那肯定不能这么的草率。经给朋友的指点,找到了MySql的一个命令。 mysqldump
2-1、数据库备份命令
执行下面的命令前提是,你安装了MySql,但是不需要进入MySql里面去运行。
mysqldump -h127.0.0.1 -P3306 -uroot -pxdx --databases blog > /xdx/backup/b2.sql
上面的命令意思 把127.0.0.1服务器上面端口号为3306,用户名为root,密码为xdx,数据库名称为blog的数据库,备份到当前服务器上面的/xdx/backup路径下,命名为b2.sql。
ps:上面的命令可以异步备份,也就是你把ip换成线上的就好了,这样就可以在A服务器上去备份B服务器上面的MySql数据了。
2-2、mysqldump 命令的参数
命令 | 缩写 | 解释 |
---|---|---|
–host | -h | 服务器IP地址 |
–port | -P | MySql端口号 |
–user | -u | MySql用户名 |
–pasword | -p | MySql密码 |
–databases | 指定要备份的数据库 | |
–all-databases | 备份MySql所有的数据库 | |
–compact | 压缩模式,产生更少的输出 | |
–comments | 添加注释信息 | |
–complete-insert | 输出完成的插入语句 | |
–lock-tables | 备份前,锁定所有数据库表 | |
–no-create-db/–no-create-info | 禁止生成创建数据库语句 | |
–force | 当出现错误时仍然继续备份操作 | |
–default-character-set | 指定默认字符集 | |
–add-locks | 备份数据库表时锁定数据库表 |
2-3、数据库还原
如果你可以使用navicat等类似的工具,那我们只需要右键执行sql文件即可了,下面教一种只能用命令操作的情况。
1、我们先要创建一个名字一模一样的数据库
2、登录MySql执行下面的命令
source /xdx/backup/b2.sql
三、定时备份数据库
我们只需要把下面的命名,插入到定时任务里面去就好了
3-1、打开定时任务
crontab -e
3-2、插入定时任务
这里每分钟执行一次,你可以修改自己的频率
*/1 * * * * mysqldump -h127.0.0.1 -P3306 -uroot -pxdx --databases blog > /xdx/backup/b2.sql