AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 70439
Accepted
dpq
dpq
Asked: 2009-10-02 08:01:14 +0800 CST2009-10-02 08:01:14 +0800 CST 2009-10-02 08:01:14 +0800 CST

每 59 秒运行一次 crontab 命令

  • 772

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

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

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

who | grep `date +%R` | awk '{ print $1 " joins us." }' | write $USER

为了让它工作而不是让事情变得复杂,我需要它在最后一刻运行。

cron
  • 6 6 个回答
  • 2375 Views

6 个回答

  • Voted
  1. Best Answer
    Dennis Williamson
    2009-10-02T08:37:59+08:002009-10-02T08:37:59+08:00

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

    who | grep `date -d "now -1 min" +%R` | awk '{ print $1 " joins us." }' | write $USER
    

    然后,您可以使用以下命令立即运行它cron:

    * * * * * /some/dir/scriptname
    

    你甚至可以这样做:

    who | grep `date -d "now -60 sec" +%R` | awk '{ print $1 " joins us." }' | write $USER
    

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

    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}'
    

    输出逗号,“and”和复数动词一致并删除重复的短语(如果你想在一行上全部替换,你可以用空格替换换行符(最后一个除外)):

    艾伦加入我们

    或者

    比尔和
    克里斯加入我们

    或者

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

    • 8
  2. MikeyB
    2009-10-02T08:09:43+08:002009-10-02T08:09:43+08:00

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

    # minute hour dom mon dow
    * * * * * /path/to/command
    
    • 7
  3. Dan Carley
    2009-10-02T08:08:41+08:002009-10-02T08:08:41+08:00

    sleep 59不会耽误其他任务。

    但它闻起来像危险。如果您需要那种级别的粒度,那么我预测您会遇到困难。

    如果您解释您的要求的原因,您可能会发现有人能够提供更好的治疗方法。

    • 2
  4. Zoredache
    2009-10-02T08:26:59+08:002009-10-02T08:26:59+08:00

    cron 只是不那么准确。如果您需要这种级别的精度,您应该考虑编写一个守护程序。

    您是否考虑过在 auth.log 上使用 tail -f 并不断观察登录?

    • 2
  5. Satanicpuppy
    2009-10-02T08:29:27+08:002009-10-02T08:29:27+08:00

    最好将脚本添加到所有用户的 .login 文件或 .bashrc 或类似文件中。

    1)它只会在有人登录时运行,所以效率更高。2)当有人登录时它会立即运行,所以没有延迟。

    • 1
  6. poolie
    2010-11-23T21:59:04+08:002010-11-23T21:59:04+08:00

    我只想提一下zsh 有一个watch内置函数可以做到这一点。(不过,您必须使用 zsh 并使用您的 shell 才能看到它:它不会在其他终端中弹出。)

    简而言之,将其添加到您的.zshrc:

    watch=notme
    
    • 1

相关问题

  • 每 4 小时运行一次 cron 的正确语法是什么?[复制]

  • 用于 mysql 数据库清理和备份的 crontab

  • Windows cron 作业

  • 使用 crontab 和 /etc/cron.hourly,daily,weekly 的区别

  • crontab ifconfig 什么都不输出

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve