আসুন ক্রন চাকরির বাস্তব জীবনের কিছু উদাহরণ দেখি।
- ধরা যাক, আপনি একটি ওয়েবসাইটের মালিক এবং আপনি আপনার ওয়েবসাইটের সকল ব্যবহারকারীকে প্রতিদিন একটি ইমেইল পাঠাতে চান। আপনাকে যা করতে হবে তা হল, একটি ইমেইল পাঠানোর স্ক্রিপ্ট লিখুন এবং প্রতিদিন সেই স্ক্রিপ্টটি চালানোর জন্য একটি ক্রন জব সেট করুন।
- ধরা যাক, আপনি একটি বিজ্ঞাপনী সংস্থার মালিক এবং আপনি সমস্ত বিজ্ঞাপনদাতাদের স্মরণ করিয়ে দিতে চান যাদের ব্যালেন্স রিচার্জ করার জন্য 5 ডলারের নিচে। আপনাকে কেবল একটি স্ক্রিপ্ট লিখতে হবে যা সমস্ত বিজ্ঞাপনদাতার ভারসাম্য পরীক্ষা করে এবং যখন এটি 5 ডলারের নিচে থাকে, তখন এটি বিজ্ঞাপনদাতার মোবাইল নম্বর বা ইমেইলে একটি বিজ্ঞপ্তি পাঠাবে। তারপরে প্রতি 5 থেকে 10 মিনিট বা প্রতি ঘন্টা স্ক্রিপ্ট চালানোর জন্য একটি ক্রন কাজ সেট করুন।
লিনাক্সে ক্রোন জব এর আরো অনেক ব্যবহার আছে।
এই নিবন্ধে, আমি আপনাকে দেখাব কিভাবে লিনাক্সে প্রতি মিনিটে ক্রন কাজ চালানো যায়। আমি বিক্ষোভের জন্য ডেবিয়ান 9 স্ট্রেচ ব্যবহার করব। কিন্তু আপনি আপনার পছন্দের যে কোন আধুনিক লিনাক্স ডিস্ট্রিবিউশন ব্যবহার করতে পারেন। চল শুরু করি.
লিনাক্সে, আপনাকে হতে হবে না মূল ক্রন কাজ চালানোর জন্য। আপনি যেকোন ব্যবহারকারী হিসেবে ক্রন জব চালাতে পারেন। লিনাক্সের প্রতিটি ব্যবহারকারী একটি ব্যবহার করতে পারেন crontab ক্রন কাজ তাদের নিজস্ব সেট চালানোর জন্য ফাইল।
ডিফল্টরূপে, একজন ব্যবহারকারীর একটি নেই crontab লিনাক্সে ফাইল। আপনি একটি তৈরি করতে পারেন crontab নিম্নলিখিত কমান্ড দিয়ে ফাইল করুন:
$crontab-এবং
আপনি যদি প্রথমবার এই কমান্ডটি চালাচ্ছেন, তাহলে আপনাকে তালিকা থেকে একটি টেক্সট এডিটর বেছে নিতে বলা উচিত। আমি বাছাই করব ন্যানো , ডিফল্ট এক। আপনি আপনার পছন্দ মত একটি বাছাই করতে পারেন। একবার হয়ে গেলে, টিপুন ।
দ্য crontab ফাইলটি তৈরি করা উচিত (যদি ইতিমধ্যে উপলব্ধ না হয়) এবং আপনার প্রিয় পাঠ্য সম্পাদকের সাথে খোলা উচিত। এখন আপনি এই ফাইলের শেষে আপনার নিজের ক্রন কাজ যোগ করতে পারেন এবং একবার আপনি খুশি হলে, এটি সংরক্ষণ করুন এবং পাঠ্য সম্পাদক থেকে বেরিয়ে আসুন।
প্রতি মিনিটে একটি কমান্ড চালানোর সিনট্যাক্স:
এর বাক্য গঠন crontab ফাইলটি নিম্নরূপ:
মিনিট ঘন্টা দিনঅফমাস মাসের দিন অফওয়েক কমান্ডটোরুনএখানে,
- মিনিট হতে পারে 0 প্রতি 59 ।
- ঘন্টা এটি ও হতে পারে 0 প্রতি 59 ।
- dayOfMonth হতে পারে ঘ প্রতি 31 ।
- মাস হতে পারে ঘ প্রতি 12 ।
- সপ্তাহের দিন হতে পারে 0 প্রতি 7 । 0 এবং 7 মানে রবিবার, ঘ মানে সোমবার, 2 মানে মঙ্গলবার ইত্যাদি।
চালানোর জন্য a commandToRun প্রতি মিনিটে কমান্ড করুন, আপনাকে এটিতে লিখতে হবে crontab ফাইলটি নিম্নরূপ:
* * * * *commandToRunপ্রতি মিনিটে একটি ক্রব কাজ চালানো:
এখন যেহেতু আমরা তত্ত্বগুলি জানি, আসুন একটি সহজ স্ক্রিপ্ট যোগ করি timer.sh প্রতি crontab ফাইল এবং দেখুন কিভাবে এটি পরিচালনা করবেন।
মধ্যে timer.sh স্ক্রিপ্ট, আমি শুধুমাত্র কোড নিম্নলিখিত লাইন আছে। এটি কেবল একটি নতুন ফাইল তৈরি করে /home/shovon/bin/timer.log (যদি ইতিমধ্যে বিদ্যমান না থাকে) এবং এটিতে তারিখ কমান্ডের আউটপুট যুক্ত করে।
এখন আমাদের স্ক্রিপ্ট যোগ করা যাক crontab এবং এটি নিম্নলিখিত লাইন দিয়ে প্রতি মিনিটে চলতে দিন:
* * * * * /বাড়ি/shovon/আমি/timer.sh
একবার আপনি সংরক্ষণ করুন crontab ফাইল এবং টেক্সট এডিটর থেকে বেরিয়ে আসুন, নতুন crontab ফাইল ইনস্টল করা উচিত।
এক মিনিট পার হওয়ার পর, একটি নতুন ফাইল timer.log পছন্দসই ডিরেক্টরিতে তৈরি করা হয় যেমন আপনি নীচের স্ক্রিনশটের চিহ্নিত বিভাগে দেখতে পারেন।
থেকে timer.log লগ ফাইল, এটা স্পষ্ট যে স্ক্রিপ্ট timer.sh প্রতি মিনিটে চলে।
ক্রন জবস থেকে ত্রুটি ধরা:
একটি ক্রন কাজ থেকে ত্রুটিগুলি ধরার জন্য, আপনি ত্রুটিগুলি পাঠাতে পারেন a ত্রুটি লগ ফাইল এবং স্বাভাবিক আউটপুট access.log উদাহরণস্বরূপ ফাইল। অবশ্যই আপনি যে কোন ফাইলকে নাম দিতে পারেন।
এটি প্রদর্শনের জন্য, আমি আমার স্ক্রিপ্ট পরিবর্তন করেছি timer.sh একটু খানি. এখন ত্রুটিগুলি পাঠানো হয় ত্রুটি লগ ফাইল /home/shovon/bin ডিরেক্টরি এবং আউটপুট পাঠানো হয় access.log মধ্যে /home/shovon/bin ডিরেক্টরি।
প্রথমে /tmp/i_must_be_here ফাইলটি বিদ্যমান নেই, তাই আমি ত্রুটিটি পাই ত্রুটি লগ ফাইল যেমন আপনি দেখতে পারেন।
দ্য access.log এই মুহূর্তে ফাইল খালি।
এখন আমি ফাইল তৈরি করতে যাচ্ছি /tmp/i_must_be_here
এবং আপনি দেখতে পাচ্ছেন, আউটপুট হল access.log এখন ফাইল করুন।
আপনি যদি চান, আপনি একই ফাইলের আউটপুট এবং ত্রুটিগুলি পুন redনির্দেশ করতে পারেন:
আপনি দেখতে পারেন, STDIN এবং STDERR আউটপুট পাঠানো হয় out.log ফাইল
আবার কাজ চালানোর আগে শেষ কাজটি শেষ হওয়া নিশ্চিত করা:
এটি কাজ করার জন্য, আপনি কাজ শুরু হওয়ার ঠিক পরে একটি অস্থায়ী ফাইল তৈরি করতে পারেন এবং এটি শেষ হওয়ার আগে এটি সরিয়ে ফেলতে পারেন। তারপর আপনি কাজ শুরু করার আগে অস্থায়ী ফাইল আছে কিনা তা পরীক্ষা করতে পারেন। যদি এটি হয়, আপনি চাকরি থেকে বেরিয়ে যেতে পারেন এবং অস্থায়ী ফাইলটি অনুপলব্ধ হলেই কাজটি চালাতে পারেন।
এই সহজ স্ক্রিপ্টটি ঠিক তাই করে।
আপনি দেখতে পারেন, timer.pid ফাইল তৈরি করা হয়।
পড়া access.log ফাইল প্রমাণ করে যে পূর্ববর্তী ক্রন কাজ শেষ হওয়ার আগে ক্রন কাজ চলবে না। আপনি দেখতে পাচ্ছেন, এটি 01:32:01 এ দৌড়েছে এবং পরের বার এটি 01:33:01 এ চালানো উচিত ছিল, কিন্তু তা হয়নি। পরিবর্তে, এটি প্রায় 3 মিনিট পরে 01:35:01 এ দৌড়েছে।
সহজ ডিবাগিংয়ের জন্য ক্রন জব আউটপুট সংগঠিত করা:
আপনার ক্রোন কাজটি ডিবাগ করা সহজ করার জন্য আপনি আউটপুটগুলিকে সুন্দরভাবে ফরম্যাট করতে পারেন।
এটি কীভাবে করা যায় তার একটি উদাহরণ নিম্নলিখিত স্ক্রিপ্টে দেওয়া হয়েছে।
আপনি দেখতে পাচ্ছেন, লগ ফাইলে আউটপুট, ত্রুটি এবং সাফল্যের বার্তাগুলি সুন্দরভাবে মুদ্রিত হয়।
আপনি ক্রন কাজ এবং শেল স্ক্রিপ্ট দিয়ে আশ্চর্যজনক কাজ করতে পারেন। আমি এখানে কিছু ধারণা প্রদর্শন করেছি। কিন্তু আকাশ তোমার সীমা। আপনার যেকোনো ধারণা নিয়ে নির্দ্বিধায় পরীক্ষা করুন। এই নিবন্ধটি পড়ার জন্য ধন্যবাদ।