मेरे sysadmin ने मेरी मशीन पर क्रोन नौकरियों का एक समूह स्थापित किया है। मैं जानना चाहता हूं कि वास्तव में किस समय के लिए निर्धारित है। मुझे वह सूची कैसे मिल सकती है?
मेरे sysadmin ने मेरी मशीन पर क्रोन नौकरियों का एक समूह स्थापित किया है। मैं जानना चाहता हूं कि वास्तव में किस समय के लिए निर्धारित है। मुझे वह सूची कैसे मिल सकती है?
जवाबों:
आपके लिनेक्स सिस्टम की स्थापना कैसे की जाती है, इसके आधार पर आप इसमें देख सकते हैं:
/var/spool/cron/*
(उपयोगकर्ता crontabs)/etc/crontab
(सिस्टम-वाइड क्रॉस्टैब)भी, कई distros है:
/etc/cron.d/*
इन कॉन्फ़िगरेशन में समान सिंटैक्स है /etc/crontab
/etc/cron.hourly
, /etc/cron.daily
, /etc/cron.weekly
,/etc/cron.monthly
ये केवल निर्देशिकाएं हैं जिनमें निष्पादनयोग्य होते हैं जो प्रति घंटा, दैनिक, साप्ताहिक या मासिक, उनकी निर्देशिका नाम के अनुसार निष्पादित होते हैं।
उसके ऊपर, आप नौकरियों (चेक /var/spool/at/*
), एनाक्रोन ( /etc/anacrontab
और /var/spool/anacron/*
) और शायद दूसरों को भूल सकते हैं।
/etc/cron.daily
। वह daily
फाइल कैसे काम करती है? दैनिक कार्य किस समय चलेंगे? मेरी मशीन पर वे दोपहर के आसपास चलने लगते हैं, लेकिन यह मेरे sysadmin को बताना चाहते हैं कि इसके बजाय आधी रात को कैसे बदलना है।
/etc/crontab
मेरे उबंटू सिस्टम से कहा जाता है , यह है: 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
जिसका अर्थ है सुबह 6:25।
cronie
डेमॉन कॉन्फ़िगरेशन का उपयोग करने वालों का ध्यान रखता है /etc/anacrontab
।
/var/cron
भी।
अधिकांश क्रोन (जैसे विक्सी-क्रोन - डेबियन / उबंटू डिफॉल्ट, क्रॉनी - फेडोरा डिफॉल्ट, सोलारिस क्रोन ...) के साथ आप वर्तमान उपयोगकर्ता के लिए अनुसूचित क्रोन नौकरियों की सूची प्राप्त करते हैं:
$ crontab -l
या के माध्यम से किसी अन्य उपयोगकर्ता के लिए
# crontab -l -u juser
सभी उपयोगकर्ताओं के लिए crontabs प्राप्त करने के लिए आप सभी उपयोगकर्ताओं पर लूप कर सकते हैं और इस कमांड को कॉल कर सकते हैं।
वैकल्पिक रूप से, आप स्पूल फ़ाइलों को देख सकते हैं। आमतौर पर, वे के तहत सहेजे जाते हैं /var/spool/cron
, उदाहरण के लिए vcron निम्नलिखित निर्देशिका के लिए
/var/spool/cron/crontabs
सभी उपयोगकर्ताओं के सभी कॉन्फ़िगर किए गए crontabs शामिल हैं - रूट उपयोगकर्ता को छोड़कर जो सिस्टम-वाइड क्रॉस्टैब के माध्यम से नौकरियों को कॉन्फ़िगर करने में सक्षम है, जो यहां स्थित है
/etc/crontab
साथ cronie (Fedora / CentOS पर डिफ़ॉल्ट), वहाँ एक है .d
प्रणाली क्रॉन नौकरियों, साथ ही के लिए शैली config निर्देशिका:
/etc/cron.d
(हमेशा की तरह, .d
निर्देशिका कॉन्फ़िगरेशन प्रविष्टियों को बनाए रखने को सरल बनाती है जो विभिन्न पैकेजों का हिस्सा हैं।)
सुविधा के लिए, अधिकांश वितरण एक निर्देशिका भी प्रदान करते हैं जहां लिंक / संग्रहीत स्क्रिप्ट समय-समय पर निष्पादित होती हैं, उदाहरण के लिए:
/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly
उन लिपियों का समय पर निष्पादन आमतौर पर run-parts
सिस्टम कोंट्राब में प्रविष्टियों के माध्यम से या एनाक्रॉन के माध्यम से प्रबंधित किया जाता है ।
साथ systemd (जैसे फेडोरा पर, CentOS 7, ...) समय-समय पर काम निष्पादन अतिरिक्त के माध्यम से विन्यस्त किया जा सकता टाइमर इकाइयों । सक्षम सिस्टम टाइमर के माध्यम से प्रदर्शित किया जा सकता है:
$ systemctl list-timers
ध्यान दें कि रूट के पास के उपयोगकर्ताओं के पास उपयोगकर्ता सिस्टमड इंस्टेंसेस चल सकते हैं जहां टाइमर कॉन्फ़िगर किए गए हैं, साथ ही साथ। उदाहरण के लिए, फेडोरा पर, डिफ़ॉल्ट रूप से, प्रत्येक उपयोगकर्ता के लिए एक उपयोगकर्ता प्रणाली का उदाहरण शुरू किया जाता है जो वर्तमान में लॉग इन है। उन्हें निम्न के रूप में पहचाना जा सकता है:
$ ps aux | grep 'systemd[ ]--user'
उन उपयोगकर्ता टाइमर के माध्यम से सूचीबद्ध किया जा सकता है:
$ systemctl --user list-timers
list-timers
कमांड जारी करने का एक विकल्प टाइमर यूनिट फाइलों (पैटर्न:) की खोज *.timer
करना है और सामान्य सिस्टम और उपयोगकर्ता सिस्टमडाइम निर्देशिका निर्देशिकाओं में उनके लिए प्रतीकात्मक लिंक हैं:
$ find /usr/lib/systemd/ /etc/systemd -name '*.timer'
$ find /home '(' -path '/home/*/.local/share/systemd/user/*' \
-o -path '/home/*/.config/systemd/*' ')' \
-name '*.timer' 2> /dev/null
(सामान्य सेवा इकाइयों के साथ के रूप में, एक टाइमर इकाई को सही systemd config निर्देशिका में एक प्रतीकात्मक लिंक बनाने के माध्यम से सक्षम किया जाता है।)
यह सभी देखें:
crontab -l -u root
(क्योंकि मैं उन क्रोनॉजर्स के बारे में जानना चाहता हूं जो रन के बारे में जानना चाहते हैं root
), और यह कहता है कि मेरे पास उपयोग करने के लिए विशेषाधिकार नहीं हैं -u
।
root
उपयोगकर्ता के रूप में कॉल करना होगा ।
cronie
, जैसा कि फेडोरा और आरएचईएल 6 में भेज दिया गया है, उन लोगों को संदर्भित नहीं करते हैं /etc/crontab
, बल्कि उपयोग करते हैं /etc/anacrontab
। मैं किसी भी वास्तविक कार्यान्वयन के बारे में गलत हो सकता हूं जो किसी भी कॉन्फ़िगरेशन फ़ाइल में इनका संदर्भ नहीं देता है। (लेकिन फिर, मैं या तो नीचे नहीं आया .... मैं सिर्फ कह रहा हूं '।)
दिए गए उपयोगकर्ता के लिए सभी क्रोनों को सूचीबद्ध करना।
crontab -u उपयोगकर्ता नाम -l;
सभी उपयोगकर्ताओं के लिए सभी क्रोनों को सूचीबद्ध करने के लिए
इसे सुपर यूजर के रूप में चलाएं
#!/bin/bash
#List all cron jobs for all users
for user in `cat /etc/passwd | cut -d":" -f1`;
do
crontab -l -u $user;
done
root
apache
/etc/crontab
/etc/cron.d
/etc/cron.[timeframe]