Linux crontab 每月第 n 个星期六

2023-11-30

除周六外,我喜欢在所有工作日恢复跑步。 我的 crontab 条目

30 16 * * 1,2,3,4,5 ./backup.sh

这个条目工作正常。 另外,我喜欢在第一、第三个星期六恢复。 如果一个月内有第五个星期六可用,则应运行备份。 crontab 的条目是什么?我猜

30 16 1-7, 15-21, 29-31 * 6 ./backup.sh

我对吗?


我对吗?

不,你不正确。 crontab 手册指出:

Note:可以在以下两个字段中指定命令执行的日期一个月中的某一天, and 星期几。如果两个字段都受到限制(即不包含“*”字符),当任一字段与当前时间匹配时将运行该命令。例如,30 4 1,15 * 5将导致命令在每月 1 日和 15 日以及每个星期五的凌晨 4:30 运行。

那么我们怎样才能做到呢?

如果你想确定是这个月的哪个星期六,即是这个月的第一个、第二个还是第三个星期六,你所要做的就是查看星期六是星期几,并进行以下整数计算:

D=$(date "+%d")
echo $(( (D-1)/7 + 1 ))

该值将返回相应的数字。这不仅适用于周六,而且适用于任何工作日。

由于 OP 希望 cron 在第 1 个、第 3 个、可能第 5 个星期六工作,因此它实际上声明 cron 在每个奇数星期六运行:

D=$(date "+%d")
echo $(( ((D-1)/7 + 1) % 2 ))

将此作为附加测试,允许我们将 cron 编写为:

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7)
# |  |  |  |  |
# *  *  *  *  *   command to be executed

 30 16  *  *  6   (( (($(date "+\%d") - 1)/7 + 1) % 2 == 1 )) && command
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux crontab 每月第 n 个星期六 的相关文章

随机推荐

  • 如何在 SVG 中获取滚动条?

    我有一个 SVG 元素 里面有很多元素 SVG 元素有一个视图框 因此您可以按缩放按钮 元素会显得更大或更小 效果很好 现在的问题是 当元素溢出父 SVG 元素时 不会出现滚动条 Example div width 100 height 1
  • 如何在Python中使用Selenium关闭浏览器弹出窗口?

    我正在尝试使用 Python 和 Selenium 自动下载 在起始页中 页面上会出现一个弹窗 如何使用 Selenium 关闭它 我尝试了以下方法但都失败了 gt gt gt alert browser switch to alert g
  • 如何使用 PHP 的 mail() 函数和 MAMP Pro 发送邮件?

    我正在开发一个将利用 PHP 的 mail 函数的网站 我正在运行 MAMP Pro 主要是因为它具有 Postfix 功能 应该对发送电子邮件有用 我觉得我已经尝试了所有方法 但我的程序仍然无法发送电子邮件 我使用 mail 对我来说并不
  • HTML 选择值传递到 Javascript var(然后用于获取 JSON)

    我已经查看了许多其他堆栈问答 但无法到达我需要让我的代码正常工作的地方 我觉得我想做的事情很简单 显然不适合我 我有两个选择部分 每个部分产生所需的不同信息 首先是 oceanVal 第二个是fishVal 我希望用户选择的值发送到我的 j
  • 如何使用 pyparsing 验证布尔表达式语法?

    我正在使用 Pyparsing 库来评估简单的布尔查询 如下所示 真与真 或假与真 真与 真或假或真 使用示例部分中的 simpleBool 脚本 simpleBool py 我在尝试验证表达式语法时遇到了障碍 像下面这样的表达式被认为是有
  • 如何使用 TagLib-Sharp 从 MP3 文件读取 XingHeaders 和 VBRIHeaders

    我需要使用 TagLib Sharp 提取 MP3 文件的 Xing 和 Fraunhofer VBRI 标头中存储的信息 我在网上搜索了一个示例 查看了源代码 但如何使用 XingHeader 和 VBRIHeader 类并不明显 它们看
  • 添加、减去 datetime.time 列 pandas

    我有以下数据框 flight departure arrival at desination boarding total flight time total flight time 2 time to collect bags 0 00
  • C# 是具有泛型类型约束的泛型类型

    我们假设一个接口 interface IOwnedBy
  • 罕见的 IE10 bug:背景位置的 CSS 动画在多个背景和百分比下失败

    这是一个非常具体的错误 但是 我希望有人能向我展示解决方法 该错误主要在于 IE10 无法执行 CSS 动画background position当这两个条件满足时同时 拥有多重背景 Setting background position以
  • 按列提取 PDF 文本

    我的问题是 如何从按列划分的 PDF 文件中提取文本 并获得按该列分隔的结果 背景 我从事一个关于文本分析 尤其是科学文本 的项目 这些文本有时以多栏布局发布 每栏都有一个单独的页码 要按布局页码对提取的文本进行排序 按列提取文本会很有用
  • Redis 中的范围查询 - Spring Data Redis

    有没有一种方法可以使用 Spring Data Redis 在 Redis 中实现范围查询 Eg 如果我的 Pojo 类有 Date 不是主键 并且我需要属于所需日期期间的数据 是否可以使用 Spring Data Redis 构建相同的查
  • iframe 内的页面看不到自己的 cookie

    我们有 2 个位于不同域的网站 为了简单起见 我们假设它们是 App 运行在上面的 SPA 应用程序main app com app Host 运行一个简单的index html页面random site com index html in
  • awk 搜索一个文件中的列,如果匹配则打印两个文件中的列

    我正在尝试比较 file1 中的第 1 列和文件 2 中的第 3 列 如果它们匹配 则打印 file1 中的第一列和 file2 中的前两列 这是每个文件的示例 file1 Cre01 g000100 Cre01 g000500 Cre01
  • 放置现有的sqlite数据库并读取

    在 android 文件夹结构中将现有的 sqlite 数据库放置在哪里 是drawable文件夹还是layout文件夹 我没有找到任何解决方案 任何帮助将不胜感激 你应该把它放在assets文件夹 这样你就可以确保它会附加到你的 apk
  • Vuejs图片src动态加载不起作用

    我刚刚开始使用 Vue js 和 Vue CLI 我遇到了一个问题 我不明白为什么我不能从范围内动态设置图像 但我可以直接在 HTML 中编写它 obj img是一个字符串 assets logo png也很有价值 我伪造 ajax 调用超
  • 如何生成 firebase 注册令牌

    我正在尝试使用新方法生成 firebase 注册令牌 但无法生成以下代码 MyFirebaseInstanceIdService java public class MyFirebaseInstanceIdService extends F
  • UIView 边界和框架的属性观察者的反应不同

    当我正在探索观察的选项时UIView s bounds or frame改变 提到here and here 我遇到了一个非常奇怪的差异 didSet and willSet将根据您放置的位置不同地触发UIView在视图层次结构中 如果我使
  • Gmail 不会在电子邮件中呈现 html

    我将用一个非常基本的示例再尝试一次 当我使用 PHP 向电子邮件客户端发送电子邮件时 除了 gmail 之外 没有任何问题 当我在 gmail 中查看电子邮件时 我看到的只是邮件的代码 Gmail 不显示 HTML 它只是显示代码 这是我的
  • 如何在 Accord.net 中保存“学习状态”?

    我是机器学习和 Accord net 的初学者 我了解了如何训练它然后使用它 但在企业环境中 在服务器上运行它 我如何坚持 Accord net 的学习成果 我是否需要保存所有训练数据并在每次重新启动应用程序时重新训练 通过添加在代码中导入
  • Linux crontab 每月第 n 个星期六

    除周六外 我喜欢在所有工作日恢复跑步 我的 crontab 条目 30 16 1 2 3 4 5 backup sh 这个条目工作正常 另外 我喜欢在第一 第三个星期六恢复 如果一个月内有第五个星期六可用 则应运行备份 crontab 的条