Kịch bản KShell bỏ qua các lệnh khi được lên lịch trong cron


0

Tôi có một kịch bản Kshell thực thi chương trình java.

/path/to/java -jar jarfile.jar some parameters > log
Same line 5 times with different parameters appending output to log file.
cat log | mail -s email@email.com

Vấn đề tôi gặp phải là khi tôi đặt tập lệnh này vào cron chỉ dòng cuối cùng lấy tệp nhật ký và gửi email được thực thi. Tất cả các dòng yêu cầu chức năng thực tế ở trên được bỏ qua. Tôi nhận được một email trống vào thời gian dự kiến ​​cron, nhưng kịch bản sẽ mất khoảng 1 giờ.

Nhưng khi tôi chạy tập lệnh bằng tay, nó hoạt động tốt.

Câu trả lời:


1

Tôi đã kiểm tra các thư điện tử cho vấn đề. Để "không thể truy cập jarfile.jar", tôi đã thêm đường dẫn đầy đủ vào tập lệnh và cho "cat: 0652-050 Không thể mở / path / to / log", tôi đã tạo tệp nhật ký trước khi sử dụng lệnh touch. Bây giờ kịch bản của tôi trông như thế này.

touch /path/to/log
/path/to/java -jar /path/to/jarfile.jar some parameters > /path/to/log
Same line 5 times with different parameters appending output to log file.
cat /path/to/log | mail -s email@email.com

Tôi đã biết đưa ra con đường tuyệt đối là chìa khóa để tránh những loại vấn đề này.


0

Đó là vấn đề "cron cũ với môi trường rất đơn giản". Khi bạn chạy tập lệnh của mình trong trình bao của riêng bạn, các quy trình bạn bắt đầu nằm trong một môi trường được thiết lập bởi hồ sơ của bạn. Tuy nhiên, công việc định kỳ của bạn bắt đầu trong một môi trường rất cơ bản, thiếu một loạt các biến và thông tin đường dẫn. Trên thực tế, điều này có thể được đoán bằng cách tìm trong cron mail gửi về các lần chạy của nó hoặc nhật ký toàn cầu của cron daemon.

Khi bạn sử dụng ksh, tôi khuyên bạn nên tìm nguồn .kshrc hoặc .profile ở đầu tập lệnh:

. /home/yourid/.kshrc
. /home/yourid/.profile

Cảm ơn, tôi sẽ ghi nhớ điều này, nhưng tôi đã giải quyết vấn đề bằng cách đưa ra đường dẫn đầy đủ cho tệp jar và nhật ký. Tôi tìm thấy vấn đề bằng cách nhìn vào các thư điện tử.
Weqaar Mohammed
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.