每 59 秒运行一次 crontab 命令

dpq*_*dpq 2 cron

除了sleep 59在脚本开头运行 a 之外,将crontab 命令设置为每 59 秒运行一次的最便捷方法是什么?

如果没有其他建议,执行是否会sleep 59延迟我计划执行的所有其他 cron 条目,直到休眠的条目完成?

更新为什么我需要它?我写了一个小脚本来找出谁在最后一分钟登录系统,它看起来像这样:

who | grep `date +%R` | awk '{ print $1 " joins us." }' | write $USER
Run Code Online (Sandbox Code Playgroud)

为了让它工作而不是让事情变得复杂,我需要它在一分钟结束时运行。

Den*_*son 8

这有一个date查看前一分钟的命令:

who | grep `date -d "now -1 min" +%R` | awk '{ print $1 " joins us." }' | write $USER
Run Code Online (Sandbox Code Playgroud)

然后你可以立即运行它cron

* * * * * /some/dir/scriptname
Run Code Online (Sandbox Code Playgroud)

你甚至可以这样做:

who | grep `date -d "now -60 sec" +%R` | awk '{ print $1 " joins us." }' | write $USER
Run Code Online (Sandbox Code Playgroud)

编辑:这是一个免费赠品:

awk 'FNR > 2 {printf ",\n"} {printf "%s", name; name = $0; next} END {conj = " and\n"; if (FNR == 1) {singular = "s"; conj = ""}; printf "%s%s join%s us\n", conj, name, singular}'
Run Code Online (Sandbox Code Playgroud)

用逗号、“and”和复数动词一致输出并删除重复的短语(如果您希望将所有内容都放在一行,可以用空格替换换行符(最后一个除外)):

艾伦加入我们

或者

比尔和
克里斯加入我们

或者

戴夫、
艾伦和
费利西蒂加入我们


Mik*_*eyB 7

您可以使用 cron 做的最好的事情是每分钟运行一次:

# minute hour dom mon dow
* * * * * /path/to/command
Run Code Online (Sandbox Code Playgroud)

  • 是的,您的问题是如何每 59 秒运行一次 crontab。MikeyB 正确回答说你不能。 (8认同)