定时任务-->crontab

定时任务

at

适合仅执行一次就结束的调度命令,需要启动一个后端的atd服务。

crontab-->是一个服务,服务名为crond

需要启动一个服务crond才行,crond服务通过crontab命令实现

常用命令

crontab -u 		# 设定某个用户的cron服务
crontab -l		# 显示crontab文件(显示已设置的定时任务)
crontab -e		# 编辑crontab文件(编辑定时任务)
crontab -r		# 删除crontab文件(删除定时任务)
crontab -i		# 删除crontab文件提醒用户(删除定时任务)

  • 目录:/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

用户的定时任务分6段,分别是:分,时,日,月,周,命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

*:表示任意时间都,实际上就是“每”的意思。可以代表00-23小时或者00-12每月或者00-59分
-:表示区间,是一个范围,00 17-19 * * * cmd,就是每天17,18,19点的整点执行命令
,:是分割时段,30 3,19,21 * * * cmd,就是每天凌晨3和晚上19,21点的半点时刻执行命令
/n:表示分割,可以看成除法,*/5 * * * * cmd,每隔五分钟执行一次

设置定时任务的几种方法

  • 直接编辑配置文件-->路径:/etc/crontab
    • 注意:需要增加用户名,在第二个字段
  • 使用crontab -e命令编辑-->为当前用户增加定时任务,不需要增加用户名
  • 直接编辑目标文件-->路径:/var/spool/cron/
    • 上一种方法编辑的就是该目录里的文件,文件以用户名命名

相关文件

  • /etc/cron.deny # 该文件中所列用户不允许使用crontab命令
  • /etc/cron.allow # 该文件中所列用户允许使用crontab
  • /var/spool/cron/ # 所有用户crontab文件存放的目录,以用户名命名
  • /var/log/cron # crond日志文件

注意事项

  • 修改配置文件后自动生效,不需要reload

anacron

无法周期性执行,只能以天为周期,但有个特点,在关机状态下未>执行的任务,下次开机时可以补上执行

posted @ 2023-07-07 11:11  醉生梦死_0423  阅读(25)  评论(0编辑  收藏  举报