sleep 59
除了在我的脚本开头运行 a 之外,将 crontab 命令设置为每 59 秒运行一次的最方便的方法是什么?
如果没有其他建议,是否会sleep 59
延迟我计划执行的所有其他 cron 条目,直到睡眠完成?
更新为什么我需要它?我写了一个小脚本来找出谁在最后一分钟登录了系统,它看起来像这样:
who | grep `date +%R` | awk '{ print $1 " joins us." }' | write $USER
为了让它工作而不是让事情变得复杂,我需要它在最后一刻运行。
这有一个
date
查看前一分钟的命令:然后,您可以使用以下命令立即运行它
cron
:你甚至可以这样做:
编辑:这是一个免费赠品:
输出逗号,“and”和复数动词一致并删除重复的短语(如果你想在一行上全部替换,你可以用空格替换换行符(最后一个除外)):
或者
或者
使用 cron 可以做到的最好的事情就是每分钟运行一次:
sleep 59
不会耽误其他任务。但它闻起来像危险。如果您需要那种级别的粒度,那么我预测您会遇到困难。
如果您解释您的要求的原因,您可能会发现有人能够提供更好的治疗方法。
cron 只是不那么准确。如果您需要这种级别的精度,您应该考虑编写一个守护程序。
您是否考虑过在 auth.log 上使用 tail -f 并不断观察登录?
最好将脚本添加到所有用户的 .login 文件或 .bashrc 或类似文件中。
1)它只会在有人登录时运行,所以效率更高。2)当有人登录时它会立即运行,所以没有延迟。
我只想提一下zsh 有一个
watch
内置函数可以做到这一点。(不过,您必须使用 zsh 并使用您的 shell 才能看到它:它不会在其他终端中弹出。)简而言之,将其添加到您的
.zshrc
: