linux计划任务

crond和crontab的概念

crond是后台守护进程的名称(d代表daemon),用来实际执行脚本,它在系统中一直是运行状态。

systemctl status crond 可以查看运行状态

crontab是一个工具,用来列出cron中当前运行的作业、向cron中添加作业、编辑作业、删除作业。它并不是一直在后台运行的,是一个短暂的命令行工具,执行完就结束了。

crond和crontab组合起来提供cron服务。

服务命令:systemctl start/status/restart/stop crond

 

配置文件

  /etc/crontab

  

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=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-59 ,-*/
0-23 ,-*/
日(月) 1-31 ,-*?/LW
1-12 或者 jan-dec ,-*/
日(周) 0-7(0和7都是星期天)
或者 sun-sat
,-*?/L#
留空,1970-2099 ,-*/

几个特殊字符的含义:

 

字符含义
* 全部。意思是在该时间的任意点都应当执行
? 不指定,任意。仅用于 日(月)和日(周)。0 0 5 * ? 代表每个月的第5天零点,不论星期几。
0 0 ? * 1 代表每周一,不论是当月的哪天。
, 多个值的分隔符,例如1,5,10
- 代表连续值,例如1-20
/ 步长。例如 5/15,代表从5开始,以15为步长。因此,当5/15位于分钟的位置时,表示小时内的第5、20、35和50分钟。
L 最后一天。可以是每月最后一天或者每周最后一天。如果用在 天(周)字段,并且前面加数字,则表示最后一个周N。例如5L,表示最后一个周五(5表示周五,L表示最后)。
W 工作日,指周一到周五的任意一天
# 表示第几个的意思,例如 6#3,表示当月第3个星期六(6表示周六,3表示第3个)

 

编辑定时任务

   增加:

  方案1:vi /etc/crontab

  * * * * *  用户 命令

  在末行新增行添加:

  eg:* * * * *  root "ls /home"      #每分钟执行ls

  20 * * * * root "ls /home"    #每小时的20分的时候执行ls

  */20 * * * * root "ls /home"    #每20分钟执行ls

  0/20 * * * * root "ls /home"    #每小时的0分开始每20分钟执行一次

  方案2:crontab -e 为当前用户创建计划任务

  查看:  crontab -l

  删除:  crontab -r

  日志路径:/var/log/cron*

  自己编写的作业输出日志可以:

  * * * * *  root "ls /home" >>/var/log/ls.log 2>&1     #将标准输出 写进日志

posted @ 2020-04-14 21:18  zk01  阅读(110)  评论(0编辑  收藏  举报