- 时间:2022-09-06 04:23 编辑: 来源: 阅读:280
- 扫一扫,手机访问
摘要:Linux crontab计划任务的详细分解
{源码交易平台}
Crontab命令是cron table的缩写,是cron的配置文件,完成预定的任务。 cron执行时,需要读取三个地方的配置文件:一是/etc/crontab,二是/etc/cron.d目录下的所有文件,三是每个客户的配置文件。 本文对所有的cron配置文件进行了详细的分解,并阐述了它们的区别和应用。 1./etc/crontab全局调度任务当我们要添加全局调度任务时,一种方法是直接修改/etc/crontab,它负责调度各种管理和维护任务。 根据解释,/etc/crontab是一个全系统范围的crontab,完成全局配置。 让我们首先来看一个命令,run-parts命令,它位于/bin/run-parts中。它的内容是一个非常简单的shell脚本,即遍历目标文件夹并在一级目录中执行可执行权限的文件。 Crontab脚本是一个在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly四个目录下执行可执行权限的文件,可以分为每小时、每天、每周、每月调度任务。 之前的测试命令呢?Crontab适用于7x24小时服务器,anacron适用于非7x24小时服务器。以天为单位或者启动后立即采取anacron动作,检测停机时本应执行而未执行的crontab任务,运行一次该任务后,anacron会自动停止。 Test -x /usr/sbin/anacron的意思是“检查文件/usr/sbin/anacron是否存在,是否具有“可执行”权限” 如果test -x /usr/sbin/anacron为真,则不会执行以下命令;如果为假,将执行以下命令。 2./var/spool/cron/crontab包括root在内的客户的crontab任务都存储在客户调度任务目录中,每个任务都以创建者的名字命名。 我用crontab -e进入当前客户pi的工作表编辑,编辑器选择nano。 作者有两个预定任务:每天凌晨4: 00进行数据库备份,每周一0: 00重启Raspberry Pi(重启并输出日志到日志文件)。 修改crontab后,会显示crontab:安装新crontab。 /var/spool/crontab/crontab是该文件中由特定客户命名的定时任务。进入光盘时,显示权限不足。crontab的所有者是root,权限是drwx-wx-t,其中t代表sticky bit,这样一个目录既可以允许任何客户写文档,又可以防止客户删除这个目录中其他人的文档。 在pi下需要Root才能进入这个目录。 Sudo -s可以将root权限加载到crontabs目录中。 当然,修改客户crontab,只要你想要crontab -e e。 3./etc/cron . d/global remaining tasks当你想添加全局调度任务时,一种方法是直接修改/etc/crontab,但是里面只配置了四个任务:每小时调度任务、每天调度任务、每周调度任务、每月调度任务。一般不建议这样。创建/etc/cron.d目录就是为了解决这个问题。 作者目录里有php脚本,php脚本每09,39分钟执行一次。 4./etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly遍历目标以执行调度任务。这四个目录定义了每小时计划任务、每天计划任务、每周计划任务和每月计划任务。我们选择/etc/cron.daily目录下的apache2脚本。没有时间定义!!!在什么时间点,如何实施? 请看/etc/crontab全局计划任务脚本的内容,已经定义好了。将脚本放在这个目录中很方便。 那么问题来了。我修改调度任务的执行时间,所以目录里的所有脚本都要修改,对吧? 是的,有两种处理方法。如果在这个时间点有许多任务,您可以重新建立目录,编写脚本并在其他时间点执行它们。 如果只有一个任务,/etc/cron.d/ global其他任务可能更方便。 5.定时任务格式时间格式m h dom mon dow命令分钟、小时、天、月、周,命令 看英文定义。剧本开头看定义很重要!要定义时间,您可以为分钟(m)、小时(h)、一个月中的某一天(dom)、月(mon)和星期几(dow)提供具体值,或者在这些字段中使用' * '(表示'任何')