ในฐานะที่เป็น root ฉันจะแสดงรายการ crontabs สำหรับผู้ใช้ทั้งหมดได้อย่างไร


46

ฉันมีสคริปต์ที่ทำงานโดยอัตโนมัติซึ่งฉันไม่พบใน crontab สำหรับผู้ใช้ที่คาดหวังดังนั้นฉันต้องการค้นหา crontabs ของผู้ใช้ทั้งหมดเพื่อหา

เป็นหลักฉันต้องการเรียกใช้crontab -lสำหรับผู้ใช้ทั้งหมด

คำตอบ:


76

ขึ้นอยู่กับสคริปต์ แต่คุณสามารถค้นหา crontab ของคุณได้อย่างง่ายดาย

crontab -l -u <user>

หรือคุณสามารถค้นหา crontab จากสปูลซึ่งเป็นที่ตั้งของไฟล์สำหรับผู้ใช้ทั้งหมด

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

วิธีแสดง crontabs ของผู้ใช้ทั้งหมดโดยพิมพ์ชื่อผู้ใช้ที่จุดเริ่มต้นของแต่ละบรรทัด:

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

1
เยี่ยมมากมองใน / var / spool / cron / crontabs / ทำงานได้ดีขอบคุณ!
ผิดปกติมาก

1
crontab -e -u <user>เพื่อแก้ไขมันทำงานได้ดี
vladkras

/var/spool/cron/<user>บนโฮสต์ Centos 7 ของฉัน
Bob Stein

5

หนึ่งซับซึ่งแสดงผู้ใช้ทั้งหมดและพิมพ์ cron สำหรับผู้ใช้ทุกคน:

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

วิธีนี้:

  • ไม่จำเป็นต้องรู้เส้นทาง crontab เฉพาะของระบบ (เช่น/var/spool/cron/crontabs/vs/var/spool/cron/
  • จะไม่แสดง crons "เด็กกำพร้า" คือ crons สำหรับผู้ใช้ที่ไม่มีอยู่อีกต่อไป (และจะไม่ถูกดำเนินการอย่างมีประสิทธิภาพ)

หมายเหตุ: งานนี้สำหรับแต่ไม่sh bash
Tiw

0

ใน RHEL / OEL คุณสามารถแสดงรายการงาน cron ที่สร้างโดยผู้ใช้ทั้งหมด:

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

วิธีดู cronjobs ของรูท:

#cat root

ควรใช้อินเตอร์เฟส crontab (1) (คำสั่ง) เนื่องจากป้องกันการแก้ไขฐานข้อมูล crontab พร้อมกัน
Dirk
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.