Linux定时任务

如何实现定时任务?

image

linux内置的cron进程能帮我们实现定时任务的需求。

cron介绍

我们经常使用的是crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件。

  • /var/spool/cron/目录下存放的是每个用户以用户名命名的任务文件。
  • /etc/crontab 这个文件负责调度各种管理和维护任务。
  • /etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
  • 我们还可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目录中,让它每小时/天/星期、月执行一次。

crontab使用

我们使用crontab -e进入当前用户的任务工作表编辑,是常见的vim界面,每一行是一个任务。编辑的任务工作表文件保存在/var/spool/cron目录下,并以登录用户名命名。

crontab常用命令

crontab [参数]

  • -e 编辑任务工作表
  • -l 查看定时任务列表
  • -r 删除定时任务

定时任务格式

定时任务格式为 时间 + 动作 。时间格式在/etc/crontab文件内介绍了一般形式,一共五个位置并且空格隔开,分别是分、时、日、月、周,除了数字可以填操作符;

  • * 所有范围数字
  • / 每过多少次
  • - 从开始数字到结尾数字
  • 并且
# 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

实例

  1. 每1分钟执行一次myCommand
    * * * * * myCommand
    
  2. 每个小时的第3分钟和第15分钟执行一次myCommand
    3,15 * * * * myCommand
    
  3. 每天上午8点到11点的每个小时的第3分钟和第15分钟执行一次myCommand
    3,15 8-11 * * * myCommand
    
  4. 每隔两天的上午8点到11点的每个小时的第3分钟和第15分钟执行一次myCommand
    3,15 8-11 */2  *  * myCommand
    
  5. 每周一的上午8点到11点的每个小时的第3分钟和第15分钟执行一次myCommand
    3,15 8-11 * * 1 myCommand
    
posted @ 2021-12-17 17:31  它叫鸮  阅读(92)  评论(0)    收藏  举报