जड़ के रूप में, मैं सभी उपयोगकर्ताओं के लिए क्रॉस्टैब को कैसे सूचीबद्ध कर सकता हूं?


47

मेरे पास एक स्क्रिप्ट है जो स्वचालित रूप से चलाई जा रही है जिसे मैं अपेक्षित उपयोगकर्ताओं के लिए क्रेस्टब में नहीं पा सकता हूं, इसलिए मैं इसके लिए सभी उपयोगकर्ताओं के क्रॉस्टैब्स को खोजना चाहता हूं।

अनिवार्य रूप से मैं crontab -lसभी उपयोगकर्ताओं के लिए चलना चाहता हूं ।

जवाबों:


77

वैसे यह पटकथा पर निर्भर करता है लेकिन आसानी से आप अपने कॉन्टैब को मूल के रूप में पा सकते हैं

crontab -l -u <user>

या आप स्पूल से क्रॉस्टैब पा सकते हैं जहां सभी उपयोगकर्ताओं के लिए फ़ाइल स्थित है

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

प्रत्येक पंक्ति की शुरुआत में छपे उपयोगकर्ता नाम के साथ सभी उपयोगकर्ताओं के क्रॉस्टैब दिखाने के लिए:

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

1
बहुत बढ़िया, / var / स्पूल / cron / crontabs में देख / अच्छी तरह से काम किया, धन्यवाद!
अत्यधिक अनियमित

1
crontab -e -u <user>संपादित करने के लिए यह भी काम करता है
vladkras

/var/spool/cron/<user>मेरे सेंटोस 7 होस्ट पर।
बॉब स्टीन

5

एक लाइनर जो सभी उपयोगकर्ताओं को सूचीबद्ध करता है और हर उपयोगकर्ता के लिए क्रॉन प्रिंट करता है:

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

यह समाधान:

  • एक प्रणाली विशिष्ट crontab पथ (जैसे /var/spool/cron/crontabs/बनाम) जानने की आवश्यकता नहीं है/var/spool/cron/
  • उन उपयोगकर्ताओं के लिए "अनाथ" क्रोन अर्थात क्रोन की सूची नहीं देंगे, जो अब मौजूद नहीं हैं (और इस तरह प्रभावी ढंग से निष्पादित नहीं होते हैं)

नोट: यह काम करता है shलेकिन नहीं bash
तिवारी

0

RHEL / OEL में आप सभी उपयोगकर्ताओं द्वारा बनाई गई क्रोन नौकरियों को सूचीबद्ध कर सकते हैं:

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

रूट का क्रोनोजर देखने के लिए:

#cat root

Crontab (1) इंटरफ़ेस (कमांड) का उपयोग किया जाना चाहिए, क्योंकि यह crontab डेटाबेस के समवर्ती संपादन से बचाता है।
डिर्क
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.