linux基本操作---linux执行计划(at、crontab)

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列是执行的任务。

*****execute command
execute command

如果时间是一段时间,用(-)表示一段时间,
如果时间是多干个不相关的时间点,用(,)隔开,
如果时间为任意时间,则用(*)表示
用(/)表示间隔时间

demo:

每周五凌晨两点整

*****execute command
execute command
02**5execute command

每月10号15号的凌晨两点整

*****execute command
execute command
0210,15**execute command

每5分钟执行一次

*****execute command
execute command
*/5****execute command

每天凌晨一点到三点

*****execute command
execute command
*1-3***execute command

每小时的10分的时候执行一次

*****execute command
execute command
10****execute command

每月1号执行一次

*****execute command
execute command
**1**execute command
[root@localhost ~]# crontab -e
*/1 * * * * date >> /root/data.txt
查看结果:
[root@localhost ~]# crontab -l
*/1 * * * * date >> /root/data.txt
重启crond服务:
[root@localhost tmp]# service crond restart
Stopping crond:                                          [ OK  ]
Starting crond:                                          [ OK  ]

到/root目录下查看执行结果:
[root@localhost ~]# cat data.txt 
Sun Sep 10 10:06:01 CST 2017
Sun Sep 10 10:07:01 CST 2017
Sun Sep 10 10:09:01 CST 2017
Sun Sep 10 10:10:01 CST 2017


注意: executecommand 的输出结果路径必须为绝对路径,否则不生效!!!
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值