每 10 分钟安排一次任务:获取 URL 'https://site.com/folder/cron.php' 获取状态:404 输出:未找到文件

每 10 分钟安排一次任务:获取 URL 'https://site.com/folder/cron.php' 获取状态:404 输出:未找到文件

我是初学者,一直在网上寻找解决方案,但没有成功。

获取 URL:https://site.com/folder/cron.php/ 我最近租用了服务器。操作系统 Ubuntu 18.04.5 LTS,Plesk Obsidian 版本 18.0.32 我有一个网站。

该公司不提供支持。

我已经安排了域任务:

获取 URL:https://site.com/folder/cron.php

此 URL(php 脚本)在浏览器中完美运行。

但是当我使用计划任务时,出现错误:

Task "https://site.com/folder/cron.php" completed with error in 0 seconds, output:

Url 'https://site.com/folder/cron.php' fetched
Status: 404
Output:
File not found.

该文件位于:

/var/www/vhosts/site.com/httpdocs/folder/cron.php(相同:未找到文件)

我尝试了网上找到的几个命令,但也找不到该文件(文件未找到)

在服务器 crontab 文件中,我有:

A) 在站点文件中:/var/spool/cron/crontabs,我没有路径。我认为这不正常,对吧?

# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/opt/psa/tmp/sssY3Y4RF installed on Sun Jan 10 06:48:03 2021)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
MAILTO=""
SHELL="/bin/sh"
10 * * * * /usr/bin/php -f '/var/www/vhosts/site.com/httpdocs/_cron/cron.php'

B)在 root: 的文件中/etc/crontab,我有:

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

我在网上看到说在根文件中添加命令是好的。

有人能帮助我吗?

附言:我没有经验。我在网上搜索了一下,找到了更多信息。我是一名工业程序员,但我仍然从大学学到一些东西。

多谢

答案1

我建议的第一件事是绝不手动编辑计算机上的各种 crontab 文件,除非你知道确切地你在做什么。根本没有必要。这也是为什么 中的第一行/var/spool/cron/crontabsDO NOT EDIT THIS FILE

其次,10 * * * *您拥有的意思是“每小时整点 10 分钟运行一次”。

您需要执行以下操作:

  1. 将 crontab 文件恢复到原来的状态
  2. 用于crontab设置新的计划活动:sudo crontab -e
    笔记: 您可能会被要求输入管理员密码
  3. 在文件末尾添加以下行:
*/10 * * * * /usr/bin/wget --no-check-certificate -q "https://site.com/folder/cron.php" -O /root/cronout.txt

事情是这样的:

元素 行动
*/10 * * * * 每 10 分钟、每小时、每天、每周、每月运行一次
/usr/bin/wget 用于wget调用PHP文件
--no-check-certificate 忽略 SSL 证书检查(可选)
-q “安静地”运行,不输出所有常见的状态信息
URL 要获得什么
-O 输出到文件
/root/cronout.txt 记录输出的文件。如果您不想保留最新的输出,可以将其替换/root/cronout.txt/dev/null

这应该可以完成您需要它做的事情。

答案2

您好,感谢您的回答和帮助......

附言:也许可以帮助其他像我一样拥有自己的服务器的人。

我的操作系统是 Ubuntu 18.04.5 LTS 产品是 Plesk Obsidian 版本是 18.0.32

其他人可能有所不同。答案很简单,一旦你找到解决方案 :))

我的网站分配了 2 个 IP,但域名仅解析到 1 个 IP

我在 /etc/hosts 中禁用了记录:#2a01:4f8:121:338::2 site.com site....

而且工作超级好

非常感谢并祝您有愉快的一天!

相关内容