【问题标题】:Subshells in Bash, using crontabBash 中的子shell,使用 crontab
【发布时间】:2021-02-06 13:07:05
【问题描述】:

我目前正在从事一些学校项目,我们应该处理 cron 作业,基本上,我们正在构建一个简单的 CLI 来使用 Bash 进行 CRUD 操作。

我发现了这个在我的 crontab 中插入新作业的代码 sn-p,但我不知道它是如何工作的……我知道它使用 subshel​​l 和管道,但我只是不知道我为什么会有去做吧

    read job
    { crontab -l; echo "$job"; } | crontab -

【问题讨论】:

    标签: linux bash cron cron-task


    【解决方案1】:

    crontab 是一个文件,其中包含cron 守护进程(Unix 操作系统的基于时间的作业调度程序)的作业(指令)。

    如果您将 bash 行放入脚本中,比如说 cron_test.sh

    #!/usr/bin/sh
    
    read job
        { crontab -l; echo "$job"; } | crontab -
    

    然后,如果您执行脚本./cron_test.sh,您将看到脚本等待您的输入(将其存储到名为作业的变量中)的标准输入,以便为您的用户创建一个新作业。

    要小心,因为你必须尊重作业语法:

    1 2 3 4 5 /path/to/command arg1 arg2

    地点:

    1: Minute (0-59)
    2: Hours (0-23)
    3: Day (0-31)
    4: Month (0-12 [12 == December])
    5: Day of the week(0-7 [7 or 0 == sunday])
    /path/to/command – Script or command name to schedule
    

    一些命令:

    crontab -l - 列出当前的 crontab(针对您正在使用的用户)

    crontab -e - 编辑 crontab 文件

    【讨论】:

      猜你喜欢
      • 2012-12-10
      • 2018-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-29
      • 1970-01-01
      • 2018-07-18
      • 2011-06-09
      相关资源
      最近更新 更多