如何在linux中定期执行命令

  介绍

如何在linux中定期执行命令?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

<强> 1。cron, crontab以及anacron的关系

cron是大多数linux发行版都自带的守护进程(守护进程),用来重复运行某些被设定好了确定的运行时间的任务,这些任务可以是每个月运行,每周运行,每天运行,甚至是每一分钟运行。用cron执行的任务适合于24小时运行的机器,cron执行的任务会在设定好的时刻执行,当机器处于关机状态下并错过了任务执行的时间,cron任务就无法预期执行了。

crontab (cron表的简称)既可以指cron用来定期执行特定任务所需要的列表文件,又可以指用来创建,删除,查看当前用户(或者指定用户)的crontab文件的命令。

anacron不是守护进程,可以看做是cron守护进程的某种补充程序,anacron是独立的linux程序,被cron守护进程或者其他开机脚本启动运行,可以每天,每周,每个月周期性地执行一项任务(最小单位为天)。适合于可能经常会关机的机器,当机器重新开机anacron程序启动之后,anacron会检查anacron任务是否在合适的周期执行了,如果未执行则在anacron设定好的延迟时间之后只执行一次任务,而不管任务错过了几次周期。举个例子,比如你设定了一个每周备份文件的任务,但是你的电脑因为你外出度假而处于关机状态四周,当你回到家中开机后,anacron会在延迟一定时间之后只备份一次文件。由于发行版的不同,cron守护进程如何运行anacron会有所不同。

<强> 2. crontab命令,crontab文件语法

系统默认crontab文件为/etc/crontab,以及/etc/cron.d目录下的文件,有些程序会把自己的crontab文件放在/etc/cron.d目录下。要修改/etc/crontab以及/etc/cron.d目录下的文件需要根权限.cron守护进程会检查/etc/crontab以及/etc/cron。d/目录下的文件,根据这些文件中的cron任务所设置的执行时间决定是否执行任务,如果当前时间与cron任务所设置的执行时间相同,则执行任务。

每个用户自己的crontab文件都会被放在/var/spool/cron目录下,默认为空,可以使用crontab命令创建.cron守护进程会检查/var/spool/cron目录下的文件,根据这些文件中的cron任务所设置的执行时间决定是否执行任务,如果当前时间与cron任务所设置的执行时间相同,则执行任务。

当cron的配置文件发生改变时,不需要重置cron守护进程.cron守护进程会检查配置文件的变化。

创建自己的crontab之前,首先要设置环境变量编辑,cron进程根据它来确定使用哪个编辑器编辑crontab文件。在家里目录下的. bashrc或者。配置文件里加入一行

#你也可以使用自己喜爱的其他终端编辑器=vim;编辑,export 编辑

<强> 2.1。crontab命令参数及使用示例

用法:,crontab  (-u 用户),文件   ,crontab  [, -u  user ],[],小姐,{,-e  |, -l  |, -r }   ,-e  (edit 用户# 39;s  crontab)   ,-l  (list 用户# 39;s  crontab)   ,-r  (delete 用户# 39;s  crontab)   ,小姐;(prompt  before  deleting 用户# 39;s  crontab)

创建并编辑当前用户的crontab

<代码> crontab - e

列出当前用户的crontab

<代码> crontab - l

删除用户李纳斯的crontab

<代码> crontab - u李纳斯- i - r

<强> 2.2。crontab文件语法详解及示例

当用crontab - e编辑当前用户的crontab文件时,首先写入以下内容。

#, crontab  - e   SHELL=/bin/bash   MAILTO=root@example.com   路径=/bin:/sbin/usr/bin:/usr/sbin:/usr/地方/bin:/usr/地方/sbin      #,For  details 阅读man  4, crontab中      #,Example  of  job 定义:   #,。- - - - - - - - - - - - - - - - -,minute (0,安康;59)   # |,。- - - - - - - - - - - -安康;hour (0,安康,23)   #,| |,。- - - - - - - - - - -,day  of  month (1,安康;31)   #,|,|,|,。- - - - - -安康;month (1,安康;12),1月,2月,3月,趁机apr …   #,|,|,|,|,。- - - - -,day  of  week (0,安康;6),(7)周日=0,或是,一、太阳,星期一,星期二,星期三,星期四,星期五,坐   #,|,|,|,| |   #,*,*,*,*,*,user-name  command 用be 执行

该文件的前三行代码设置了默认环境.cron守护进程并不提供任何环境.SHELL变量设置当cron任务(命令以及脚本)运行时的壳,MAILTO变量设置cron任务执行结果发送的邮箱,路径设置去哪些目录下寻找cron任务的命令。注释部分则解释一条cron任务的构成,一条cron任务就是一行,要设置多少条cron任务则写多少行。一条cron任务由七个部分组成,从左到右依次为:

如何在linux中定期执行命令