【问题标题】:How to queue a shell command if [conditon] is not fulfilled?如果 [condition] 不满足,如何对 shell 命令进行排队?
【发布时间】:2014-09-24 00:27:55
【问题描述】:

我每 5 分钟从 shell 脚本(来自 cron)上传数据到 MySQL 数据库。 但如果我的连接中断,它不会将其插入到我的数据库中。

我希望脚本一次又一次地尝试插入(例如每 30 分钟一次),直到成功为止。

如果我的连接中断超过 5 分钟,我希望这些请求排在队列中,并在我再次连接时继续。

我该怎么做? 示例代码:

#!/bin/bash
cputemp=$(somecommands...)
/usr/bin/mysql -h 127.0.0.1  -u admin -pwpassword -e "USE logs; INSERT INTO cpu (cputemp) VALUES ('$cputemp');"

【问题讨论】:

  • 将脚本分成两部分。一个将您的值写入文件,然后另一个执行数据库上传。这样,如果数据库关闭,您只需继续增长您的文件。如果数据库上传成功,则删除文件并重新开始。
  • 应该可以,谢谢你的提示!

标签: mysql linux shell cron queue


【解决方案1】:

您可以通过将该逻辑写入您的代码来实现。应该很容易检测到它无法检测到,让它休眠,然后再试一次。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-04
    • 2015-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-17
    • 1970-01-01
    相关资源
    最近更新 更多