继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

linux 之计划任务 at crontab

哔哔one
关注TA
已关注
手记 503
粉丝 94
获赞 543

1. at 命令

1.1 at 用法

at 时间描述

at 6pm Monday
at now + 5 minutes
at 12:04:47 10/22/2017

at>任务描述
at> ctrl+d

atq 查询当前用户正在等待的计划任务
atrm 删除一个正在等待的计划任务
格式:atrm 任务号

at计划任务依赖于atd:

[root@my ~]# systemctl status atdatd.service - Job spooling tools
   Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled)
   Active: active (running) since Sat 2017-10-21 07:51:33 CST; 22h ago
 Main PID: 958 (atd)   CGroup: /system.slice/atd.service
           ?..958 /usr/sbin/atd -f

Oct 21 07:51:33 my.912616.com systemd[1]: Started Job spooling tools.
[root@my ~]#

删除at计划任务

[root@my ~]# atq #查询当前等待执行的计划任务1   Sun Oct 22 12:14:00 2017 a root
[root@my ~]# atrm 1[root@my ~]#

1.2 限制

编辑/etc/at.deny,限制用户使用at做计划任务:

at.deny.jpg

[root@my ~]# su - mycms5Last login: Sun Oct 22 05:52:38 CST 2017 from 192.168.137.3 on pts/0[mycms5@rhel7 ~]$ at 12:25You do not have permission to use at.
[mycms5@rhel7 ~]$

2. crontab

linux系统里,可以使用crontab制定管理计划任务时间表。

  • crontab -e 编辑当前用户的计划任务时间表

  • crontab -l  列出当前用户的计划任务时间表

  • crontab -r  删除当前用户的计划任务时间表

  • crontab -u username < -e | -l | -r > 以某一个用户的身份管理

  • man 5 crontab 查看crontab帮助信息

时间表配置文件的格式:

[root@my ~]# cat /etc/crontabSHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=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

时间数值的特殊表示方法:

  • *  表示该范围内的任意时间

  • - 表示间隔的多个不连续时间点

  • -  表示一个连续的时间范围

  • /  指定间隔的时间频率

示例:

  • 0   17   *   *   1-5             周一到周五每天17:00

  • 30  8    *   *    1,3,5         每周一、三、五的8点30分

  • 0 8-18/2 * * *     8点到18点之间每隔2小时

  • 0   *   */3  *    *                每隔3天

[root@rhel7 ~]# crontab -l20 13 * * sun    touch filename25 13 * * *      links www.chachabei.com/p/youjia_update
[root@rhel7 ~]# crontab -l  -u root20 13 * * sun    touch filename25 13 * * *      links www.chachabei.com/p/youjia_update0 7 * * *      links www.yto.cc
  • crontab -r  # 删除当前用户所有的计划任务

  • crontab -e  # 进入编辑状态,添加计划任务,或者使用vim的-d删除具体某条任务

2.2 限制crontab

vi /etc/cron.deny,把mycms5用户名写进去

cron.deny.jpg

然后切换到mycms5,发现mycms5已经没法使用crontab了:

[root@rhel7 ~]# su - mycms5Last login: Sun Oct 22 06:14:45 CST 2017 on pts/1[mycms5@rhel7 ~]$ crontab -e
You (mycms5) are not allowed to use this program (crontab)
See crontab(1) for more information
[mycms5@rhel7 ~]$



作者:IM余安
链接:https://www.jianshu.com/p/7255fa17ec70

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP