ক্রোনজব স্ক্রিপ্ট চালাচ্ছে না


1

আমি আমার বাহ্যিক আইপি ঠিকানা পেতে একটি স্ক্রিপ্ট তৈরি করেছি, এটি পরিবর্তন হয়েছে কিনা তা পরীক্ষা করে দেখুন এবং যদি তা থাকে তবে আমাকে তা জানানোর জন্য আমাকে ইমেল করুন।

এখানে স্ক্রিপ্টটি যথাযথভাবে দেওয়া হয়েছে ip.sh(সার্ভারের হোস্টনামটি "ওডিন"):

#!/bin/sh

# Start by renaming file "current-ip" to "old-ip"
mv -f  /var/www/html/scripts/current-ip  /var/www/html/scripts/old-ip
# Create new "current-ip" with the email's subject line
echo 'Subject: Odin has a new IP address' >> /var/www/html/scripts/current-ip
# Add a blank line
echo '' >> /var/www/html/scripts/current-ip
# Add some text to make the email slightly more readable
echo 'It seems as if a new IP address as been assigned to Odin:' >> /var/www/html/scripts/current-ip
# Get my external IP address and add it to a new line
curl http://ipecho.net/plain -w "\n" >> /var/www/html/scripts/current-ip
# Set permission to make the file readable and writeable
chmod 766 /var/www/html/scripts/current-ip

# Check to see if the newly built "current-ip" matches the old file
if diff /var/www/html/scripts/current-ip /var/www/html/scripts/old-ip >/dev/null ; then
# if it does, do nothing
exit
# Otherwise send that email!
else
  ssmtp -F"Odin" my_emial_address@gmail.com < /var/www/html/scripts/current-ip
fi

সুতরাং এটি পরীক্ষা করার জন্য, আমি বর্তমান-আইপি ফাইলটি অন্য কোনওটিতে সম্পাদনা করতে যাচ্ছি এবং তারপরে স্ক্রিপ্টটি চালাব ./ip.shএবং এটি একটি কবজির মতো কাজ করে, আমার নতুন আইপি ঠিকানাটি কী তা আমাকে "ওডিন" থেকে আমার ইমেলটি পাই। ফ্যান্টাস্টিক।

সুতরাং এখন, আমি একটি সিমিলিংক তৈরি করছি:

ln /var/www/html/scripts/ip.sh /sbin/odinip

এবং এটি চালিয়ে পরীক্ষা করুন odinip। পুরোপুরি কাজ করে।

তারপরে আমি ক্রোনজব তৈরি crontab -e করে নীচের লাইনে প্রবেশ করি:

*/5 * * * * /sbin/odinip

ক্রোন কাজ করছে তা নিশ্চিত করার জন্য আমি নীচের লাইনটি যুক্ত করছি:

*/5 * * * * env > /var/www/html/scripts/env.output

তারপরে current-ipক্রোনজব চালানো হলে কোনও তফাত হবে তা নিশ্চিত করতে আমি আবার ফাইলটি সম্পাদনা করতে যাই ।

তারপর আমি অপেক্ষা এবং অপেক্ষা এবং অপেক্ষা। Env.output ফাইল তৈরি করা হয়েছে, তবে কোনও ইমেল প্রেরণ করা হয়নি।

সিসলগ ( tail -n25 /var/log/syslog) পেয়ে যাচ্ছি:

May  9 13:40:01 odin CRON[7371]: (root) CMD (env > /var/www/html/scripts/env.output)
May  9 13:40:04 odin CRON[7341]: (CRON) info (No MTA installed, discarding output)
May  9 13:40:38 odin crontab[7429]: (root) BEGIN EDIT (root)
May  9 13:40:47 odin crontab[7429]: (root) END EDIT (root)
May  9 13:40:49 odin crontab[7451]: (root) BEGIN EDIT (root)
May  9 13:41:01 odin CRON[7478]: (root) CMD (cd /var/www/html/scripts/ && ./cpuTemp.sh)
May  9 13:41:16 odin rsyslogd-2007: action 'action 17' suspended, next retry is Mon May  9 13:42:46 2016 [try http://www.rsyslog.com/e/2007 ]
May  9 13:41:30 odin crontab[7451]: (root) END EDIT (root)
May  9 13:41:31 odin crontab[7513]: (root) BEGIN EDIT (root)
May  9 13:41:44 odin crontab[7513]: (root) END EDIT (root)
May  9 13:41:46 odin crontab[7548]: (root) BEGIN EDIT (root)
May  9 13:42:01 odin CRON[7587]: (root) CMD (cd /var/www/html/scripts/ && ./cpuTemp.sh)
May  9 13:42:46 odin rsyslogd-2007: action 'action 17' suspended, next retry is Mon May  9 13:44:16 2016 [try http://www.rsyslog.com/e/2007 ]
May  9 13:43:01 odin CRON[7690]: (root) CMD (cd /var/www/html/scripts/ && ./cpuTemp.sh)
May  9 13:43:41 odin crontab[7548]: (root) REPLACE (root)
May  9 13:43:41 odin crontab[7548]: (root) END EDIT (root)
May  9 13:44:01 odin cron[360]: (root) RELOAD (crontabs/root)
May  9 13:44:01 odin CRON[7771]: (root) CMD (cd /var/www/html/scripts/ && ./cpuTemp.sh)
May  9 13:44:18 odin rsyslogd-2007: action 'action 17' suspended, next retry is Mon May  9 13:45:48 2016 [try http://www.rsyslog.com/e/2007 ]
May  9 13:45:01 odin CRON[7849]: (root) CMD (cd /var/www/html/scripts/ && ./cpuTemp.sh)
May  9 13:45:01 odin CRON[7850]: (root) CMD (/home/jim/duckdns/duck.sh >/dev/null 2>&1)
May  9 13:45:01 odin CRON[7851]: (root) CMD (/sbin/odinip)
May  9 13:45:04 odin CRON[7829]: (CRON) info (No MTA installed, discarding output)
May  9 13:45:51 odin rsyslogd-2007: action 'action 17' suspended, next retry is Mon May  9 13:47:21 2016 [try http://www.rsyslog.com/e/2007 ]
May  9 13:46:01 odin CRON[7943]: (root) CMD (cd /var/www/html/scripts/ && ./cpuTemp.sh)

cpuTemp.shআমি সেখানে চালাচ্ছি যে অন্য একটি স্ক্রিপ্ট। মেল ট্রান্সপোর্ট এজেন্ট না থাকার বিষয়ে কিছু হতে পারে? কিন্তু তারপরে কীভাবে এটি কাজ করবে যখন আমি ম্যানুয়ালি এটি চালাব?

আরও তথ্য: সমস্ত কমান্ড চালিত হয় এবং ফাইলগুলি সম্পাদিত হয় এবং রুট হিসাবে ক্রোনটব সম্পাদনা সম্পাদিত হয় এর সবই ঘটছে একটি রসবি পাই 2 চলমান জেসিতে। খুব সম্প্রতি আপডেট হয়েছে এবং আপগ্রেড হয়েছে।


অনেক আগে, আমি একটি সুসই বাক্স উত্তরাধিকার সূত্রে পেয়েছি যার ক্রোন চিনতে পারেনি যে এটির তালিকাগুলি পুনরায় আরম্ভ না করা অবধি পরিবর্তন করা আছে।
গম্বাই স্যান্ডর

উত্তর:


1

কি শান্তি. উত্তর: পুরো পথ ব্যবহার করুন

আমি ভেবেছিলাম আমি ঠিক এটি করেছি, যতক্ষণ না আমি খুঁজে পেয়েছি যে ক্রন্টব থেকে সরাসরি অন্য কেউ এসএমএসটিপি ব্যবহার করতে সমস্যা হয়েছে।

তাদের ছিল:

0 9 * * * ssmtp a@hotmail.com < /home/a/a-msg.txt

এবং এটিতে পরিবর্তন করতে হয়েছিল

0 9 * * * /usr/sbin/ssmtp a@hotmail.com < /home/a/a-msg.txt

যা আপাতদৃষ্টিতে সমস্যার সমাধান করেছে।

আমি, অন্যদিকে বাশ স্ক্রিপ্ট ( ip.sh) দ্বারা লাইনটি সহ ssmtp উল্লেখ করছি :

ssmtp -F"Odin" my_emial_address@gmail.com < /var/www/html/scripts/current-ip

সুতরাং আমি এটি আপডেট

/usr/sbin/ssmtp -F"Odin" my_emial_address@gmail.com < /var/www/html/scripts/current-ip

পরিবর্তিত, বর্তমান-আইপি বিষয়বস্তু elseযদি বিবৃতিতে আগুন চাপায় এবং এটি কাজ করে বলে মনে হয়। আমি যদি অন্য কোনও ত্রুটিগুলি খুঁজে পাই তবে আমি এটি পরীক্ষা করে রাখব এবং আপডেট করব।


0

কমান্ডগুলি কার্যকর করার সময় ক্রোন আপনার পরিবেশ ব্যবহার করে বা মনে রাখে না, এর জন্য পাথ এবং অন্যান্য পরিবেশের ভেরিয়েবলগুলি আপনার প্রত্যাশার মতো নাও হতে পারে।

আপনি ইতিমধ্যে খুঁজে পেয়েছেন বলে মনে হয়, সমস্যাগুলি এড়ানোর সর্বোত্তম উপায় হ'ল ক্রোন থেকে নির্বাহ করা আদেশগুলির সর্বদা সম্পূর্ণ পথ ব্যবহার করা।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.