Linux实操篇——定时任务调度

crond任务调度

Linux有一个叫crond后台程序,它可以定时调度我们设置的任务。

centos 定时任务执行脚本 linux 定时任务执行脚本_linux

使用crontab -e

通过crontab这个指令来进行定时任务的设置

centos 定时任务执行脚本 linux 定时任务执行脚本_定时任务_02


centos 定时任务执行脚本 linux 定时任务执行脚本_centos_03


执行方式:

命令行输入crontab -e

编写调度指令,保存退出即可自动执行。其他特殊符号:

centos 定时任务执行脚本 linux 定时任务执行脚本_linux_04


时间实例:

centos 定时任务执行脚本 linux 定时任务执行脚本_定时任务_05


我们讲定时调用的两种情况:

1.使用crontab -e,在里面编写命令,即可自动执行

2.使用shell脚本,然后在crontab -e定时执行脚本

使用shell脚本

1.编写shell脚本
vim my.sh
date >> /home/mycal

2.查看脚本权限

centos 定时任务执行脚本 linux 定时任务执行脚本_linux_06


发现,my.sh没有x权限,也就是没有执行权限,所以我们要修改权限3.修改shell脚本权限

centos 定时任务执行脚本 linux 定时任务执行脚本_centos_07


4.执行shell脚本

centos 定时任务执行脚本 linux 定时任务执行脚本_linux_08

但是这样是不行的,因为mycal的内容不会改变,每次执行一次shell,它会更新一次,所以我们要定时执行shell脚本,一定要注意权限,是谁有执行权限。

5.使用crontab -e调用shell脚本

centos 定时任务执行脚本 linux 定时任务执行脚本_centos 定时任务执行脚本_09


centos 定时任务执行脚本 linux 定时任务执行脚本_shell脚本_10

定时更新mysql数据库

步骤:
1.crontab -e
2.0 2 * * * musqldump -u root -p[key] testdb > /home/db.bak

crontab的相关指令

centos 定时任务执行脚本 linux 定时任务执行脚本_linux_11

at定时任务

crontab是重复性的定时任务,但有时候我希望在定时任务只执行一次,这时候就需要使用at

centos 定时任务执行脚本 linux 定时任务执行脚本_centos_12


ps -ef是显示当前所有正在运行的进程

使用 过滤指令 grep atd 查看名称为atd的进程

如果有叫atd的进程,就说明后台atd在运行原理图:

centos 定时任务执行脚本 linux 定时任务执行脚本_linux_13

at命令选项:

centos 定时任务执行脚本 linux 定时任务执行脚本_centos 定时任务执行脚本_14


at时间定义:

centos 定时任务执行脚本 linux 定时任务执行脚本_linux_15

at定时任务案例

注意,在at时间里如果输入错了,按ctrl+回退键删除

2天后的下午5点执行/bin/ls /home

centos 定时任务执行脚本 linux 定时任务执行脚本_centos_16

atq命令来查看系统中没有执行的工作任务

centos 定时任务执行脚本 linux 定时任务执行脚本_shell脚本_17

明天17点钟,输出时间到指定文件内 比如 /root/date100.log

centos 定时任务执行脚本 linux 定时任务执行脚本_linux_18

2分钟后,输出时间到指定文件内 比如:/root/date200.log

centos 定时任务执行脚本 linux 定时任务执行脚本_shell脚本_19


centos 定时任务执行脚本 linux 定时任务执行脚本_centos_20

删除已经设置的任务,atrm编号

centos 定时任务执行脚本 linux 定时任务执行脚本_shell脚本_21

也可以执行shell脚本

centos 定时任务执行脚本 linux 定时任务执行脚本_centos_22