Điểm:0

Cron không chạy đúng lệnh

lá cờ de

Tôi đã cài đặt HP ProLiant Utilities trên Máy chủ Ubuntu của mình. Sử dụng lệnh shell sau đây, tôi có thể lưu đầu ra của trạng thái RAID vào tệp nhật ký:

Sudo ssacli ctrl tất cả hiển thị cấu hình > /var/logs/raid.log

Sau đó, tôi đã cố gắng tạo một công việc định kỳ để hàng ngày tệp nhật ký được ghi đè bằng trạng thái. Công việc định kỳ của tôi trông như thế này:

30 15 * * * ssacli ctrl all show config > /var/logs/raid.log #Log Trạng thái RAID

Công việc định kỳ này dành cho người dùng root.

Vấn đề là, nếu tôi truy cập Webmin và chạy công việc định kỳ này bằng cách nhấn "Lưu & Chạy ngay" thì tệp nhật ký sẽ được tạo. Nhưng nếu tôi để công việc định kỳ chạy vào thời điểm được chỉ định, thì tệp nhật ký sẽ được tạo nhưng trống.

Tôi nghĩ rằng nó có thể liên quan đến thực tế là tôi cần chạy ssacli ở chế độ sudo

Ai có thể giúp tôi không?

Cảm ơn

lá cờ uz
Jos
Quy tắc đầu tiên của `cron`: luôn cung cấp đường dẫn đầy đủ. Trong trường hợp này, bạn có thể cần phải viết `/usr/bin/ssacli` thay vì `ssacli`. Có thể tìm thấy `ssacli` thực thi ở đâu đó ngoài `/usr/bin/`; bạn có thể tìm ra vị trí với ` which ssacli`.
John Roberts avatar
lá cờ de
Thật tuyệt vời. cảm ơn. Điều đó là vậy đó. Tôi chỉ cần đặt đường dẫn đầy đủ tới ssacli, đó là /usr/sbin/ssacli
Điểm:1
lá cờ it

Công việc chạy qua cron không chạy trong cùng một môi trường thời gian chạy mà bạn có trên máy tính để bàn của mình. Không ai trong số bạn CON ĐƯỜNG thay đổi hoặc cài đặt biến môi trường khác từ ~/.bashrc được tự động lan truyền đến bạn cron Công việc. Ví dụ, không có $HIỂN THỊ, vì vậy các chương trình GUI cần được xử lý đặc biệt (đọc người đàn ông xhost).

Người ta có thể đặt các biến môi trường cho tất cả mọi người cron công việc trong crontab tập tin Đọc người đàn ông 5 crontab.

Nhìn vào kết quả của echo "=== id ==="; id;echo "=== set ==="; set; echo "=== env ==="; env | sort;echo "=== bí danh ==="; bí danh trong mỗi môi trường của bạn.

Kể từ khi chỉ huy một phần của crontab theo mặc định, dòng được giải thích bởi /bin/sh, có cú pháp đơn giản hơn /bin/bash, tôi khuyên bạn nên có chỉ huy là một cuộc gọi đến một đánh đập tập lệnh (có thể thực thi, được gắn kết, bắt đầu bằng #!/bin/bash) thiết lập môi trường, sau đó gọi chương trình mong muốn.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.