当前位置: 首页 > Linux

Linux定时任务Crontab介绍

时间:2023-04-06 23:18:35 Linux

在Linux中使用crontab-e创建定时任务。定时任务写入var/spool/cron目录下对应的用户文件。例如对于用户zj,定时任务会写入var/spool/cron/zj。不推荐使用vi直接编辑这个文件,因为直接编辑无法检查语法错误。Crontab命令的语法如下:crontab[-u用户名][-l|-e|-r]参数:-u:只有root用户可以执行此任务,编辑用户的crontab-e:编辑crontab的工作内容-l:检查crontab的工作内容-r:删除所有crontab的工作内容crontab命令格式如下如下:代表含义分时日月星期命令范围0~590~231~311~120~7要执行的命令crontab命令特殊字符含义:特殊字符的含义*随时接受,例如:*cmd表示每分钟运行一次cmd,表示有多个时间段,例如:2,4cmd表示在第2、4分钟运行一次cmd-表示时间间隔,例如:2-4cmd表示第2、3分钟,第4分钟,每个cmd运行一次/n表示每n个时间单位,例如:/5*表示每5分钟运行一次cmdcrontab运行定时任务的最小单位是分钟。不推荐使用crontab实现秒级定时任务。有一个技巧可以让crontab运行二级定时任务:*****cmd*****sleep20cmd*****sleep40cmd上面的例子是说cmd每20秒运行一次,这不推荐使用这种方式crontab的缺点:需要执行二级任务时非常不方便。当需要执行的定时任务有上百个时,Crontab的管理会特别不方便。没有统一的后台查看各个定时任务的状态。针对Crontab的种种不足,可以考虑在Java下使用Quartz或者在Python下使用APScheduler。APScheduler实现了以下功能:九华通过RAM、MySQL、MongoDB文件存储定时任务。支持秒级定时任务支持基于日期、固定时间间隔、Crontab类型的定时任务。