मेरे पास एक स्क्रिप्ट है जो काम करता है जब मैं इसे कमांड लाइन से चलाता हूं, लेकिन जब मैं इसे शेड्यूल करता हूं तो मुझे 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 में मदद करता है