linux有两种计划执行方式:
一种是计划某一时刻执行一次
一种是定时周期执行
执行计划at:
就是计划在某一个时刻执行一次命令
demo:
-
[root@localhost tmp]# at 09:35 #指定执行时间点 系统时间录入date查看
-
at> cp /etc/passwd ./ #执行任务,把/etc/passwd 拷贝当前目录
-
at> <EOT> #按ctrl+d结束录入
-
job 3 at 2017-09-10 09:35
-
-
执行结果 ,看到了passwd文件
-
[root@localhost tmp]# ll
-
total 48
-
drwx------. 2 root root 4096 Sep 10 09:23 keyring-enJgj6
-
drwx------. 2 root root 4096 Sep 10 08:33 keyring-tS6oXp
-
drwx------. 2 gdm gdm 4096 Sep 10 09:23 orbit-gdm
-
drwx------. 2 root root 4096 Sep 10 09:23 orbit-root
-
-rw-r--r--. 1 root root 1576 Sep 10 09:35 passwd
-
-
这种方式只能执行一次,基本不会使用,没什么业务场景
这种方式只能执行一次,基本不会使用,没什么业务场景
执行计划crontab:
生产中的任务,一般是定时调度的,比如T+1的等,而且crontab也是最开始的企业中用的最多的定时调度方式,现在的企业中调度一般用HUE写coordinator,nifi或者superset等数据对接软件,也有这种定时执行机制。
要是用crontab我们首先要开启crond服务。
临时开启:
service crond status
service crond start
service crond stop
查看下我们系统各crond服务状态,我们的crond是开启的。
[root@localhost tmp]# service crond status
crond (pid 1814) is running...
永久开启crond服务,使用chkconfig 和永久开启防火墙类似
chkconfig crond start
chkconfig crond stop
我们可以先看看crontab的使用说明crontab –help
[root@localhost tmp]# crontab --help
crontab: invalid option -- '-'
crontab: usage error: unrecognized option
usage: crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
(default operation is replace, per 1003.2)
-e (edit user's crontab) #编辑计划任务
-l (list user's crontab) #列出计划任务
-r (delete user's crontab) #删除计划任务
-i (prompt before deleting user's crontab)
-s (selinux context)
我们输入crontab -e 会需要我们编辑计划内容
那么内容怎么填呢????
其实内容就是一行,但是有一个语法,下面是6列,前面5列用来表示计划执行的时间,第6列是执行的任务。
————————————————
版权声明:本文为CSDN博主「zhangshk_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhangshk_/article/details/78797263
阅读(349) | 评论(0) | 转发(0) |