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 / 问题 / 619542
Accepted
nulltek
nulltek
Asked: 2014-08-12 05:05:46 +0800 CST2014-08-12 05:05:46 +0800 CST 2014-08-12 05:05:46 +0800 CST

将 wget 输出通过管道传输到 cron 中的 /dev/null

  • 772

我在我的 crontab 中每 5 分钟运行一次以下命令,以保持 Phusion Passenger 活着。

*/5 * * * * wget mysite.com > /dev/null 2>&1

当我运行它时,它会在站点 url 上执行 wget,将 STDOUT/STDERR 路由到 /dev/null。当我从命令行运行它时,它工作正常并且不会在我的主目录中生成 index.html 文件。

当它从 cron 运行时,它每五分钟创建一个新的 index.html 文件,给我留下大量我不想要的索引文件。

我的语法对于运行 cron 作业是否不正确?从命令行它可以正常工作,但从 cron 它会在我的主目录中生成一个 index.html 文件。

我确定我犯了一个简单的错误,如果有人可以提供帮助,将不胜感激。

linux
  • 5 5 个回答
  • 66299 Views

5 个回答

  • Voted
  1. Best Answer
    kasperd
    2014-08-12T05:20:34+08:002014-08-12T05:20:34+08:00

    你可以这样做:

    */5 * * * * wget -O /dev/null -o /dev/null example.com
    

    这里-O将下载的文件发送到/dev/null并-o记录到/dev/null而不是 stderr。这种方式根本不需要重定向。

    • 78
  2. Nacht
    2014-08-12T06:03:46+08:002014-08-12T06:03:46+08:00

    您需要实际下载内容还是只收到 200 OK?如果您只需要让服务器处理请求,为什么不简单地使用--spider参数呢?

    • 20
  3. Peter Lamby
    2014-08-12T05:14:31+08:002014-08-12T05:14:31+08:00

    我会使用以下内容:

    /5 * * * * wget -O - mysite.com > /dev/null 2>&1
    

    该-O -选项确保将获取的内容发送到标准输出。

    • 10
  4. Volker Siegel
    2014-08-17T18:04:46+08:002014-08-17T18:04:46+08:00

    您说您只需要在评论中回复“200 OK”。

    这允许解决方案比
    wget -O /dev/null -o /dev/null example.com. 这个想法不是以某种方式丢弃输出,而是根本不创建任何输出。

    您只需要响应意味着下载到本地文件 index.html 中的数据首先不需要下载。
    在 HTTP 协议中,“GET”命令用于下载文档。要以除了实际下载文档之外的所有方式访问文档,有一个特殊的命令“HEAD”。
    当使用 'GET' 完成此任务时,文档会在本地下载并丢弃。使用“HEAD”可以满足您的需要,它不会首先传输文档。根据定义,它总是会返回与“GET”相同的结果代码。

    使用该方法的语法HEAD有点奇怪wget:我们需要使用 option --spider。在这种情况下,它只是做我们想做的事——使用“HEAD”而不是“GET”访问 URL。
    我们可以使用选项-q(quiet)wget不输出有关其功能的详细信息。

    结合它,wget既不会向 stderr 输出任何内容,也不会保存文档。

    wget -q --spider 'http://example.com/'

    退出代码告诉我们请求是否成功:

    $ wget -q --spider 'http://example.com/'
    $ echo $?
    0
    $ wget -q --spider 'http://example.com/nonexisting'
    $ echo $?                                          
    8
    

    对于 中的命令crontab,在这两种情况下都没有输出的事实意味着您可以再次使用没有输出作为错误指示。

    您的示例命令将更改为:

    */5 * * * * wget -q --spider mysite.com
    

    这与 具有相同的优点wget -O /dev/null -o /dev/null example.com。另一个优点是日志输出和文档输出不会生成,而是在本地生成和丢弃。或者当然最大的区别是避免下载然后丢弃文件,index.html.

    • 7
  5. user237113
    2014-08-12T08:50:49+08:002014-08-12T08:50:49+08:00

    让 Phusion 乘客活着。

    可能你的问题应该是关于这个的,网页上说:

    一个快速而强大的 Web 服务器和应用程序服务器,用于

    这不应该需要任何保活脚本。

    否则,kasperd 的解决方案是完美的。

    • 3

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

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

    • 9 个回答
  • Marko Smith

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

    • 3 个回答
  • Marko Smith

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

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +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