Là root, làm thế nào tôi có thể liệt kê các crontabs cho tất cả người dùng?


47

Tôi có một tập lệnh được chạy tự động mà tôi không thể tìm thấy trong crontab cho người dùng mong đợi, vì vậy tôi muốn tìm kiếm tất cả các crontab của người dùng cho nó.

Về cơ bản tôi muốn chạy một crontab -lcho tất cả người dùng.

Câu trả lời:


77

Cũng phụ thuộc vào tập lệnh nhưng dễ dàng bạn có thể tìm thấy crontab của mình với quyền root với

crontab -l -u <user>

Hoặc bạn có thể tìm thấy crontab từ spool nơi đặt tệp cho tất cả người dùng

cat /var/spool/cron/crontabs/<user>

Để hiển thị tất cả các crontabs của người dùng với tên người dùng được in ở đầu mỗi dòng:

cd /var/spool/cron/crontabs/ && grep . *

1
Tuyệt vời, tìm kiếm trong / var / spool / cron / crontabs / hoạt động độc đáo, cảm ơn!
Rất bất thường

1
crontab -e -u <user>để chỉnh sửa nó cũng hoạt động
vladkras

/var/spool/cron/<user>trên máy chủ Centos 7 của tôi.
Bob Stein

5

Một lớp lót liệt kê tất cả người dùng và in cron cho mọi người dùng:

for user in $(getent passwd | cut -f1 -d: ); do echo $user; crontab -u $user -l; done

Giải pháp này:

  • Không yêu cầu biết đường dẫn crontab cụ thể của hệ thống (ví dụ: /var/spool/cron/crontabs/vs/var/spool/cron/
  • Không liệt kê các crons "mồ côi", tức là các crons cho người dùng không còn tồn tại nữa (và do đó không được thực thi hiệu quả)

Lưu ý: điều này làm việc cho shnhưng không bash.
Tiw

0

Trong RHEL / OEL, bạn có thể liệt kê các công việc định kỳ được tạo bởi tất cả người dùng:

#cd /var/spool/cron/
#ls -1
root
oracle
user1

Để xem cronjobs gốc:

#cat root

Giao diện (lệnh) crontab (1) nên được sử dụng, vì nó bảo vệ chống lại việc chỉnh sửa đồng thời cơ sở dữ liệu crontab.
Dirk
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.