有条件的 crontab 条目

有条件的 crontab 条目

我有一个 crontab 条目,它执行脚本并将输出存储在文件中,例如 currenthash.log 作为 MD5 哈希值。

但我无法实现这样的要求:如果 MD5 校验和发生变化,我需要创建一个新文件,例如changehash.log。这是我可以在 cronjob 或脚本本身中执行的操作吗?

答案1

cron没有关于任务如何运行的逻辑。

它只是在您指定的时刻生成命令。

对于这种智能,您必须在脚本中实现它。

另一种管理方法也可以使用logrotate(在某些条件下轮换日志文件)或incron( cron-类似服务,触发器是inotify事件而不是时间)。

答案2

您需要将旧哈希保存在某处,然后将其与新哈希进行比较。这个方向的东西:

#!/bin/sh
file=/path/to/file
hashfile=/path/to/stored/hash
newhash=$(md5sum "$file")
oldhash=$(cat "$hashfile")
if [ "$newhash" != "$oldhash" ]; then
    echo it changed...
fi
echo "$newhash" > "$hashfile"

相关内容