`
hanahmilyNan
  • 浏览: 33802 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

cron配置

阅读更多

用途

提交、编辑、列出或除去 cron 作业。  

语法

crontab  [  -e  [UserName ] |  -l  [UserName ] |  -r  [UserName ] |  -v  [UserName ] | File  ]

描述

这个 crontab  命令提交、编辑、列出或除去 cron 作业。一个 cron 作业是一个命令,其运行是由 cron  守护程序在规则的调度间隔执行的。要提交一个 cron 作业,指定 crontab  命令用 -e  标志。crontab  命令调用一个编辑会话,允许创建一个 crontab  文件。在这个文件中,为每个 cron 创建条目。每个条目必须是一种 cron  守护程序可接受的格式。要得到创建条目的信息,参阅  crontab 文件条目格式

当创建完条目和退出文件后,crontab  命令将它复制到 /var/spool/cron/crontabs  目录,并把它放到一个文件中,此文件的名称是当前的用户名。如果以用户名命名的文件已存在于 crontabs  目录中,crontab  命令会覆盖它。

同样的,可以通过指定文件 参数创建 crontab  文件。如果此文件已经存在,格式必须是 cron  守护程序所需要的。如果文件不存在,crontab  命令就调用编辑器。如果 EDITOR  环境变量存在,此命令就调用它指定的编辑器。否则,crontab  命令调用 vi  编辑器。

要列出 crontab  文件的内容,就指定 crontab  命令并采用 -l  标志。要除去存在的文件,采用 -r  标志。
可选的 UserName  参数可被 crontab  文件的所有者或者 root 用户来使用,为指定的用户编辑、列出、除去或验证 cron 作业的状态。如果 UserName  是无效的,就会产生错误消息并退出程序。
如果可选的 UserName  参数没有被指定,这个 crontab  标志对于 root 用户和当前用户可用。

安全性

只有 root 用户和 crontab  文件的所有者可以在 -e-l-r  和 -v  标志后面使用 UserName  以编辑、列出、除去或验证指定用户的 crontab  文件。

cron 守护程序

这个 cron  守护程序运行的命令和 crontab  文件条目是相对应的。如果不重新定向 cron 作业的输出为标准输出或标准错误,cron  守护程序就会通过电子邮件告知您任何命令输出或错误。如果在 crontab  文件中指定了不正确的 cron 作业,这个 cron  守护程序不运行这个作业。

cron  守护程序只在 cron  守护程序被初始化时检查 crontab  文件。当用 crontab  命令改变 crontab  文件时,指示变化的消息被发送到 cron  守护程序。这消除了在规则的调度间隔检查新的或改变的文件的开销。

控制使用 crontab 命令

/var/adm/cron/cron.allow  和 /var/adm/cron/cron.deny  文件控制哪一个用户可以使用 crontab  命令。root 用户可以创建、编辑或删除这些文件。这些文件中的条目是用户登录名,每行一个名称。如果登录标识和多个的登录名称相关联,这个 crontab  命令采用第一个在 /etc/passwd  文件中的登录名称,而不管当前实际使用哪一个登录名称。而且,要允许用户启动 cron  作业,应该使用 chuser  命令将 /etc/security/user  文件中的守护程序属性设置为 TRUE。

以下关于 cron.allow  文件的一个示例:
 

root
nick
dee
sarah

如果 cron.allow  文件存在,只有在文件中出现其登录名称的用户可以使用 crontab  命令。root 用户的登录名必须出现在 cron.allow  文件中,如果这个文件存在的话。系统管理员可以明确的停止一个用户,通过使用 crontab  命令,同时在 cron.deny  文件中列出用户的登录名。如果只有 cron.deny  文件存在,任一名称没有出现在这个文件中的用户可以使用 crontab  命令。

如果以下一个条件成立,用户将不能使用 crontab  命令:
  • cron.allow  文件和 cron.deny  文件不存在(只允许 root 用户)。 
  • cron.allow  文件存在,但用户的登录名并不列在其中。 
  • cron.deny  文件存在,并且用户的登录名列在其中。

如果 cron.allow  和 cron.deny  文件都不存在,只有被 root 用户授权的人可以用 crontab  命令提交一个作业。

crontab 文件条目格式

一个 crontab  文件包含每个 cron 作业的条目。条目由换行字符分开。每个 crontab  文件条目包括 6 个字段,它们被空格或制表符以以下格式分开:
 
 
minute  hour  day_of_month  month  weekday  command

这些字段接收以下值:

minute 0 到 59
hour 0 到 23
day_of_month 1 到 31
month 1 到 12
weekday 0 到 6 (星期日到星期六)
command shell 命令
必须为每个字段指定一个值。除了 command  字段,这些字段可以包含以下内容:
  • 指定范围内的一个数。要在 5 月运行一个命令,在 month  字段指定 5 。 
  • 两个被破折号分开的数目表明了包含的范围。要从星期二到星期五运行 cron  作业,把 2-5 放到 weekday  字段中。 
  • 由逗号隔开的数字列表。要在一月第一天和最后一天的运行命令,在 day_of_month  字段中可指定 1,31。 
  • * (星号),意味着所有的允许值。要每个小时运行一个作业,在小时字段指定一个星号。
 
注:  任一字符前如有一个反斜杠符号(包括 %)会引起字符被字面上的处理。天的规范是由两个字段(月的天和星期的天)组成的。如果指定两者都为元素的一个列表,这两个字段均被包含在其中。例如,如下条目: 
 
0 0 1,15 * 1 command
将在每个月的第一天和第十五天运行 command,还有每个星期一。要仅在一个字段中指定天,另一字段应包含 

指定命令

这个 cron  守护程序运行命名于所选日期和时间的第六个字段中的字段。如果包含一个 % (百分号)在第六字段,cron  守护程序像命令调用一样处理所有的任务,并使所有的后续任务在标准输入上可用,除非转义百分号 (\%)。空行和第一个非空字符是编号标记(#)将被忽略。如果命令含有反斜杠 (\) 的参数,反斜杠前应加另一个反斜杠。
 

注:
shell 只运行该命令字段的第一行。所有其他的行作为标准的输入对于命令可用。

cron  守护程序从 HOME  目录中启动一个子 shell。如果调度一个命令运行,这时您尚未登录,并且希望在 .profile  文件中的命令运行,这个命令必须明确的读取您的 .profile  文件。

cron  守护程序为每个 shell 提供了一个缺省的环境,定义了 HOME,  LOGNAME,  SHELL  (=/usr/bin/sh ) 和 PATH  (=/usr/bin )。

标志

 

-e  UserName 编辑用户的 crontab  文件的副本,或者,如果一个有效的 UserName  的 crontab  文件不存在则创建一个空的文件进行编辑。当编辑完成后,文件被到 crontab  目录作为用户的 crontab  文件。
-l  UserName 列出用户的 crontab  文件。
-r  UserName 从 crontab  目录除去用户的 crontab  文件。
-v  UserName 列出用户 cron 作业的状态。

安全性

审计事件:如果审计子系统已经被正确的配置和启用,crontab  守护程序就会当每次执行命令时产生以下审计记录(或事件):

事件信息
CRON_JobRemove 列出哪一个用户除去了 cron  作业和除去的时间。
CRON_JobAdd 列出哪一个用户添加了 cron  作业和添加的时间。
有关如何正确选择和分组审计事件以及如何配置审计事件数据收集的更详细信息,请参阅 《安全性 》 中的  Setting up Auditing

退出状态

该命令返回以下退出值:

0 成功完成。
>0 发生错误。

示例

  1. 要将名为 mycronjobs  的文件复制到 /var/spool/cron/crontabs  目录中,输入以下内容: 
    crontab mycronjobs
    
    文件将复制为: 
    /var/spool/cron/crontabs/<username
    >
    
    其中 <username > 是您当前的用户名。 
  2. 要每小时将时间写入控制台(以小时的形式),请输入: 
    0 * * * * echo The hour is `date` 。>/dev/console
    
  3. 要在每个星期一、星期三和星期五的 6:30 a.m. 运行 calendar  命令,请输入: 
    30 6 * * 1,3,5 /usr/bin/calendar
    
  4. 要在一年中每天 6:30 运行 calendar  命令,请输入: 
    30 6 * * * /usr/bin/calendar
    
  5. 要在八月每天午夜运行名为 maintenance  的脚本,请输入: 
    0 0 * 8 * /u/harry/bin/maintenance
    
  6. 为命令的标准输入定义文本,请输入: 
    0 16 * 12 5 /usr/sbin/wall%HAPPY HOLIDAY!%Remember to 
    turn in your time card.
    
    在 %  (百分号)之后定义 wall  命令的标准输入的文本: 
    HAPPY HOLIDAY!
     
    Remember to turn in your time card.
    

文件

 

/var/adm/cron/FIFO 指定的管道,当用 crontab  或 at  命令提交新作业时,它将消息发送到 cron  守护程序。
/var/spool/cron/crontabs 指定 crontab 缓冲池区域。
/var/adm/cron/cron.allow 指定用户列表,这些用户被允许访问 crontab  命令。
/var/adm/cron/cron.deny 指定用户列表,这些用户不被允许访问 crontab  命令。

相关信息

auditpr  命令、 sh  命令、 wall  命令。

cron  守护程序。

安全性 》 中的  Auditing Overview  解释了更多有关审计和审计事件的信息。
 
注意:crontab -u user -e 编辑结束后请用 :wq! 强制保存退出。
每20分钟执行一次的批处理格式:

*/3 * * * *  或 0,20,40 * * * *

修改:cron.allow 文件给用户授crontab操作权限

分享到:
评论

相关推荐

    Linux cron 配置样例

    Linux cron 是一个强大的...通过合理的 `cron` 配置,你可以自动化执行日常维护、数据备份、系统监控等各种任务,极大地提高了管理系统的效率和可靠性。理解并熟练运用 `cron` 是每个 Linux 系统管理员必备的技能之一。

    嵌入式平台cron和logrotate配置

    3. **配置文件格式**:cron配置文件的基本格式由六个字段组成,前五个字段定义了任务执行的时间间隔,最后一个字段则是要执行的命令。例如: ``` * * * * * command ``` 这条命令表示每分钟执行一次`command`。 ...

    Spring @Scheduled定时任务动态修改cron参数

    `@Scheduled`注解是Spring Framework中用于创建定时任务的重要工具,它允许开发者在不重启应用的情况下,实现定时任务的动态配置,特别是修改cron表达式来调整执行周期。 在Spring中,定时任务主要通过`@Scheduled`...

    cron服务配置祥解.docx

    此文件是系统级别的cron配置,包含了系统层面的定时任务。它的格式与用户级的crontab略有不同,通常包含环境变量定义(如`PATH`)和对`run-parts`命令的使用,用于执行指定目录下的所有脚本。例如: ``` PATH=/...

    Cron前端生成工具.zip

    通过这个工具,用户可以创建满足特定需求的Cron表达式,然后将其复制到目标系统的Cron配置文件中,或者在支持Cron的应用程序中使用。在部署和维护定时任务时,这样的工具无疑能带来极大的便利。

    thinkphp 5.1 定时任务,Crontab 计划任务-think-cron.zip

    4. 安装Crontab:在服务器上,使用`crontab -e`命令编辑Cron配置文件,然后添加一条新的任务规则,指定何时运行你的ThinkPHP定时任务。格式如下: ``` * * * * * ...

    cron-0.9.1.tar.zip_cron

    配置cron涉及编辑crontab文件(通常位于`/etc/crontab`或`~/.crontab`),添加任务条目,并根据需要调整系统级的cron配置。 **总结** "cron-0.9.1.tar.zip_cron"是一个提供跨平台支持的cron版本,其包含的源代码...

    linux-使用Cronjob备份数据库静态文件和配置至AWSS3

    打开Cron配置文件: ```bash crontab -e ``` 在编辑器中添加以下行,根据需要调整备份频率(例如,每晚午夜执行一次): ```bash 0 0 * * * /path/to/backup_script.sh ``` 保存并退出。至此,Cronjob已设置好,...

    Pycron.exe下载 X86版:Windows上可以用的Cron服务的安装包

    早前笔者在网上发现Pycron这款小程序,可以作为Windows的服务运行,并且支持自定义Cron配置文件路径,还带有使用的Cron配置编辑器。啥也不说了就是实用! 鉴于原来的程序网上找不到了,因此备份上来分享一下。 ...

    gocron - 定时任务系统的配置与运行详解

    gocron 定时任务系统的配置与运行详解 以下是关于 gocron 定时任务系统的配置与运行详解的知识点: 一、创建 gocron 用户 * 创建 gocron 用户:使用 useradd 命令创建 gocron 用户,并授予 sudo 权限。 * 授权 ...

    利用CRON进程实现Oracle数据库定时备份.pdf

    3. 编辑CRON配置文件(通常为`crontab -e`),添加一条记录,指明何时执行这个脚本。例如,如果希望每天凌晨1点进行备份,可以写成`0 1 * * * /path/to/backup_oracle.sh`。 4. 保存并退出CRON编辑器,此时系统会...

    linux任务计划cron文档使用

    例如,在更改了Cron配置后,可以通过重启服务来应用新的设置。 ##### 2. 与系统启动同步 为了让Cron服务随系统启动而自动启动,可以在`/etc/rc.d/rc.local`文件中添加以下行: ``` /sbin/service crond start ``` ...

    操作系统安全:var log cron分析.docx

    REPLACE动作表明用户更新了其cron配置文件,这将触发cron重新加载任务列表;而RELOAD动作则反映了cron守护进程已经注意到文件更新并重新加载了配置。 分析/var/log/cron日志可以帮助管理员监控系统的定期任务执行...

    操作系统安全:etc cron.docx

    操作系统安全:Linux 系统中的 cron 服务是一个关键的自动化任务调度工具,它允许系统管理...建议定期检查 cron 配置,限制非特权用户创建 cron 任务,并确保所有任务的执行都符合预期,以维护操作系统的安全和稳定性。

    Spring Job 配置详解

    在 Spring 中 Quartz 的 Cron 配置是使用 Cron 表达式来指定 Trigger 的触发时机。Cron 表达式是一个由六至七个字段组成由空格分隔的字符串,其中六个字段是必须的,而一个是可选的。 以下是 Cron 表达式的字段解释...

    pg_cron-v1.4.1.tar.gz

    - 需要确保PostgreSQL服务拥有执行cron作业的权限,可能需要修改系统级别的cron配置。 2. **任务定义**: - 使用SQL语句创建定时任务,例如:`CREATE JOB my_job AT '2023-01-01 12:00:00' DO SELECT * FROM my_...

    在Unix和Linux操作系统中Cron的用法

    系统级别的Cron配置通常在`/etc/crontab`文件中进行。这个文件包含了系统定时任务,如每小时执行`/etc/cron.hourly`目录下的所有脚本,每天执行`/etc/cron.daily`目录下的脚本,每周执行`/etc/cron.weekly`目录下的...

    树莓派+cron定时执行任务

    - **/etc/crontab**:这是系统级别的Cron配置文件,用于管理整个系统的定时任务,通常需要管理员权限才能修改。 #### 3. Cron任务格式详解 Cron任务的一条指令通常由六部分组成: 1. **分钟** (0-59) 2. **小时**...

    Cron前端生成工具

    3. **测试功能**:用户可以输入特定日期和时间,查看任务是否会在预期的时间点触发,以验证配置的正确性。 4. **导入导出**:工具支持将Cron表达式导入和导出,便于在不同的项目或系统间迁移和共享。 5. **代码生成*...

    Spring boot开启定时任务的三种方式(源代码+sql文件)

    2.4 数据源基本配置:application.properties 2.5 mapper也就是dao: 2.6 task类:MyTask.java 2.7 使用上之前学的SpringBoot整合logback 2.7.1 创建logback-spring.xml 2.7.2 修改task类:MyTask.java 2.8 运行结果...

Global site tag (gtag.js) - Google Analytics