मेरे पास एक स्क्रिप्ट है जो काम करता है जब मैं इसे कमांड लाइन से चलाता हूं, लेकिन जब मैं इसे शेड्यूल करता हूं तो मुझे cron
त्रुटियां मिलती हैं कि यह फाइलें या कमांड नहीं मिल सकती हैं। मेरा सवाल दुगना है:
जब मैं एक क्रोन जॉब का उपयोग
crontab -e
करता हूं, तो क्या यह मेरी उपयोगकर्ता आईडी का उपयोग इसकी अनुमति के आधार के रूप में करता है? या यह किसी प्रकार की क्रोन उपयोगकर्ता आईडी और उससे संबंधित अनुमतियों का उपयोग करता है?जब एक क्रोन नौकरी शुरू की जाती है, तो कार्यशील निर्देशिका क्या होती है? क्या यह वह निर्देशिका है जहां मैं स्क्रिप्ट को चलाने के लिए निर्दिष्ट करता हूं, या एक अलग निर्देशिका?
यहाँ मेरी क्रोन नौकरी है:
15 7 * * * /home/xxxx/Documents/Scripts/email_ip_script.sh
यहाँ वास्तविक स्क्रिप्ट है:
vIP_ADDR="`curl automation.whatismyip.com/n09230945.asp`"
echo "$vIP_ADDR"
sed "s/IPADDR/$vIP_ADDR/g" template.txt > emailmsg.txt
ssmtp XXXXX@gmail.com < emailmsg.txt
जब मैं अपने mail
द्वारा उत्पादित संदेश को देखता हूं तो मुझे यहां मिलने वाली त्रुटियां हैं cron
:
sed: can't read template.txt: No such file or directory
/home/xxxx/Documents/Scripts/email_ip_script.sh: line 15: ssmtp: command not found
यह नहीं मिल सकता है template.txt
लेकिन यह स्क्रिप्ट के समान निर्देशिका में रहता है। यह भी नहीं चल सकता है ssmtp
, लेकिन मैं अपना उपयोगकर्ता बन सकता हूं। इसे ठीक से काम करने के लिए मुझे क्या याद आ रहा है?
cron
यह स्वयं का होगाPATH
या मैं अपने उपयोगकर्ता की जांच कर सकता हूंPATH
? मैंने ssmtp सेट किया है कि यह स्वयं का हैuser
औरwheel
यह सोचने की अनुमति है कि यह किसी को भी इसका उपयोग करने की अनुमति देगा (क्रोन सहित)। अगर यह Im को CENTOS 6.2 में मदद करता है