Tôi đang chạy Máy chủ thống nhất Zero XIV và đang cố gắng sử dụng cron để chạy tập lệnh php cứ sau 15 phút. Khi được chạy thủ công, tập lệnh sẽ thực hiện những gì nó phải làm, đó là cập nhật các giá trị trong cơ sở dữ liệu. Tuy nhiên, cron dường như không bao giờ thực sự thực thi tập lệnh.
Nhật ký cron chỉ ra rằng crontab có đường dẫn chính xác và đang thực thi.
10/06/2021 12:53:08 - Chạy OK --- C:\Users\myuser\Zero\UniServerZ\www\database\cronUpdate.php
Cấu hình cron đang sử dụng đường dẫn tuyệt đối.
[cập nhật]
bắt đầu = 2021-05-14 8:00:00
kỳ = 300
đường dẫn = \www\database\cronUpdate.php
giới thiệu = 1623329287
Đây là tệp php tôi đang cố thực thi. Về cơ bản, nó lấy tất cả các tên máy chủ trong cơ sở dữ liệu mysql và gửi chúng đến một chức năng cập nhật. Chức năng cập nhật lấy thông tin API về các đơn vị và cập nhật cơ sở dữ liệu mysql tương ứng mà không trả về.
include_once '../database/dbh.php';
# Nhận tất cả tên máy chủ
$sql = "CHỌN tên máy chủ TỪ đơn vị;";
$result = mysqli_query($conn, $sql);
while($row = mysqli_fetch_array($result)) {
# Thêm tất cả các đơn vị vào dữ liệu biểu mẫu sẽ được gửi
$data['formData'][] = $row['hostname'];
}
$fields = http_build_query($data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://localhost/database/dbUpdate.php");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
$cResult = curl_exec($ch);
curl_close($ch);
Tôi đã thử sử dụng một url trong cấu hình nhưng nó cũng không hoạt động. Tôi cũng đã thử ghi tệp cập nhật vào nhật ký khi thực thi và không có gì được ghi, điều này cho tôi biết rằng cron không thể thực thi tập lệnh này. Bất kỳ ý tưởng nào về lý do tại sao cron không thể thực thi tập lệnh này? Có đáng để viết kịch bản này bằng ngôn ngữ khác không?
Đối với bản ghi, máy chủ đang chạy php 8.0.3 và mysql 8.0.23