【问题标题】:Avoid duplicate CRON entry creation by a particular script避免特定脚本创建重复的 CRON 条目
【发布时间】:2016-06-29 03:45:53
【问题描述】:

下面的 shell 函数以编程方式创建一个 CRON 条目。

function create_cron(){
    echo ""
    echo "Create CRON entry"
    #write out current crontab
    crontab -l > allcrons
    #echo new cron into cron file
    echo "0 1 * * * python /opt/EO/Ava/utils/xtr_test_aggregation.py" >> allcrons
    display_all_crons allcrons
    #install new cron file
    crontab allcrons
    rm allcrons
}

如果脚本运行两次,上述函数的唯一问题是可能会创建重复的 CRON 条目。只有当它不存在时,我才想创建一个 CRON 作业。请注意,如果已经存在重复条目,我想把它们留在那里。我只是对此脚本专门创建的重复条目感到困扰。

【问题讨论】:

  • 然后 grep crontab 找到该行,如果 grep 返回结果则不要添加它。
  • 您可以通过在命令中附加 # XTR_TEST_ENTRY 之类的内容来使 grepping 更轻松、更健壮。即使时间已更改或管理员将python 替换为python2.7,您也可以轻松识别该条目。

标签: bash shell cron


【解决方案1】:

您需要查看 crontab 并检查您的条目是否已经存在,如果不存在则添加它:

function create_cron(){
    echo ""
    echo "Create CRON entry"
    new_entry="0 1 * * * python /opt/EO/Ava/utils/xtr_test_aggregation.py"
    if ! crontab -l | fgrep -q "$new_entry"; then
        #write out current crontab
        crontab -l > allcrons
        #echo new cron into cron file
        echo "$new_entry" >> allcrons
        display_all_crons allcrons
        #install new cron file
        crontab allcrons
        rm allcrons
    fi
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-24
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2014-11-23
    • 1970-01-01
    相关资源
    最近更新 更多