আমার কাছে একটি স্ক্রিপ্ট রয়েছে যা আমি কমান্ড লাইন থেকে চালানোর সময় কাজ করে, তবে যখন আমি এটির সাথে সময় নির্ধারণ করি তখন আমি 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
অনুমতি ভেবে যে এটি যে কেউ ব্যবহার করতে দেবে (ক্রোন সহ)। যদি এটি সেন্টোস 6.2 এ ইমকে সহায়তা করে