Tôi đã thiết lập một công việc định kỳ:
20 * * * * /usr/bin/sh /home/lucky/myfile.sh
Vấn đề chính là tại thời điểm lịch trình, có một lỗi: "thư đã được gửi đến / var / spool / mail / lucky".
Nội dung của myfile.sh là:
mkdir jh
cd jh
Tôi đã thiết lập một công việc định kỳ:
20 * * * * /usr/bin/sh /home/lucky/myfile.sh
Vấn đề chính là tại thời điểm lịch trình, có một lỗi: "thư đã được gửi đến / var / spool / mail / lucky".
Nội dung của myfile.sh là:
mkdir jh
cd jh
Câu trả lời:
Điều này không ổn đối với một tập lệnh được đặt làm công việc định kỳ:
mkdir jh
cd jh
Bạn nên cung cấp đường dẫn đầy đủ nơi jh
thư mục phải được tạo. Ngoài ra, trong đường dẫn này, bạn nên có quyền tạo các tệp / thư mục mới.
Ví dụ: tập lệnh của bạn sẽ giống như:
#!/bin/sh
mkdir /home/lucky/jh
cd /home/lucky/jh
Cũng /usr/bin/sh
không phải là con đường đúng cho sh
. Con đường đúng là /bin/sh
. Bạn có thể kiểm tra điều này bằng whereis sh
lệnh. Và ngay cả như vậy, công việc định kỳ của bạn sẽ giống như:
20 * * * * /home/lucky/myfile.sh
Đừng quên làm cho tập lệnh thực thi:
chmod +x /home/lucky/myfile.sh
Đường dẫn mà điều này dường như đang tạo thư mục là /
. Điều này là do crontab
yêu cầu đường dẫn đầy đủ đến thư mục và tệp trong tất cả các tệp mà nó thực thi.
Vì vậy, đường dẫn trong myfile.sh phải là
mkdir <absolutePath>/jh
cd <absolutePath>/jh
20 * * * * /usr/bin/sh /home/lucky/myfile.sh
Dòng này là chính xác mặc dù bạn nên kiểm tra đường dẫn để xem sh có tồn tại ở / usr / bin / sh hay không (sử dụng which sh
để xem đường dẫn nơi sh tồn tại; của tôi là / bin / sh)
Nếu bạn đang vội bắt đầu viết crontab thì liên kết này có những ví dụ khá hay
http: //www.thegeek ware.com/2009/06/15-prreal-crontab-examples/