我想编写一个脚本,可以安排在固定时间间隔后运行,这样每次运行该脚本时,它都会检查另一个名为 .txt 的文件的创建时间戳HOSTNAME_FA.lck
。如果(creation timestamp - current timestamp) > 5 Minutes
.它运行另一个 ping 测试。
例如:脚本名称:checkFailedNodes.sh
需要检查其创建时间戳后是否已过去 5 分钟的文件:Hostname_FA.lck
如果checkFailedNodes.sh
运行并确定文件创建已过去 5 分钟,checkFailedNodes.sh
脚本将使用 ICMP ping 重新测试节点 (HOSTNAME)。
最好的方法是什么?
答案1
这里有几个问题,所以让我们把它们分开。
您需要一个计划以固定时间间隔运行的脚本。这就是cron
目的。例如,如果您想/path/to/script.sh
每五分钟运行一次,请添加此cron
表条目:
*/5 * * * * /path/to/script.sh >> /var/log/myscript.log 2>&1
查找最近修改的文件n分钟前,使用-mmin
.进行演示n= 5:
find /path/to/lockfiles/ -maxdepth 1 -name \*.lck -mmin +5
要为每个找到的文件执行脚本:
find /path/to/lockfiles/ -maxdepth 1 -name \*.lck -mmin +5 -exec /path/to/otherscript.sh {} \;
魔法令牌{}
文件名将替换为文件名,因此脚本可以设计为查看文件的内容或文件名并采取相应的操作。