2010-02-23 31 views
12

Tôi có một tập lệnh php tôi muốn chạy từng phút để xem có bài đăng tin tức dự thảo cần được đăng hay không. Tôi đã sử dụng "wget" cho cron lệnh trong cPanel, nhưng tôi nhận thấy (sau một vài ngày) rằng điều này đã tạo ra một tập tin trống trong thư mục chính mỗi lần nó chạy. Có điều gì tôi cần phải ngăn chặn điều đó xảy ra không?Công việc Cron tạo tệp trống mỗi khi nó chạy

Cảm ơn.

+0

Tên tệp là gì và nó có dán quanh sau khi hoàn thành công việc không? –

+0

tôi gặp phải một số vấn đề. tôi đã tạo cron job bởi cpanel. tập tin mà tôi đã chạy cùng một tập tin tên đã được tạo trong root –

Trả lời

30

Khi wget chạy, theo mặc định, nó tạo ra tệp đầu ra, từ những gì tôi cần nhớ.

Bạn có thể cần sử dụng một số tùy chọn của wget, để chỉ định tệp nào cần ghi đầu ra - và sử dụng /dev/null làm tệp đích (Đó là "tệp đặc biệt" sẽ "ăn" mọi thứ bạn có thể ghi nó)


Đánh giá từ người đàn ông wget, tùy chọn -O hay --output-file sẽ là một ứng cử viên tốt:

-O file
--output-document=file
Các tài liệu sẽ không được ghi vào các tệp thích hợp, nhưng tất cả sẽ được nối với nhau và được ghi vào tệp.

như vậy, bạn có thể cần phải sử dụng một cái gì đó như thế này:

wget -O /dev/null http://www.example.com/your-script.php 


Và, btw, đầu ra của kịch bản chạy từ crontab thường được chuyển hướng đến một logfile - nó luôn luôn có thể giúp đỡ.

Something như thế này có thể giúp đỡ, về điều đó:

wget -O /dev/null http://www.example.com/your-script.php >> /YOUR_PATH_logfile.log 

Và bạn cũng có thể muốn chuyển hướng đầu ra lỗi đó sang file (có thể hữu ích, nhằm giúp gỡ rối, một ngày họ gặp khó khăn):

wget -O /dev/null http://www.example.com/your-script.php >>/YOUR_PATH/log-output.log 2>>/YOUR_PATH/log-errors.log 
+4

"-q" sẽ tắt đầu ra của Wget nếu bạn không cần bất kỳ đầu ra nào. – Danny

+0

@Danny -q hiển nhiên không phải lúc nào cũng đủ. def máy chủ của tôi cần thiết -O/dev/null trong đó. Cũng lưu ý rằng -o là KHÔNG tương đương. Vốn "O" phải quan trọng trên một số hoặc tất cả các hệ thống. –

+0

'-q' không hoạt động. Cron vẫn tạo các tệp tạm thời trên máy chủ. Tôi có cần khởi động lại cron sau khi thực hiện các thay đổi trong cron đang chạy không? Nếu có, thì làm thế nào để làm điều đó? –

Các vấn đề liên quan