在每月的最后一天安排 Cron 作业

2023-11-20

Cron 作业是系统管理中必不可少的自动化脚本,并且在类 Unix 操作系统中普遍存在。它们允许系统管理员和开发人员安排任务(作业)在特定时间运行。这对于数据库维护、系统更新和数据备份等任务非常有用。本文将深入探讨如何专门为该月的最后一天安排 cron 作业,这一操作乍一看似乎很简单,但可能会令人惊讶地细致入微。

了解 Cron

在我们深入研究调度 cron 作业之前,了解什么是 cron 及其运行方式至关重要。 Cron 是类 Unix 操作系统中基于时间的作业调度程序。用户可以安排作业(命令或脚本)在特定时间或特定日期运行。

cron 作业是您希望安排的单个任务,而 cron 表 (crontab) 是您定义 cron 作业的配置文件。 crontab 文件的每一行都遵循特定的语法来定义 cron 作业的计划和命令。

定时任务语法

crontab 文件中 cron 作业的典型语法如下:

1
2
3
4
5
6
7
8
*     *     *     *     *  待执行命令
-     -     -     -     -
|     |     |     |     |
|     |     |     |     +----- day of the week (0 - 6) (Sunday=0)
|     |     |     +------- month (1 - 12)
|     |     +--------- day of the month (1 - 31)
|     +------------ hour (0 - 23)
+------------- min (0 - 59)

* 符号代表所有可能的值。例如,如果“小时”字段中包含 *,则该命令将每小时执行一次。

将 Cron 作业安排在本月的最后一天

在每月的最后一天安排 cron 作业的棘手部分是月份有不同的天数。并非所有月份都有 31 天,二月可能有 28 或 29 天,具体取决于是否是闰年。

以下是定义将在每月最后一天晚上 11:30 运行的 cron 作业的方法:

1
30 23 28-31 * * [ “$(日期 +\%m -d 明天)” != “$(日期+\%m)” ] && your-command

让我们分解一下:

  • `30 23 28-31 * *`告诉 cron 在任何一个月的 28 日、29 日、30 日和 31 日晚上 11:30 运行该作业。
  • 接下来的命令是一个小脚本。它检查明天的日期是否是月份(`日期 +\%m -d 明天`) 不等于 (`!=`) 到当前月份 (`日期 +\%m`)。如果它们不相等,则当天是该月的最后一天,命令 (`你的命令`)将执行。

结论

Cron 作业非常灵活,允许您自动执行各种任务。将 cron 作业安排在每月的最后一天是一种常见的用例,可以帮助完成生成月度报告或执行月末备份等任务。

虽然调度 cron 作业一开始可能看起来令人畏惧,但一旦您了解了 crontab 语法和调度命令背后的逻辑,它就变成了一项更容易完成的任务。与系统管理领域的任何事情一样,始终确保在将脚本部署到生产环境之前在受控环境中测试脚本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在每月的最后一天安排 Cron 作业 的相关文章

  • 如何在 Laravel 5.6 中将 Cron 条目添加到 WAMP localhost

    我将在我的应用程序中的 laravel 5 6 中创建任务计划程序 我正在使用 Windows 7 操作系统 我的本地主机是 WAMP 在 laravel 文档中 将 Cron 条目添加到您的服务器中 cd path to your pro
  • cron 的替代品? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 有谁知道 cron 有一个好的替代品吗 我想要一些可以在不同时区运行的东西 您可以考虑Quartz http www opensymphony
  • 使用 CRON 作业执行 PHP 脚本 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想每天午夜运行一个 PHP 脚本
  • 任何无需 GUI/X 会话即可使用 GreaseMonkey 脚本运行 Firefox 的方法

    我需要为第三方网站构建一个小型 监控 抓取工具 这是一个外部网站 其中包含有关我们访问者的统计信息 不幸的是 这个网站很难通过正常的 wget 机制 因为它使用了大量复杂的 JS 其中一部分是由 GWT 生成的 所以我的解决方法是创建一个
  • crontab 作业的 STDOUT 和 STDERR 输出在哪里

    有谁知道 CentOS 中正常 crontab 作业输出的 STDOUT 和 STDERR 在哪里 我检查了 var log cron文件 但它只记录了 cron 作业执行的时间和命令 没有找到 STDOUT 或 STDERR 内容 看看
  • 如何通过 PHP App Engine 应用程序在 Google Compute Engine 实例上创建 cron 作业?

    由于我们的 App Engine 应用程序的架构 我们无法使用 Google 提供的 App Engine cron 服务 并且正在寻找替代选项 我们提出的一种可能的解决方案是允许我们的 App Engine PHP 应用程序在计算引擎实例
  • Ruby 脚本即服务

    嗯 标题说明了一切 我有一个 ruby 脚本 我想在我的 Linux 机器上作为一项服务 我可以启动和停止 运行 我找到了如何在 Windows 上执行此操作here https stackoverflow com questions 16
  • Selinux 阻止来自 php 的 crontab 命令

    我们的服务器上有 Fedora 25 和 apache 我想要这样做 以便我们网站上的 php 脚本可以更改 crontab 设置 我创建了以下测试 php 脚本
  • cron 作业和 PHP (Zend Framework) 入门

    我对 cron 作业这个主题完全陌生 所以我不知道从哪里开始学习它们 何时 为何或如何将它们与我的 Zend Framework 应用程序或一般的 PHP 一起使用 任何人都可以通过示例解释该过程 或者推荐一些好的资源来入门吗 Cron 作
  • App Engine Cron 作业始终返回 HTTP 状态代码 301

    我已关注本指南 https cloud google com appengine docs flexible ruby scheduling jobs with cron yaml为我的 Rails 应用程序创建 cron 作业 但 HTT
  • 什么是克朗?我该如何使用这个? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions http
  • 如何在 Django 中获取 URL(带有协议和域)(无需请求)?

    我想在 cron 作业中发送邮件 邮件应包含 我的应用程序的链接 在 cron 作业中 我没有请求对象 并且无法使用 request build absolute uri 据我所知 网站框架可以在这里提供帮助 但没有给我协议 http vs
  • Spring cron 表达式每 30 分钟一次

    Java spring 我有以下 cron 作业的 cron 表达式 0 0 35 但上面提到的 cron 表达式每小时触发一次 如下所示 1 35 2 35 3 35 4 35 我想每 35 分钟触发一次 而不是一小时触发一次 有什么快速
  • 使用 Webmin 设置 cron 作业

    我正在尝试使用 Webmin 设置一个 Cron 作业每 5 分钟运行一次 它需要定位 php 文件并运行该文件中的 php 脚本 当我在 命令 字段中输入文件路径时 它不起作用 我只是想知道我做错了什么 以及我需要 Cron 作业运行的文
  • XAMPP Windows 上的 Php Cron 作业

    嗯 我是这个词的新手CRON 据我所知 这是一个Unix安排特定操作在定义的时间间隔后执行的概念 我需要运行一个php文件 每小时更新一次数据库 但我的困惑在于安排执行 我在用XAMPP用于 Windows 7 上的本地开发测试 我发现了什
  • 通过 cron 进行 git 推送

    我正在尝试运行git push来自 cron 当我在 shell 上以交互方式执行命令时 一切顺利 从我的用户的 crontab 运行命令时 cron 会传递错误消息 Permission denied publickey 我认为这与查找或
  • 如何重新启动服务器关闭后动态创建的 Quartz 作业

    我正在使用 spring mvc 4 2 5 RELEASE 和quartz 2 2 1quartz jobs 2 2 1 当用户输入石英作业的名称和 cron 表达式时 我有一个用户界面 然后我像这样创建作业 SchedulerFacto
  • 任务计划程序中的 asp.net 脚本

    我有一个小的 asp net 脚本 可以作为网页执行 http localhost myscript aspx http localhost myscript aspx 我需要这个脚本每 30 秒运行一次 我正在使用 IIS 6 0 的 W
  • Laravel 调度程序不会自动运行

    我做了一个调度程序 当我用php artisan userRanking有用 这是代码中的Kernel php protected commands App Console Commands UserRanking class protec
  • cron 任务是否会阻塞主进程或者nodejs 会创建一个worker 来执行cron 任务

    我在用节点 cron https github com ncb000gt node cron每分钟执行一些繁重的任务 更新数据库 这个任务是使用主进程来工作还是nodejs会创建一些工作人员来完成这些任务 var CronJob requi

随机推荐

  • js逆向-某旗小说

    声明 本文仅供学习参考 请勿用于他途 违者后果自负 前言 笔者一直是一个小说控 喜欢看小说很多年了 自从学会了python后 就经常会去不同的小说网站抓取小说保存到本地阅读 最近发现一本很好看的小说 准备抓下来看 却发现有请求参数和返回的接
  • webpack的构建流程

    一 运行流程 webpack 的运行流程是一个串行的过程 它的工作流程就是将各个插件串联起来 在运行过程中会广播事件 插件只需要监听它所关心的事件 就能加入到这条webpack机制中 去改变webpack的运作 使得整个系统扩展性良好 从启
  • opencv生成棋盘格

    头文件 include
  • 前端将List列表转化为树型结构(reduce函数)

    主要用到了reduce 函数 for循环可以做到的事情reduce 都可以做到 甚至操作起来更加简单方便和高雅 reduce 为数组中的每一个元素依次执行回调函数 不包括数组中被删除或从未被赋值的元素 reduce语法 array redu
  • 使用我们的actionbar实现我们的tab导航功能(详解)

    第一步的话就是创建我们对应的fragment 这里的话我们创建了三个对应的fragment 第二步的话就是创建我们的mytablistener类 package com example handle Fragments import and
  • 超简单:很火的3D立体动态相册,送给心爱的那个人

    1 首先 我们一共需要三个文件 目录关系如下所示 先建index html文件吧 电脑上先创建一个 txt文件 在里面加入代码后保存 重命名为index html 记得把原来的 txt后缀覆盖 html我用的谷歌浏览器 index html
  • pg_receivewal实践

    测试从pg receivewal的日志中恢复从库为主库 主从配置async模式 配置pg receivewal接收日志pg receivewal D dbaas pg data pg receivewal data v h 10 9 10
  • 动态模型系列笔记(一)——隐马尔可夫模型(HMM)

    隐马尔可夫模型 背景介绍 提纲 隐马尔可夫模型 HMM 符号表示 两个假设 三个问题 Evaluation Learning Decoding 小结 附录 背景介绍 隐马尔可夫模型 HMM 是一种概率图模型 我们知道 机器学习模型可以从频率
  • 自创简易加密算法

    前几日和同事聊天 说到经常忘记密码 但记在一些地方 又不放心 我们就想 要是实现一个加密算法 每次记录加密结果 需要时再解密 那问题不就迎刃而解了嘛 后来根据需求 设计了一个基于异或的对称加密算法 算法非常简单 1 先定义一个由一系列不规则
  • LLVM IR(一)——如何使用LLVM编译执行代码

    可以转载 请注明出处 文章目录 1 1 LLVM IR的三种结构 1 2将C文件转为LLVM IR汇编码 1 3将LLVM IR汇编码转为bitcode 1 4执行LLVM bitcode 1 5链接LLVM bitcode 1 6自己写一
  • 分布式系统详解--基础知识(通信)

    分布式系统详解 基础知识 通信 上一篇文章我们写到了 分布式系统详解 基础知识 线程 简单了解了一下线程的基本概念和线程和分布式的那斩不断理还乱的关系 今天再讲解一下它的另外一个必备知识 通信 进程之间进行通信是分布式的核心 失去了通信 也
  • 好用的c++11纳米级的测量时间消耗的类

    需要包含的头文件及类实现 include
  • Ubuntu 操作系统学习笔记之文件系统

    概述 操作系统通过文件系统管理文件及数据 磁盘或分区需要创建文件系统后才能被OS使用 创建文件系统的过程称之为 格式化 裸 raw 设备 没有文件系统的设备 常见文件系统 Fat32 NTFS Ext2 Ext3 Ext4 xfs HFS
  • 在 Linux 系统上安装 Nginx 的分步指南

    在不断发展的 Web 开发世界中 选择可靠且高效的 Web 服务器可以极大地影响 Web 应用程序和网站的成功 Nginx 因其高性能 开源设计和低资源消耗而成为许多开发人员的首选 这款功能强大的 Web 服务器软件以其稳定性 丰富的功能和
  • 如何移动完整的 Git 存储库

    Git 已成为软件开发中版本控制和协作的事实上的标准 有时 开发人员可能需要将整个 Git 存储库 包括其历史记录 分支和标签 移动到新位置或托管服务 在本综合指南中 我们将讨论无缝重新定位完整 Git 存储库而不会丢失任何关键数据或历史记
  • 如何在 Ubuntu 18.04(仿生)上安装 Ansible

    Ansible 是一种自动化工具 用于从单台计算机管理多个远程主机 它为您提供了针对大量远程主机的轻松配置 例如 您在多台机器上执行相同的任务 Ansible 为您提供了自动执行这些任务的选项 本教程将帮助您在 Ubuntu 18 04 B
  • Ubuntu 16.04 LTS 版本 – 此版本有哪些新增功能?

    Ubuntu 16 04 LTS Xenial Xerus Final 已发布 有很多更改 以下是此版本中可用的一些更改列表 使用以下教程从旧版本升级到 Ubuntu 16 04 如何将 Ubuntu 14 04 升级到 Ubuntu 16
  • 如何在 Debian 11/10 上安装 SVN 服务器

    SVN是由Apache基金会团队构建的开源版本控制系统 它可以帮助您跟踪文件和文件夹的集合 每当您更改 添加或删除使用 Subversion 管理的文件或文件夹时 您都会将这些更改提交到 Subversion 存储库 这会在您的存储库中创建
  • 在每月的最后一天安排 Cron 作业

    Cron 作业是系统管理中必不可少的自动化脚本 并且在类 Unix 操作系统中普遍存在 它们允许系统管理员和开发人员安排任务 作业 在特定时间运行 这对于数据库维护 系统更新和数据备份等任务非常有用 本文将深入探讨如何专门为该月的最后一天安
  • 在 Windows Server 2008 上为通配符 SSL 创建 CSR

    企业社会责任代表 证书签名请求 是一个加密的文本块 在将使用证书的服务器上生成 CSR 包含有关您的组织和域名 地点和国家 地区的信息 它还包含将包含在您的证书中的公钥 For creating CSR for wildcard ssl y