在每月的最后一天安排 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 作业 的相关文章

  • 如何使用 BlockingScheduler 每 10 分钟运行一次任务 5 秒?

    我试图每 10 分钟运行一次任务 例如 5 点 13 15 13 25 但是 它不起作用 该服务每小时仅运行一次 即中午 12 点至下午 4 点 sched add job run batch cron day of week mon fr
  • python 中的 crontab

    我正在用 python 为某种守护进程编写代码 该守护进程必须在由 crontab 字符串定义的特定时间实例执行特定操作 有我可以使用的模块吗 如果没有 有人可以粘贴 链接一个算法 我可以用它来检查 crontab 定义的时间实例是否在上次
  • 在詹金斯上安排每两周一次的工作

    我想在 jenkin 上安排每两周一次的工作 它应该每隔一周星期一运行一次 我无法弄清楚 cron 表达式 我做了一些研究 基本上可以归结为 3 个答案 快速回答 你不能 复杂答案1 您可以在单独的行中手动输入每隔一个星期日的条目 但是当年
  • 如何在Cron上动态设置变量?

    我正在尝试将 cron 文件放置在 etc croon 中 d 我的问题是我不想保持此文件更新 所以我正在寻找一种从文件动态获取软件版本的方法 我几乎没有其他变量 但现在我认为问题在于 cat software VERSION 它在 she
  • crontab:正在运行 python 脚本但不执行操作系统命令

    我有这个 crontab 配置设置和以下脚本 MAILTO email protected cdn cgi l email protection 41 15 usr bin python home atweb Documents openg
  • 查找超过 1 小时的 -mtime 文件 [重复]

    这个问题在这里已经有答案了 我目前每 24 小时运行一次此命令 find var www html audio daystart maxdepth 1 mtime 1 type f name mp3 exec rm f 我想每 1 小时运行
  • 如何在 Amazon Linux AMI 上设置 cron 作业

    我正在托管 Tiny Tiny RSS 网站 托管于 亚马逊 Linux AMI 要自动更新 feed 我必须运行以下 Cron 作业 参考http tt rss org redmine projects tt rss wiki Updat
  • 如何在 Laravel 5.6 中将 Cron 条目添加到 WAMP localhost

    我将在我的应用程序中的 laravel 5 6 中创建任务计划程序 我正在使用 Windows 7 操作系统 我的本地主机是 WAMP 在 laravel 文档中 将 Cron 条目添加到您的服务器中 cd path to your pro
  • 如何在 Jenkins 脚本管道中设置多行参数化 cron 作业?

    所以这工作正常 properties https stackoverflow com questions 35370810 how do i use jenkins pipeline properties step parameters n
  • 将 crontab 文件替换为 -e

    有人知道如何将文件放入 crontab e 吗 我无法使用 crontab 的常规形式为其提供路径 但仍需要替换整个内容 也许将 EDITOR 设置为某些内容 您可以使用以下命令将 cron 作业从文件中获取到 crontab 中 cron
  • 如何在AWS EC2服务器中编写cron作业

    我在 AWS EC2 中创建了一个 cron 作业 但它不起作用 我按照以下步骤创建 crontab 第1步 我登录到AWS EC2实例 step 2 crontab e 第三步 插入模式 第4步 我输入了 php var www html
  • Twitter API 速率限制

    我想从 Twitter 收集几周内的数据 为此 我使用 RStudio Server 和 crontab 自动运行多个脚本 如下所示 require ROAuth require twitteR require plyr load twit
  • Ruby 脚本即服务

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

    我有一个 php 脚本 我想使用 bash 脚本运行它 所以我可以使用 Cron 每分钟左右运行 php 脚本 据我所知 我需要创建 bash 脚本来处理 php 脚本 然后我才能使用 Cron 工具 计时器 到目前为止 我被告知我需要输入
  • 如何在 Django 中获取 URL(带有协议和域)(无需请求)?

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

    我们的客户希望我们每月创建一份报告 过去 我们使用 monthly cron 作业来完成此任务 但这并不可靠 服务器可能会在这一分钟内宕机 Cron 不会重新运行这些作业 如果服务器已启动 此时数据库可能无法访问 如果服务器已启动且数据库已
  • cron 爬虫使用 Ruby 中的 Google API 将数据插入 Google 电子表格的授权问题

    我的项目是每天早上 9 00 抓取某些网络数据并将它们放入我的 Google 电子表格中 并且它必须获得读取和写入某些内容的授权 这就是为什么下面的代码位于顶部 Google API CLIENT ID blah blah CLIENT S
  • laravel cron 使用错误

    Laravel 错误 cron 使用 usr bin php home sitevk artisan 计划 运行 1 gt gt dev null 2 gt 1 应用 控制台 内核 use Illuminate Console Schedu
  • 如何编写 Perl 脚本来使用 curl 处理 URL?

    我有一个非常简单的任务 我有一个 crontab 每小时运行一个脚本 该脚本旨在简单地处理 URL 这就是我所拥有的 这不起作用 我收到语法错误 usr bin perl curl http domain com page html 我已经
  • 如何在 Jenkins 中安排构建?

    如何安排 Jenkins 构建 使其只能在每天的特定时间进行构建 例如下午 4 点开始 0 16 1 7 我理解为 每个月周一到周日下午 0 分钟 下午 4 点 但是它每分钟都会构建 如果有任何建议 我将不胜感激 谢谢 Update 请阅读

随机推荐

  • 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