我使用下面的方法在 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 代码,并且内容是否符合预期。