Sử dụng công việc CRON để truy cập url?


80

Tôi có một ứng dụng web phải thực hiện các tác vụ lặp lại, Gửi tin nhắn và cảnh báo, tôi đã sử dụng một trang tập lệnh để thực hiện các tác vụ đó khi nó được tải trong trình duyệt, tức là http://example.com/tasks.php và tôi đã bao gồm nó có nghĩa là iframe trong mỗi trang của ứng dụng web của tôi.

Bây giờ tôi muốn thay đổi điều này để sử dụng công việc CRON vì cách tiếp cận đầu tiên có thể dẫn đến hiệu suất kẹt, Vì vậy, làm cách nào để tạo công việc CRON truy cập http://example.com/tasks.php . Tuy nhiên, tôi không muốn công việc CRON này tạo ra các tệp đầu ra chẳng hạn như ngày. *!

Tôi lưu trữ ứng dụng trên dịch vụ lưu trữ chia sẻ cho phép các công việc CRON thông qua cPanel.

Câu trả lời:


219
* * * * * wget -O - http://yoursite.com/tasks.php >/dev/null 2>&1

Điều đó sẽ làm việc cho bạn. Chỉ cần có một wgettập lệnh tải trang.

Sử dụng -O -có nghĩa là đầu ra của yêu cầu web sẽ được gửi đến STDOUT (đầu ra tiêu chuẩn)

bằng cách thêm, >/dev/nullchúng tôi hướng dẫn đầu ra tiêu chuẩn được chuyển hướng đến một lỗ đen. bằng cách thêm, 2>&1chúng tôi hướng dẫn STDERR (lỗi) cũng được gửi đến STDOUT, và do đó tất cả đầu ra sẽ được gửi đến một lỗ đen. (vì vậy nó sẽ tải trang web, nhưng không bao giờ ghi tệp ở bất kỳ đâu)


tất cả các dấu hoa thị vào lúc bắt đầu là gì
Ashkan Mobayen Khiabani

@AshkanMobayenKhiabani Chúng là một phần của cú pháp cron: nncron.ru/help/EN/working/cron-format.htm
Mitch Dempsey

1
Giải pháp duy nhất phù hợp với tôi là Raspbian Stretch Lite. Hoàn hảo! : D
that-ben

4
Một lưu ý: bạn nên trích dẫn URL, nếu nó chứa một truy vấn, nó có thể không hoạt động mà không có mọi thứ được trích dẫn.
jackJoe

24

Bạn không cần chuyển hướng, chỉ sử dụng

* * * * * wget -qO /dev/null http://yoursite.com/tasks.php

1
Tại sao không cần chuyển hướng?
Bradley Flood

1
-q|--quiet Turn off Wget's output.
Diego Torres Milano

1
lệnh của bạn cũng sử dụng chuyển hướng nhưng ở dạng khác -qO / dev / null, phải không?
Pavel Nazarov

Nói đúng ra, không phải là một chuyển hướng như I / O chuyển hướng là một điều vỏ
Diego Torres Milano

21

Bạn có thể sử dụng curlnhư trong chủ đề này

Đối với những người lười biếng:

*/5 * * * * curl --request GET 'http://exemple.com/path/check.php?param1=1'

Điều này sẽ được thực hiện sau mỗi 5 phút.


10

Bạn cũng có thể sử dụng dòng lệnh cục bộ php-cli:

* * * * * php /local/root/path/to/tasks.php > /dev/null

Nó nhanh hơn và giảm tải cho máy chủ web của bạn.


7

tôi sử dụng lệnh này

wget -q -O /dev/null "http://example.com/some/cron/job.php" > /dev/null 2>&1

Nhiệm vụ cron:

* * * * * wget -q -O /dev/null "http://example.com/some/cron/job.php" > /dev/null 2>&1

1
Điều này cần một số giải thích, nhưng nó hoạt động rất tốt. Đặc biệt nếu, giống như tôi, bạn có ký hiệu và trong URL của mình. Đặt url bên trong dấu ngoặc kép là một giải pháp. Tại sao bạn đặtt / dev / null trước url?
Gfra54

2
Đây có lẽ là câu trả lời muộn nhưng không bao giờ là quá muộn. Lý do là: / dev / null là một đối tượng hệ thống tập tin đặc biệt ném mọi thứ được viết vào đó. Chuyển hướng một luồng vào nó có nghĩa là ẩn một đầu ra. Phần 2> & 1 có nghĩa là "chuyển hướng cả đầu ra và luồng lỗi".
Abbas Arif

Ok vậy, nó có nghĩa là nội dung của wget được chuyển hướng đến / dev / null (vì vậy về cơ bản nó bị xóa và bỏ qua)? Cảm ơn
Gfra54

1
Đầu ra có gửi đến / dev / null bị bỏ qua.
Abbas Arif

2

bạn có thể sử dụng điều này cho url với các tham số:

lynx -dump "http://vps-managed.com/tasks.php?code=23456"

lynx có sẵn trên tất cả các hệ thống theo mặc định.


-dump kết xuất nội dung của trang vào tệp. Đó là một tác dụng phụ có thể không mong muốn.
Wicher Visser

2

Bạn có thể sử dụng lệnh này:

links https://www.honeymovies.com

1

Bạn có thể thử điều này: -

    wget -q -O - http://www.example.com/> / dev / null 2> & 1


1

* * * * * wget --quiet https://example.com/file --output-document=/dev/null

Tôi thấy --quietrõ ràng hơn -q, và --output-document=/dev/nullrõ ràng hơn-O - > /dev/null

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.