मैं लिनक्स (उबंटू) 16.04 पर हूं। मेरे पास स्क्रिप्ट का एक सेट है, /etc/cron.daily
जिसमें एनाक्रॉन को संभाला गया है। वे हर दिन ठीक-ठाक दौड़ते थे लेकिन मैंने देखा कि वे हाल ही में नहीं चल रहे थे। मुझे यकीन नहीं है कि यह एक अद्यतन या कुछ और के कारण है। यह मुझे पागल कर रहा है क्योंकि मैंने हर चीज की कोशिश की है जो मैं परिणाम प्राप्त किए बिना सोच सकता हूं। यहाँ मैंने अभी तक जाँच की है:
1) grep "Nov 22" /var/log/syslog | grep "cron.daily" -B 5 -A 5
:
Nov 22 06:24:47 ubuntu16 dbus[816]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Nov 22 06:24:47 ubuntu16 systemd[1]: Started Network Manager Script Dispatcher Service.
Nov 22 06:24:47 ubuntu16 nm-dispatcher: req:1 'dhcp4-change' [enp1s0]: new request (1 scripts)
Nov 22 06:24:47 ubuntu16 nm-dispatcher: req:1 'dhcp4-change' [enp1s0]: start running ordered scripts...
Nov 22 06:25:01 ubuntu16 CRON[6455]: (root) CMD (cupsenable HP-HP-OfficeJet-Pro-8710)
**Nov 22 06:25:01 ubuntu16 CRON[6456]: (root) CMD (test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ))**
Nov 22 06:30:01 ubuntu16 CRON[6485]: (root) CMD (cupsenable HP-HP-OfficeJet-Pro-8710)
Nov 22 06:35:01 ubuntu16 CRON[6513]: (root) CMD (cupsenable HP-HP-OfficeJet-Pro-8710)
Nov 22 06:39:01 ubuntu16 CRON[6536]: (root) CMD ( [ -x /usr/lib/php/sessionclean ] && /usr/lib/php/sessionclean)
Nov 22 06:40:01 ubuntu16 CRON[6583]: (root) CMD (cupsenable HP-HP-OfficeJet-Pro-8710)
Nov 22 06:45:01 ubuntu16 CRON[6612]: (root) CMD (cupsenable HP-HP-OfficeJet-Pro-8710)
तो ऐसा प्रतीत होता है कि cron.daily स्क्रिप्ट चल रही है या कम से कम anacron इसे चलाने की कोशिश करता है और इसमें कोई त्रुटि नहीं है। मैंने भी जाँच की और cron.daily ने हर दिन के लिए syslog में एक लॉग प्रविष्टि की तरह यह होना चाहिए।
2) मैंने सुनिश्चित किया कि मेरी स्क्रिप्ट निष्पादन योग्य थीं ls -l /etc/cron.daily/
:
-rwxr-xr-x 1 root root 139 Nov 20 16:24 bingbot
-rwxr-xr-x 1 root root 142 Nov 20 16:24 bingbotb
-rwxr-xr-x 1 root root 142 Nov 20 16:25 bingbotc
3) मैं भी में एक लाइन जोड़ा /etc/cron.daily/bingbot
मेरी स्क्रिप्ट के लिए कॉल उस तारीख यह सिर्फ यकीन है कि यह मेरी स्क्रिप्ट के साथ एक समस्या नहीं था बनाने के लिए भाग गया साथ एक फ़ाइल बनाने से पहले ( echo "Time: $(date). BINGREWARDS SCRIPT RAN." >> /home/user/bingbot.txt
) बहरहाल, अगले दिन यह निर्माण नहीं किया bingbot.txt
तो मुझे पता है कि यह नहीं चला।
4) मैंने अपनी स्क्रिप्ट को मैन्युअल रूप से चलाया /etc/cron.daily/bingbot
और इसने पूरी तरह से काम किया और तारीख के साथ एक फ़ाइल बनाई।
5) मेरी स्क्रिप्ट को sudo परमिशन की जरूरत नहीं है।
6) की सामग्री /etc/cron.daily/bingbot
:
#!/bin/sh
echo "Time: $(date). BINGREWARDS SCRIPT RAN." >> /home/toshiba/bingbot.txt
python /home/user/Desktop/BingRewards/mainpy
7) अद्यतन की कोशिश की चल anacron मैन्युअल sudo run-parts /etc/cron.daily
सफलतापूर्वक मेरी स्क्रिप्ट भाग गया है। दिलचस्प है ... लॉग इन में मुझे:
Nov 22 17:01:14 ubuntu16 anacron[15605]: Anacron 2.3 started on 2017-11-22
Nov 22 17:01:14 ubuntu16 anacron[15605]: Can't open timestamp file for job cron.daily: Permission denied
Nov 22 17:01:14 ubuntu16 anacron[15605]: Aborted
इसके समाप्त होने के बाद मैं sudo run-parts /etc/cron.daily
फिर से भागा और इसने वह त्रुटि नहीं दी; इसने कहा कि Nov 22 17:35:55 ubuntu16 anacron[16777]: Updated timestamp for job cron.daily' to 2017-11-22
शायद यह एक अनुमति त्रुटि थी और यह काम करना शुरू कर देगा। लेकिन इस अनुमति समस्या के कारण क्या हो सकता है?
UPDATE2 एनाक्रॉन आज भी स्क्रिप्ट चलाने में विफल रहा। ऊपर लॉग इन के समान "अनुमति अस्वीकृत" त्रुटि। इसके अलावा, लाइन को /etc/crontab
एनाक्रॉन को रूट की तरह निष्पादित करना चाहिए:
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
अद्यतन 3 मेरे कंप्यूटर को रिबूट करने के बाद समस्या ~ 3 दिनों के लिए चली गई लेकिन फिर से दिखाई दी। 25 तारीख को syslog में कहा गया कि cron.daily ने समाप्त कर दिया है जो अजीब व्यवहार की तरह लगता है। हालांकि 26 तारीख को यह काम करने लगा था क्योंकि इसने sloglog में कहा था कि इसने टाइम स्टैम्प को अपडेट कर दिया था। 27 तारीख को यह चलाने में पूरी तरह से विफल रहा। यह पागल है। मैं यह पता नहीं लगा सकता कि यह क्या कारण है।
क्या कारण हो सकता है कि यह मेरी स्क्रिप्ट को नहीं चलाता है?
cron
एक अतिरिक्त शेल लॉन्च करके काम किया, sleep
जो उनके बीच कॉल के साथ कार्यों को चलाता है। वह उत्तर नहीं, जिसे आप ढूंढ रहे हैं, लेकिन यह तब तक काम करता है जब तक आप cron
समस्याओं को जमीन पर नहीं चलाते । वास्तव में, मेरे घर में रहने वाले अनुसूचक इतनी अच्छी तरह से काम करता है कि मैंने कभी भी कार्यों को वापस स्विच नहीं किया cron
, हालांकि मैंने तब से अन्य कार्यों को सफलतापूर्वक जोड़ा है cron
। इसके लायक ये किसके माध्यम से जोड़े गए थे crontab -e
, नहीं /etc/cron.daily
।