如何在一个 Cron 作业中运行多个命令

2023-11-16

Crontab 是一个用于在 Unix-Linux 系统上定期运行计划任务的实用程序。它允许我们安排多个 cron 作业同时运行。我们可以安排任何 shell 命令或脚本在终端上执行。 crontab 中的每个计划作业均由换行符分隔。我们还可以在一个 cron 作业中定义多个命令或脚本来一一运行。

如何在 Linux 中分离两个命令

您可以使用分号 (;)、逻辑 AND (&&) 或逻辑 OR (||) 运算符分隔两个或多个命令。我们使用哪些运算符完全取决于需求。以下是使用这些运算符的基本了解。

  1. 分号 (;):用于分隔多个命令。这将执行所有命令,而不检查先前命令的退出状态。
    
    command_1;  command_2;  command_n
      
  2. 逻辑与(&&):当我们只想在上一个命令成功执行且退出状态为 0 的情况下才执行下一个命令时,用于分隔命令。
    
    command_1 &&  command_2 &&  command_n
      
  3. 逻辑或 (||):当我们只想在前一个命令因非 0 退出状态而失败时才执行下一个命令时,用于分隔命令。
    
    command_1 ||  command_2 ||  command_n
      

如何安排 Cron 作业

首先,切换到要运行 cron 作业的用户。然后通过运行以下命令打开 crontab 编辑器。

crontab -e 

然后将 cron 作业条目添加到文件中,如下所示:

Logical OR separated commands in Linux
Crontab commands separated with logical AND

在单个 Cron 作业中运行多个命令

让我们讨论一下使用 crontab 以 different-2 分隔符运行多个命令的现实示例。

  1. 使用分号 (;)
  2. 我们可以用分号分隔两个或多个命令,这不需要检查前一个命令的退出状态。例如,您需要将所有文件的权限更改为777,但需要将logs目录设置为777。

    1
    0 2 * * *   chmod -R 755 /var/www/myapp; chmod -R 777 /var/www/myapp/logs
    Semicolon (;) separated commands in Linux
    Crontab commands separated with semicolon (;)

  3. 使用逻辑与 (&&)
  4. 使用此运算符,仅当上一个命令成功执行(退出状态 0)时才运行下一个命令。例如,您希望在成功更改到 /backup 目录后运行 backup.sh。

    1
    0 2 * * *   cd /backup && bash backup.sh
    Logical OR separated commands in Linux
    Crontab commands separated with logical AND

  5. 使用逻辑或 (||)
  6. 如果您只想在前一个命令失败(退出状态非 0)时才运行下一个命令,请使用逻辑 OR (||) 运算符。例如,您希望在找不到备份文件时显示消息或发送电子邮件。

    1
    0 2 * * *  [ -f /backup/mydb-`date +%F`.sql ] || echo “找不到今天的备份文件”
    Logical AND separated commands in Linux
    Crontab commands seperated with logical AND

结论

在这篇博文中,您了解了如何在单个 cron 作业条目中运行多个命令。还讨论了分离命令的各种选项。本文为您提供有关用于分隔命令的每个分隔符的基本详细信息。

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

如何在一个 Cron 作业中运行多个命令 的相关文章

  • Rails,每当和 docker - cron 任务不运行

    我的定时任务来自schedule rb不适用于 docker 容器 但是crontab l结果已经包含这一行 Begin Whenever generated tasks for app config schedule rb 45 19 b
  • 在詹金斯上安排每两周一次的工作

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

    我的 php 文件 file1 php 中有一个函数 我正在尝试使用 cronjob 来调用此函数 我的 cron 作业命令是 php home name public html file1 php mail1 作为参考 函数代码如下 当直
  • 如何使用 php 设置 crontab?

    我需要从 php 脚本设置一个 crontab 我知道它可以通过设置 system echo echo Hello world gt gt cron crontab system crontab cron crontab cron cron
  • 在 Windows 中设置 cron 作业

    我每天都必须从 SFTP 服务器下载文件 我有一个从服务器检索文件的程序 但我正在考虑设置一个 cron 作业 或任何类似的作业 来自动执行该操作 我们是一家 Windows 商店 需要在 Windows 中设置 cron 作业 windo
  • 使用 Python 更新媒体 wiki 文章?

    你好 我有一个 cron 作业 它收集有关服务的一些统计信息 我需要 cron 作业以编程方式更新媒体 wiki 页面 附加到页面 我在 cron 中使用 python 那么我最好的选择是什么 是否有 mediawiki python 库的
  • Crontab 格式化 - 每 15 分钟一次

    我试图让一个简单的 crontab 作业每 15 分钟运行一次 但在决定如何格式化计时时遇到困难 我一直在写的内容如下 15 我很确定这只运行每小时的前 15 分钟 我认为 crontab 允许用户指定确切的运行时间 即 0 15 30 4
  • 如何在 Laravel 5.6 中将 Cron 条目添加到 WAMP localhost

    我将在我的应用程序中的 laravel 5 6 中创建任务计划程序 我正在使用 Windows 7 操作系统 我的本地主机是 WAMP 在 laravel 文档中 将 Cron 条目添加到您的服务器中 cd path to your pro
  • Cron python脚本不执行[重复]

    这个问题在这里已经有答案了 我读过一些关于此的文章 但我无法在其中找到帮助 我有一个使用 smtplib 发送邮件的 python 脚本 从命令行调用时它会起作用 I have usr bin python作为第一行 并且可以使用以下命令运
  • 如何通过 Cron 运行 bash 脚本

    我见过其他类似的问题 但我找不到任何关于如何找出通过 Crontab 运行 Bash 脚本的正确方法的真实信息 这 sh文件位于用户目录中 在我的例子中serverpilot 该脚本正在尝试复制的内容apps文件夹并发送到我的 S3 存储桶
  • 如何从 cron 运行的脚本运行 gpg?

    我有一个脚本 其中一部分如下所示 for file in ls tar gz do echo encrypting file gpg passphrase file home USER gnupg backup passphrase sim
  • crontab 作业的 STDOUT 和 STDERR 输出在哪里

    有谁知道 CentOS 中正常 crontab 作业输出的 STDOUT 和 STDERR 在哪里 我检查了 var log cron文件 但它只记录了 cron 作业执行的时间和命令 没有找到 STDOUT 或 STDERR 内容 看看
  • 如何从在 Cron 作业上运行的 Python 解锁 Gnome 密钥环?

    我正在连接一个 Python 脚本来与 cron 一起运行 在 Ubuntu 12 04 上 但身份验证不起作用 cron 脚本访问几个服务 并且必须提供凭据 存储这些凭证keyring很简单 只不过当 cron 作业实际运行时 无法检索凭
  • Ruby 脚本即服务

    嗯 标题说明了一切 我有一个 ruby 脚本 我想在我的 Linux 机器上作为一项服务 我可以启动和停止 运行 我找到了如何在 Windows 上执行此操作here https stackoverflow com questions 16
  • App Engine Cron 作业始终返回 HTTP 状态代码 301

    我已关注本指南 https cloud google com appengine docs flexible ruby scheduling jobs with cron yaml为我的 Rails 应用程序创建 cron 作业 但 HTT
  • 如何在不访问该页面的情况下每分钟自动运行php脚本?

    我正在开发网站 当用户注册我的网站时 该网站会自动向用户发送电子邮件 我在网上搜索过 大多数人说我必须使用cron jobs 现在困扰我的大问题是关于 cron 作业的 我不知道如何编写它 也不知道如何执行它 谁能给我一些关于它的例子吗 预
  • 如何在 Django 中获取 URL(带有协议和域)(无需请求)?

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

    我尝试执行一个 cron 并每 5 分钟运行一个 url 我尝试使用 WGET 但我不想下载服务器上的文件 我只想运行它 这是我使用的 crontab 5 wget http www example com cronit php 除了 wg
  • laravel cron 使用错误

    Laravel 错误 cron 使用 usr bin php home sitevk artisan 计划 运行 1 gt gt dev null 2 gt 1 应用 控制台 内核 use Illuminate Console Schedu
  • Azure Functions 计时器触发器线程安全

    我想知道是否有人知道如果您在 Azure 函数上设置了 Cron 设置 如果其任务执行时间超过 5 分钟 则每 5 分钟运行一次 会发生什么情况 它备份吗 或者我应该实现一个锁定功能 以防止某些东西 例如在循环中 处理先前调用已经处理的数据

随机推荐

  • 自蒸馏One-shot NAS——Cream of the Crop

    Paper https arxiv org abs 2010 15821 GitHub NNI https github com microsoft nni blob master docs en US NAS Cream rst GitH
  • Goby反制复现

    0x00 前言 最近复现Goby反制的时候遇到很多坑 记录一下反制过程以及遇到的坑点 还有世界上最强的黑客mux1ng帮我解决了很多问题 0x01环境 攻击机 windows10 Goby1 8 230 172 20 10 3 反制机 Wi
  • VM600 MPC4 IOCT16T CMC16 保护其设备免受篡改或网络攻击

    VM600 MPC4 IOCT16T CMC16 保护其设备免受篡改或网络攻击 推出Protection Suite 其中包括CodeMeter加密和许可工具 使制造商能够快速轻松地保护其现成的软件和专有技术免受盗版和逆向工程的侵害 并保护
  • 链接数据库 报错java.sql.SQLException: Unsupported character encoding ‘utf-8......

    项目启动报如下错误信息 java sql SQLException Unsupported character encoding utf 8 serverTimezone 分析 由 java sql SQLException 可知道很大概率
  • 大数据-linux免密登录

    操作 mini yum服务器 A root sizhan ssh keygen Generating public private rsa key pair Enter file in which to save the key root
  • JavaScript实现点击复制(JS访问剪贴板相关)

    一 具体代码 网页前端开发中有时会出现这样的场景 让用户点击某个按钮 然后就能直接复制对应的文本内容 让用户可以将文本内容粘贴到想要粘贴的地方 常用于分享功能模块中 如果想要实现这种效果就需要我们去访问用户的剪贴板 然后把想要复制的内容写入
  • logging模块详细使用

    啄木鸟社区里的Pythonic八荣八耻有一条 以打印日志为荣 以单步跟踪为耻 很多程序都有记录日志的需求 并且日志中包含的信息既有正常的程序访问日志 还可能有错误 警告等信息输出 python的logging模块提供了标准的日志接口 你可以
  • 公司取名字-免费查询参考(中英文2023年精选100个)公司名字集

    中文名称 1 星辰科技 2 卓越集团 3 璀璨科技 4 炫彩网络 5 融智科技 6 致远集团 7 飞跃科技 8 极致集团 9 灵动科技 10 豪迈集团 11 神州科技 12 创维集团 13 赛博科技 14 蓝海集团 15 云端科技 16 融
  • [ vulhub漏洞复现篇 ] struts2远程代码执行漏洞s2-048(CVE-2017-9791)

    博主介绍 博主介绍 大家好 我是 PowerShell 很高兴认识大家 主攻领域 渗透领域 数据通信 通讯安全 web安全 面试分析 点赞 评论 收藏 养成习惯 一键三连 欢迎关注 一起学习 一起讨论 一起进步 文末有彩蛋 作者水平有限 欢
  • IDEA(2023)解决运行乱码问题

    作者介绍 一个有梦想 有理想 有目标的 且渴望能够学有所成的追梦人 学习格言 不读书的人 思想就会停止 狄德罗 个人主页 进入博主主页 专栏系列 无 欢迎小伙伴们访问到博主的文章内容 在浏览阅读过程发现需要纠正的地方 烦请指出 愿能与诸君一
  • 如何增加 Tomcat 上传文件大小限制

    今天在部署一个war文件 开发站点代码 时Tomcat 8 我遇到了以下有关 Apache Tomcat 服务器中上传限制大小的问题 所以我决定将 Tomcat 上传文件大小限制增加到高于默认值 默认上传限制设置为 50 MB Caused
  • Node.js 与 MySQL 示例

    Node js 是一种流行的 Web 应用程序编程语言 如 PHP 和 JAVA 此外 MySQL 是用于存储值的最流行的数据库 Node js 的 MySQL 数据库驱动程序可在 NPM 存储库下找到 在本教程中 您将学习如何使用 Nod
  • 如何在 Ubuntu 18.04 上安装 GIMP 2.10

    GIMP GNU 图像处理程序 是一个免费分发的用于处理图像的软件 我们可以轻松地优化图像 使用 GIMP 转换其类型 它为设计师提供了将图像转化为真正独特的创作的能力和灵活性 GIMP 是一个跨平台应用程序 可用于 Linux Windo
  • 如何在 EC2 实例上创建交换分区

    在 Amazon Elastic Compute Cloud EC2 实例上创建交换分区有助于提高系统的性能和稳定性 交换分区是硬盘驱动器上的一个空间 当物理内存 RAM 不足时 操作系统可以将其用作虚拟内存 在本文中 我们将解释如何在 E
  • 如何在 Ubuntu 20.04 上安装和配置 Ansible

    Ansible 是一种自动化工具 用于从单台计算机管理多个远程主机 它为您提供了针对大量远程主机的轻松配置 例如 您在多台机器上执行相同的任务 Ansible 为您提供了自动执行这些任务的选项 Ansible 是 Chef 和 Puppet
  • 如何在 Bash Shell 中使用换行符 ( \n )

    问题 如何将换行打印为 n在 bash shell 中 如何使用 n在 shell 脚本中打印新行 Issues 在 bash shell 中回显换行符打印文字 n但不是新线 打印文字 n 在 bash 脚本中的嵌套打印新行中 Comman
  • 如何在 CentOS/RHEL 和 Fedora 上设置 VNC 服务器(Linux 远程桌面访问)

    VNC 虚拟网络计算 服务器支持 Linux 系统的远程桌面访问 类似于MSTSC在窗户中 一般来说Linux管理员不喜欢使用Windows访问 但有时我们需要访问Linux的远程桌面 在这种情况下 我们需要在 Linux 系统上安装 vn
  • 如何在 FirewallD 中打开特定端口

    防火墙是大多数现代 Linux 发行版使用的防火墙管理解决方案 在本教程中 您将学习如何在firewalld 中打开端口 本教程介绍如何在firewalld 中为公共 特定IP 或IP 范围打开端口 找到我们的上一篇文章关于Firewall
  • 在 Windows 上安装 Python 3.x 的综合指南

    Python 是一种广泛使用的通用编程语言 以其简单性 可读性和广泛的应用范围而闻名 无论您是开发 Web 应用程序 执行数据分析还是自动化任务 Python 都是一个绝佳的选择 截至 2023 年 7 月更新本文时 最新的 Python
  • 如何在一个 Cron 作业中运行多个命令

    Crontab 是一个用于在 Unix Linux 系统上定期运行计划任务的实用程序 它允许我们安排多个 cron 作业同时运行 我们可以安排任何 shell 命令或脚本在终端上执行 crontab 中的每个计划作业均由换行符分隔 我们还可