在shell脚本中定义一个Increment变量,该变量在每个cronjob上递增

时间:2016-07-22 18:04:40

标签: bash shell unix cron

我搜索过论坛找不到一个。我们定义一个只在每次cronjob运行时递增的变量?

例如:

我有一个每5分钟运行一次的脚本所以我需要一个基于cron运行增量的变量

说这项工作是否运行了5分钟。所以脚本执行了6次,所以我的计数器变量现在应该是6

我期待bash / shell

如果重复的问题,请道歉

尝试:

((count+1))

2 个答案:

答案 0 :(得分:1)

你可以这样做:

  1. 创建两个脚本:counter.sh和increment_counter.sh
  2. 在您的cron作业中添加increment_counter.sh的执行
  3. . /path/to/counter.sh添加到/etc/profile/etc/bash.bashrcwherever you need
  4. counter.sh

    declare -i COUNTER
    COUNTER=1
    export COUNTER
    

    increment_counter.sh

    #!/bin/bash
    echo "COUNTER=\$COUNTER+1" >> /path/to/counter.sh
    

答案 1 :(得分:1)

您运行命令的shell已退出;它设置的任何变量都已消失。您不能为此目的使用变量。

您需要的是某种永久数据存储。这可能是数据库,或远程网络服务,或各种各样的东西,但到目前为止,最简单的解决方案是将值存储在磁盘上的某个文件中。在脚本启动时读取文件,然后写出增量值。

如果文件丢失,您应该考虑如何处理,如果同时运行多个脚本副本会发生什么,并决定这些是您关心的情况。如果是,您需要在脚本中分别添加适当的错误处理和锁定。