2009-06-18 13 views
11

मुझे समय-समय पर चलाने के लिए Bash फ़ाइल की आवश्यकता है, और यह रूट के रूप में होना चाहिए।क्या क्रॉसब में रूट के रूप में बैश फ़ाइल चलाने के लिए संभव है?

क्या यह संभव है?

[[email protected] nutch-0.9]# locate crontab 
/etc/crontab 
/etc/sysconfig/crontab 
/usr/bin/crontab 
/usr/share/man/man1/crontab.1.gz 
/usr/share/man/man1p/crontab.1p.gz 
/usr/share/man/man5/crontab.5.gz 
/usr/share/vim/vim71/syntax/crontab.vim 
[[email protected] nutch-0.9]# 
+1

आप सर्वरफॉल्ट पर यह प्रश्न पूछने का भी प्रयास कर सकते हैं। –

उत्तर

18

हां, बस इसे रूट उपयोगकर्ताओं 'crontab पर जोड़ें; crontab -e कमांड चलाएं।

क्रॉन स्टोर की जगहें थोड़ी सी बिज़ारे हो सकती हैं, इसलिए crontab -e कमांड का उपयोग करें जो सुनिश्चित करेगा कि यह सही जगह पर है, और मेरा मानना ​​है कि यह वाक्यविन्यास की जांच करता है।

+0

मैंने सभी crontab फ़ाइलों को सूचीबद्ध किया है, जिसका मतलब है कि मुझे संशोधित करना चाहिए? – omg

+3

सीधे एक crontab फ़ाइल को संशोधित करने के बजाय, whatisisname आपको "crontab -e" कमांड का उपयोग करने का सुझाव दे रहा है, जो सही crontab संपादित करेगा। – ephemient

11

तुम बस

crontab -e 
रूट के रूप में

कर सकते हैं।

0

मुझे विश्वास है कि रूट की क्रॉन्टाब रूट में सभी प्रविष्टियां रूट के रूप में चलती हैं। आप इसे केवल बैश स्क्रिप्ट को क्रिया के रूप में आमंत्रित कर सकते हैं और यह वही करना चाहिए जो आप चाहते हैं। (Sudo के माध्यम से) ऐसा करने का

-1

एक ही रास्ता:

  1. आप उपयोगकर्ता क्रेडेंशियल्स
  2. "
  3. जोड़ें sudo/path/to/आदेश में प्रवेश के बिना चलाने के लिए खाते के लिए sudo prilvileges सेट करने की आवश्यकता "(बिना") रूट के रूप में आदेश को चलाने के लिए आप यह भी आदेश में पैरामीटर जोड़ सकते
4

बस /etc/crontab में प्रवेश के लिए उपयोगकर्ता के रूप में root निर्दिष्ट करें:।।

0 0 * * * root somecommand 

वैकल्पिक रूप से आप रूट के रूप में crontab -e का उपयोग कर रूट के व्यक्तिगत क्रोंटैब में भी कमांड जोड़ सकते हैं।

+0

धन्यवाद, बीटीडब्ल्यू, क्या आप मुझे बता सकते हैं कि अन्य crontab फाइलें क्या हैं? – omg

+1

/usr/bin में crontab फ़ाइल निष्पादन योग्य है जो एक संपादक खोलता है यदि आप "crontab -e" टाइप करते हैं। नीचे दिए गए फाइल/usr/share/man मैन्युअल पेज हैं जिन्हें आप "मैन क्रोंटैब" टाइप करते समय प्राप्त करते हैं। /usr/share/vim*/sytax/crontab.vim विम के लिए विशेष वाक्यविन्यास हाइलाइटिंग है (crontab फ़ाइलों के लिए सक्रिय)। – sth

+0

यह मेरे लिए काम नहीं किया। मुझे संदेश/बिन/sh मिला: 1root: – Lumbee

4

कोई फर्क नहीं पड़ता कि आपको रूट उपयोगकर्ता खाते तक पहुंच की आवश्यकता होगी।

  1. आप,, जड़ crontab में जोड़ सकते हैं सुझाव के रूप में
  2. आप sudo का उपयोग कर सकते सुझाव के रूप में
  3. आप setuid बिट का उपयोग कर सकते हैं। सेट्यूड बिट के साथ मुद्दा यह है कि इसे एक संकलित कार्यक्रम होना चाहिए। यदि इसे संकलित किया गया है, तो आप "4755 chmod" कर सकते हैं और फ़ाइल के मालिक को रूट पर सेट कर सकते हैं, और यह रूट के रूप में चलाएगा। यदि यह संकलित नहीं किया गया है, तो आप सी (या किसी अन्य संकलित प्रोग्रामिंग भाषा) में एक छोटा रैपर लिख सकते हैं जो केवल आपकी स्क्रिप्ट को कॉल करता है, और रैपर पर सेट्यूड करता है, और सुनिश्चित करता है कि रैपर रूट के स्वामित्व में है।

मेरी सलाह? रूट crontab का प्रयोग करें। यह वही है जो इसके लिए है।

इसके अलावा, वहाँ crontab में कोई उपयोगकर्ता प्रविष्टि के रूप में sth ने सुझाव दिया ... वाक्य रचना है:

# .---------------- minute (0 - 59) 
# | .------------- hour (0 - 23) 
# | | .---------- day of month (1 - 31) 
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ... 
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat 
# | | | | | 
# * * * * * command to be executed 

आप रूट के रूप में crontab में कुछ दर्ज करना चाहते हैं, तो बस अपने रूट खाते में प्रवेश, " crontab -e "और voila ... रूट crontab।

+0

क्रॉन के कुछ (पुराने) संस्करणों में, क्रॉन्टाब में निर्दिष्ट उपयोगकर्ता है। Http://www.unixgeeks.org/security/newbie/unix/cron-1.html देखें – jschmier

संबंधित मुद्दे

 संबंधित मुद्दे