我搜索过论坛找不到一个。我们定义一个只在每次cronjob运行时递增的变量?
例如:
我有一个每5分钟运行一次的脚本所以我需要一个基于cron运行增量的变量
说这项工作是否运行了5分钟。所以脚本执行了6次,所以我的计数器变量现在应该是6
我期待bash / shell
如果重复的问题,请道歉
尝试:
((count+1))
答案 0 :(得分:1)
你可以这样做:
increment_counter.sh
的执行. /path/to/counter.sh
添加到/etc/profile
或/etc/bash.bashrc
或wherever you need 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已退出;它设置的任何变量都已消失。您不能为此目的使用变量。
您需要的是某种永久数据存储。这可能是数据库,或远程网络服务,或各种各样的东西,但到目前为止,最简单的解决方案是将值存储在磁盘上的某个文件中。在脚本启动时读取文件,然后写出增量值。
如果文件丢失,您应该考虑如何处理,如果同时运行多个脚本副本会发生什么,并决定这些是您关心的情况。如果是,您需要在脚本中分别添加适当的错误处理和锁定。