công việc cron được đặt cho các thời điểm khác nhau, nhưng thực hiện cùng một lúc


1

Tôi có một tệp mà tôi đã tải vào crontab với các công việc sau và crontab -l báo cáo như sau:

# runs daily at 2:00 am and 2:05 am
30 12 * * * /usr/bin/wget -q -O temp.txt http://<host-url>/cronjob/script1.php 35 12 * * * /usr/bin/wget -q -O temp.txt http://<host-url>/cronjob/script2.php

Phiên bản sạch hơn của đầu ra ở trên

# runs daily at 2:00 am and 2:05 am

30 12 * * * /usr/bin/wget -q -O temp.txt http://<host-url>/cronjob/script1.php 
35 12 * * * /usr/bin/wget -q -O temp.txt http://<host-url>/cronjob/script2.php

Tôi đã tuân theo các quy tắc theo trang web này:

Cách thiết lập công việc định kỳ

Ban đầu tôi gặp vấn đề với việc hiển thị cả hai công việc trong danh sách crontab. Tôi đã giải quyết vấn đề đó bằng cách thiết lập tất cả các công việc trên một dòng như chi tiết trong phần:

Xử lý các thông báo lỗi từ Crontab

Khi tôi có cả hai công việc được liệt kê chính xác, tôi đã kiểm tra để xác minh rằng chúng thực hiện đúng. Lúc 12:31 tôi lưu ý rằng cả hai tập lệnh được thực thi, cho script1 và script2 đều sửa đổi các bảng khác nhau trong cơ sở dữ liệu mysql.

Tại sao điều này xảy ra? Làm cách nào tôi có thể lên lịch để script2 thực thi vào thời gian đã lên lịch của nó?

Tôi nhận ra đây không phải là một vấn đề lớn như vậy nhưng tôi tò mò muốn biết.

Cám ơn sự giúp đỡ của bạn.


"Nếu bình luận và mã không đồng ý, cả hai có thể sai" ... Nhận xét trong crontab của bạn nói 2:00 sáng và 2:05 sáng. Hoặc sửa hoặc xóa nhận xét đó. Điều đó nói rằng, tôi chưa bao giờ thấy cron chạy mọi thứ không đúng lúc. Kiểm tra nhật ký hệ thống để xem cron ghi nhật ký những gì và khi nào nó thực thi. Ngoài ra, bạn nói "giải quyết vấn đề đó bằng cách thiết lập tất cả các công việc trên một dòng"; Bạn có chắc chắn crontab đã được sửa đổi như bạn hiển thị?
wurtel

Các ý kiến ​​không ảnh hưởng đến nó, tôi chỉ để nó theo cách đó để tôi có thể nhớ lại thời gian tôi muốn các công việc hoàn thành một cách hiệu quả. Tôi có một giải pháp mà tôi sắp đăng.
mcv

Câu trả lời:


1

Tôi đã mở công việc định kỳ để được chỉnh sửa bằng cách sử dụng:

crontab -e

Và thực hiện chỉnh sửa bằng Nano.

Tôi đã thêm một ký tự dòng mới giữa các công việc và điều này đã khắc phục vấn đề.

Vì vậy, tệp được tạo ban đầu được thực hiện trên máy Windows là FTP đến máy chủ. Tôi đã kiểm tra tệp và nó được tạo trong Notepad ++ mà không có phần mở rộng, cũng đã thử với phần mở rộng là .TXT. Ký tự EOL được đặt thành UNIX.

Bất kể kịch bản, khi tải tệp, cả hai công việc được thực hiện vào thời gian dự kiến ​​đầu tiên. Sau khi tôi sửa đổi các công việc định kỳ bằng cách sử dụng chỉnh sửa ở trên. Các công việc định kỳ được thực hiện tại thời điểm đã lên lịch (còn cách nhau 5 phút).


Hấp dẫn! Vì vậy, nó là một vấn đề với chính tập tin. +1 để khám phá nó.
fedorqui
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.