如何防止 cron 作业运行中 wget 创建文本文件?

如何防止 cron 作业运行中 wget 创建文本文件?

我使用下面的方法在 CentOS 7 上安装的 Virtualmin 中每小时运行一个页面

wget https://domain.tld/index.php?page=cron > /dev/null 2>&1

但当 cron 运行时它每小时都会创建以下文件

index.php?page=cron
index.php?page=cron.1
index.php?page=cron.2

ETC。

请让我知道如何避免创建这些文件。

答案1

wget默认情况下,将获取的网页保存在一个文件中,该文件的名称与 URL 末尾的文档相对应(它不会将其发送到其标准输出)。如果该文件已存在,则会在名称末尾添加一个数字。

如果您不想保存文档,请指定您要将其保存在/dev/null

wget -O /dev/null 'https://domain.tld/index.php?page=cron' >/dev/null 2>&1

或者

wget --output-document=/dev/null --quiet 'https://domain.tld/index.php?page=cron'

引用 URL 也是一个好主意,因为 URL 有时包含可能被 shell 解释为文件名通配符或命令终止符的字符(如&[])。

答案2

问题不在于 cron。这是wget的默认行为。要使其重定向到标准输出(这样您就可以将该输出接收到/dev/null),请使用wget -O-.而且,你可能-q。所以:

wget -qO- 'https://domain.tld/index.php?page=cron' > /dev/null 2>&1

不过,我真的不推荐这种方法。如果出现错误怎么办?最好制作一个小脚本来检查结果是否为 http 200 代码,并且内容是否符合预期。

相关内容