热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何在gentooLinux系统上处理crontab事件?-HowtohandlecrontabeventsonagentooLinuxsystem?

IhaveagentooLinuxsystemandastrangebehaviorofcrontab.Asrootuser,andasIunderstandth

I have a gentoo Linux system and a strange behavior of crontab. As root user, and as I understand the documentation, the command

我有一个gentoo Linux系统和crontab的奇怪行为。作为root用户,以及我理解的文档,命令

crontab -l

lists all crontab jobs defined for the current user, root (There are no cronjobs defined for any other used). All listed cronjobs are also defined in the file /etc/cronjob.

列出为当前用户root定义的所有crontab作业(没有为任何其他使用的cronjobs定义)。所有列出的cronjobs也在文件/ etc / cronjob中定义。

However, there are two more crontab files located in /etc/cron.d, which define a cronjob each:

但是,在/etc/cron.d中还有两个crontab文件,它们分别定义了一个cronjob:

/etc/cron.d/testcron1
/etc/cron.d/testcron2

Although not listed with crontab -l, the cronjob defined in the file /etc/cron.d/testcron1 is executed. The other cronjob defined in the file /etc/cron.d/testcron2 is NOT executed.

虽然未与crontab -l一起列出,但执行文件/etc/cron.d/testcron1中定义的cronjob。文件/etc/cron.d/testcron2中定义的另一个cronjob未执行。

This all does not make sense, so I have two questions:

这一切都没有意义,所以我有两个问题:

  • Why does crontab -l list not all cronjobs?
  • 为什么crontab -l列出不是所有的cronjobs?
  • Must the cronjobs in /etc/cron.d be registered somewhere, or is a restart of a daemon/service required? Why is the one started, and not the other one (the executable works fine, though).
  • /etc/cron.d中的cronjobs必须在某处注册,还是需要重新启动守护进程/服务?为什么一个启动,而不是另一个(可执行文件工作正常)。

1 个解决方案

#1


1  

The command crontab is used to maintain/manage crontab files for individual users. These files are usually located in /var/spool/cron/crontabs.

命令crontab用于维护/管理单个用户的crontab文件。这些文件通常位于/ var / spool / cron / crontabs中。

If crontab -l dose not show any cron jobs then this user currently has no individual cron jobs. This dose not mean that there are no cron jobs in /etc/cron* taht will run with the privileges of this user. crontab will not operate on the files in /etc/cron*. It is a tool for only managing individual (per user) cron jobs held in /var/spool/cron/crontabs.

如果crontab -l不显示任何cron作业,则此用户当前没有单独的cron作业。这并不意味着/ etc / cron * taht中没有cron作业将以该用户的权限运行。 crontab不会对/ etc / cron *中的文件进行操作。它是一个仅用于管理/ var / spool / cron / crontabs中保存的个人(每个用户)cron作业的工具。

Now lets see how the different cron jobs get executed. Form the manpage of the cron daemon we can read:

现在让我们看看如何执行不同的cron作业。形成cron守护进程的联机帮助页,我们可以阅读:

cron searches its spool area (/var/spool/cron/crontabs) for crontab files (which are named after accounts in /etc/passwd); ...

cron在其假脱机区域(/ var / spool / cron / crontabs)中搜索crontab文件(以/ etc / passwd中的帐户命名); ...

cron also reads /etc/crontab, which is in a slightly different format (see crontab(5)).

cron还读取/ etc / crontab,它的格式略有不同(参见crontab(5))。

as well as:

以及:

Additionally, in Debian, cron reads the files in the /etc/cron.d directory. cron treats the files in /etc/cron.d as in the same way as the /etc/crontab file...

另外,在Debian中,cron读取/etc/cron.d目录中的文件。 cron以与/ etc / crontab文件相同的方式处理/etc/cron.d中的文件...

(I think this applies to gentoo as well...)

(我认为这也适用于gentoo ...)

About restarting we can read:

关于重启我们可以阅读:

cron then wakes up every minute, examining all stored crontabs, checking each command to see if it should be run in the current minute...

然后cron每分钟醒来,检查所有存储的crontabs,检查每个命令,看它是否应该在当前分钟运行...

Additionally, cron checks each minute to see if its spool directory's modtime (or the modtime on the /etc/crontab file) has changed, and if it has, cron will then examine the modtime on all crontabs files and reload those which have changed. Thus cron need not be restarted whenever a crontab file is modified. Note that the crontab(1) command updates the modtime of the spool directory whenever it changes a crontab.

另外,cron检查每一分钟以查看其假脱机目录的modtime(或/ etc / crontab文件中的modtime)是否已更改,如果有,cron将检查所有crontabs文件的modtime并重新加载已更改的那些。因此,无论何时修改crontab文件,都不需要重新启动cron。请注意,只要crontab(1)命令更改了crontab,它就会更新假脱机目录的modtime。

So the crontab command is for user specific corn jobs while the files in /etc/cron* are more for system cron jobs.

因此,crontab命令用于特定于用户的玉米作业,而/ etc / cron *中的文件则用于系统cron作业。

No manual triggering is needed to activate a new cron job.

激活新的cron作业不需要手动触发。


推荐阅读
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • ServiceStack与Swagger的无缝集成指南
    本文详细介绍了如何在ServiceStack项目中集成Swagger,以实现API文档的自动生成和在线测试。通过本指南,您将了解从配置到部署的完整流程,并掌握如何优化API接口的开发和维护。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 本文详细介绍了Java中org.w3c.dom.Text类的splitText()方法,通过多个代码示例展示了其实际应用。该方法用于将文本节点在指定位置拆分为两个节点,并保持在文档树中。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 在维护公司项目时,发现按下手机的某个物理按键后会激活相应的服务,并在屏幕上模拟点击特定坐标点。本文详细介绍了如何使用ADB Shell Input命令来模拟各种输入事件,包括滑动、按键和点击等。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • dotnet 通过 Elmish.WPF 使用 F# 编写 WPF 应用
    本文来安利大家一个有趣而且强大的库,通过F#和C#混合编程编写WPF应用,可以在WPF中使用到F#强大的数据处理能力在GitHub上完全开源Elmis ... [详细]
author-avatar
mce
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有