công việc cron xóa / xóa tập tin


1

Tôi đang cố gắng thiết lập một công việc định kỳ để xóa một tập tin, tôi đang sử dụng giao diện plesk, lệnh là:

* * * * 1-7 rm /mypath/file_name_to_delete

Điều này nên được thực hiện mỗi phút, phải không? Nó dường như không hoạt động.

cron 

1
"dường như không hoạt động" là không đủ mô tả. tập tin có bị xóa không? kiểm tra thư của người dùng chạy nó, nó nói gì?
dùng31894

Nó không được gỡ bỏ. Không chắc chắn về việc kiểm tra thư, tôi đang xem qua giao diện Plesk, không có tùy chọn nào để nhập thư hoặc người dùng đang chạy - đó sẽ là tôi, nhưng tôi không nhận được thư nào. Nó có thể là một điều quyền? Tôi có nên liên hệ với ISP của tôi? Cú pháp của tôi là đúng, đúng không?

Câu trả lời:


3

Một số quan sát:

  1. Cột thứ năm của mục crontab có phạm vi từ 0 (Chủ nhật) đến 6 (Thứ bảy), không phải 1-7.
  2. Các thiết lập môi trường trong một công việc định kỳ khá thưa thớt và các tác vụ thường sẽ hoạt động khác với trong vỏ tương tác của bạn. Đó là một cú sút xa, nhưng hãy chắc chắn rằng rmlệnh nằm trong $PATHbiến.
  3. Công việc gỡ lỗi cron là khó khăn. Đôi khi, kết quả đầu ra từ một công việc không được chuyển hướng đến một tệp được gửi đến bạn. Đôi khi không. Kiểm soát nhiều hơn đối với đầu ra của công việc của bạn:

    * * * * * my_cron_job >> /home/me/cron_job.log 2 >> /home/me/cron_job.err
    
  4. Hãy thử một cái gì đó đơn giản để đảm bảo cron đang hoạt động và hoạt động theo cách bạn mong đợi. Cái gì đó như:

    * * * * * /usr/bin/date >> /home/me/cron.test 2>&1
    

    sẽ kiểm tra các chức năng cơ bản. Bạn có thể làm cho nó phức tạp hơn từ đó.


Một số điểm tốt ở đây. Tôi không thể bảo đảm cho tất cả, nhưng đáng để nâng cấp.
pavium

0

câu trả lời của mobrule là một hướng dẫn xử lý sự cố tốt.

Gợi ý bổ sung:

  • Nếu bạn không nhận được bất kỳ thư nào, hệ thống có thể chưa được định cấu hình hoàn chỉnh: Tất cả các triển khai cron (mà tôi biết) sẽ gửi thư đầu ra (stdout & stderr) cho người dùng đã tạo crontab (một số cũng hỗ trợ biến MAILTO để đặt người dùng đó). Sự cố thường xảy ra nếu việc gửi thư cục bộ không được định cấu hình chính xác cho người dùng. Nếu bạn sử dụng cron, luôn đảm bảo gửi thư cục bộ được thiết lập. Hầu hết các bản phân phối Linux sẽ tự động làm điều đó là bạn cài đặt máy chủ thư mặc định của chúng, nó sẽ chuyển thư vào / var / spool / mail / hoặc chuyển tiếp nó đến địa chỉ được cung cấp trong tệp .forwardtrong $ HOME của người dùng. Điều này nên được sửa nếu bạn đang sử dụng cron, nếu không các thông báo lỗi sẽ bị loại bỏ.
  • Nếu bạn chỉ có thể sử dụng Plesk, một số cài đặt được đề cập ở trên có thể không truy cập được đối với bạn (mặc dù chúng phải được đặt bởi nhà cung cấp dịch vụ lưu trữ). Trong trường hợp đó, việc chuyển hướng stdout & stderr sang một tệp là một cách giải quyết tốt, như trong câu trả lời của mobrule.

0

Lệnh tên tệp rm yêu cầu xác nhận 'hoặc' không '. Do đó, lệnh không thể được thực thi mà không cần xác nhận.

Có một lệnh 'rm -f filename' để xóa các tệp mà không cần xác nhận.


Tôi chưa bao giờ thấy việc thực hiện rmyêu cầu xác nhận theo mặc định.
Blacklight Shining
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.