<পূর্ববর্তী | বিষয়বস্তু | পরবর্তী>
অদ্ভুত এক্সিকিউশন সময় বাছাই করা একটি ভাল ধারণা, কারণ সিস্টেমের কাজগুলি প্রায়শই "রাউন্ড" ঘন্টায় চালানো হয়, যেমন আপনি পরবর্তী বিভাগ 4.4.4 এ দেখতে পারেন। উদাহরণস্বরূপ, কাজগুলি প্রায়ই সকালের ঠিক 1 টায় চালানো হয় (যেমন একটি স্ট্যান্ডার্ড লোকেট ডেটাবেস আপডেট করার জন্য সিস্টেম ইন্ডেক্সিং), তাই 0100 এর সময় প্রবেশ করা আপনার সিস্টেমকে ফায়ার করার পরিবর্তে সহজেই ধীর করে দিতে পারে। একই সময়ে সব কাজ চালানো থেকে বিরত রাখতে, আপনি ব্যবহার করতে পারেন দল কমান্ড, যা সিস্টেমের রিসোর্স ব্যবহারের অত্যধিক বিস্ফোরণ রোধ করে, একটি সমানভাবে ভারসাম্যপূর্ণ উপায়ে সিস্টেমে সারিতে থাকা কাজগুলিকে সারিবদ্ধ করে এবং ফিড করে। আরও তথ্যের জন্য তথ্য পৃষ্ঠাগুলি দেখুন।
4.4.4। ক্রন এবং ক্রন্টাব
ক্রন সিস্টেম দ্বারা পরিচালিত হয় জন্য cron ডেমন এটি সিস্টেম এবং ব্যবহারকারীদের ক্রনট্যাব এন্ট্রি থেকে কোন প্রোগ্রাম এবং কখন সেগুলি চালানো উচিত সে সম্পর্কে তথ্য পায়। শুধুমাত্র রুট ব্যবহারকারীরই সিস্টেম ক্রনট্যাবগুলিতে অ্যাক্সেস রয়েছে, যখন প্রতিটি ব্যবহারকারীর শুধুমাত্র তার নিজস্ব ক্রোন্টাবগুলিতে অ্যাক্সেস থাকা উচিত। কিছু সিস্টেমে (কিছু) ব্যবহারকারীদের ক্রোন সুবিধার অ্যাক্সেস নাও থাকতে পারে।
সিস্টেম স্টার্টআপে ক্রন ডেমন অনুসন্ধান করে / ভার / স্পুল / ক্রোন / ক্রন্টাব এন্ট্রিগুলির জন্য যা অ্যাকাউন্টগুলির নামে নামকরণ করা হয়েছে৷ / Etc / passwd, এটা অনুসন্ধান করে /etc/cron.d/ এবং এটি অনুসন্ধান করে জন্য / etc / নিম্নলিখিতরূপে crontab পরিবর্তন, তারপর কিছু করার আছে কিনা তা পরীক্ষা করতে প্রতি মিনিটে এই তথ্য ব্যবহার করে। এটি ক্রনট্যাব ফাইলের মালিক ব্যবহারকারী হিসাবে কমান্ডগুলি চালায় এবং মালিককে কমান্ডের যে কোনও আউটপুট মেল করে।
ভিক্সি ক্রন ব্যবহার করে সিস্টেমে, প্রতি ঘন্টা, দৈনিক, সাপ্তাহিক এবং মাসিক কাজগুলি আলাদা ডিরেক্টরিতে রাখা হয় জন্য / etc একটি ওভারভিউ রাখতে, স্ট্যান্ডার্ড ইউনিক্স ক্রন ফাংশনের বিপরীতে, যেখানে সমস্ত কাজ একটি বড় ফাইলে প্রবেশ করানো হয়।
একটি Vixie crontab ফাইলের উদাহরণ:
[root@blob /etc]# আরো crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root
বাড়ি=/
# রান-পার্টস
প্রতি ঘন্টায় কার্যকর করার জন্য # কমান্ড
01 * * * * রুট রান-পার্টস /etc/cron.hourly
প্রতিদিন চালানোর জন্য # কমান্ড
02 4 * * * রুট রান-পার্টস /etc/cron.daily
প্রতি সপ্তাহে কার্যকর করার জন্য # কমান্ড
প্রতি মাসে চালানোর জন্য 22 4 * * 0 root run-parts /etc/cron.weekly কমান্ড
42 4 1 * * root run-parts /etc/cron.monthly
[root@blob /etc]# আরো crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root
বাড়ি=/
# রান-পার্টস
প্রতি ঘন্টায় কার্যকর করার জন্য # কমান্ড
01 * * * * রুট রান-পার্টস /etc/cron.hourly
প্রতিদিন চালানোর জন্য # কমান্ড
02 4 * * * রুট রান-পার্টস /etc/cron.daily
প্রতি সপ্তাহে কার্যকর করার জন্য # কমান্ড
প্রতি মাসে চালানোর জন্য 22 4 * * 0 root run-parts /etc/cron.weekly কমান্ড
42 4 1 * * root run-parts /etc/cron.monthly
বিকল্প
আপনি ব্যবহার করতে পারে নিম্নলিখিতরূপে crontab পরিবর্তন -l ক্রনট্যাবগুলি প্রদর্শন করার জন্য কমান্ড।
কিছু ভেরিয়েবল সেট করা হয়, এবং এর পরে প্রকৃত সময়সূচী, প্রতি কাজের জন্য একটি লাইন, 5টি সময় এবং তারিখ ক্ষেত্র দিয়ে শুরু হয়। প্রথম ক্ষেত্রটিতে মিনিট রয়েছে (0 থেকে 59 পর্যন্ত), দ্বিতীয়টি কার্যকর হওয়ার ঘন্টা (0-23), তৃতীয়টি মাসের দিন (1-31), তারপর মাসের সংখ্যা (1-12) , শেষ সপ্তাহের দিন (0-7, 0 এবং 7 উভয়ই রবিবার)। এই ক্ষেত্রের একটি তারকাচিহ্ন ক্ষেত্রের জন্য মোট গ্রহণযোগ্য পরিসীমা উপস্থাপন করে। তালিকা অনুমোদিত; সোমবার থেকে শুক্রবার একটি কাজ সম্পাদন করতে শেষ ক্ষেত্রে 1-5 লিখুন, সোমবার, বুধবার এবং শুক্রবার একটি কাজ সম্পাদন করতে 1,3,5 লিখুন।
তারপরে ব্যবহারকারী আসে যার শেষ কলামে তালিকাভুক্ত প্রক্রিয়াগুলি চালানো উচিত। উপরের উদাহরণটি একটি ভিক্সি ক্রন কনফিগারেশন থেকে যেখানে রুট প্রোগ্রাম চালায় রান-পার্টস নিয়মিত বিরতিতে, বিকল্প হিসাবে উপযুক্ত ডিরেক্টরি সহ। এই ডিরেক্টরিগুলিতে, নির্ধারিত সময়ে কার্যকর করা প্রকৃত কাজগুলি শেল স্ক্রিপ্ট হিসাবে সংরক্ষণ করা হয়, যেমন এই ছোট স্ক্রিপ্ট যা প্রতিদিন ব্যবহৃত ডাটাবেস আপডেট করার জন্য চালানো হয় নির্ণয় কমান্ড প্রয়োগ করুন:
billy@ahost cron.daily]$ cat slocate.cron
#! / বিন / SH
renice +19 -p $$ >/dev/null 2>&1
/usr/bin/updatedb -f "nfs,smbfs,ncpfs,proc,devpts" -e \"/tmp,/var/tmp, /usr/tmp,/afs,/net"
billy@ahost cron.daily]$ cat slocate.cron
#! / বিন / SH
renice +19 -p $$ >/dev/null 2>&1
/usr/bin/updatedb -f "nfs,smbfs,ncpfs,proc,devpts" -e \"/tmp,/var/tmp, /usr/tmp,/afs,/net"
ব্যবহারকারীদের ব্যবহার করে নিরাপদ উপায়ে তাদের ক্রোন্টাবগুলি সম্পাদনা করার কথা নিম্নলিখিতরূপে crontab পরিবর্তন -e আদেশ এটি একজন ব্যবহারকারীকে ভুলবশত তার ক্রন্টাব ফাইলের একাধিক কপি খুলতে বাধা দেবে। ডিফল্ট সম্পাদক হয় vi (অধ্যায় 6 দেখুন, কিন্তু আপনি যেকোনো টেক্সট এডিটর ব্যবহার করতে পারেন, যেমন জিভিআইএম or gedit- র দ্বারা আপনি যদি একটি GUI সম্পাদকের সাথে আরও স্বাচ্ছন্দ্য বোধ করেন।
আপনি যখন প্রস্থান করবেন, সিস্টেম আপনাকে বলবে যে একটি নতুন ক্রন্টাব ইনস্টল করা হয়েছে।
এই crontab এন্ট্রি মনে করিয়ে দেয় ছোট ডেকচি প্রতি বৃহস্পতিবার রাতে তার স্পোর্টস ক্লাবে যেতে:
বিলি:~> crontab -l
# এই ফাইলটি সম্পাদনা করবেন না - মাস্টারটি সম্পাদনা করুন এবং পুনরায় ইনস্টল করুন।
# (/tmp/crontab.20264 20 জুলাই 22:35:14 2003 তারিখে ইনস্টল করা হয়েছে)
বিলি:~> crontab -l
# এই ফাইলটি সম্পাদনা করবেন না - মাস্টারটি সম্পাদনা করুন এবং পুনরায় ইনস্টল করুন।
# (/tmp/crontab.20264 20 জুলাই 22:35:14 2003 তারিখে ইনস্টল করা হয়েছে)
# (ক্রোন সংস্করণ -- $Id: chap4.xml,v 1.28 2007/09/19 12:22:26 বিল এক্সপ্রেস $)
38 16 * * 3 মেইল -s "ক্রীড়া সন্ধ্যা" বিলি
# (ক্রোন সংস্করণ -- $Id: chap4.xml,v 1.28 2007/09/19 12:22:26 বিল এক্সপ্রেস $)
38 16 * * 3 মেইল -s "ক্রীড়া সন্ধ্যা" বিলি
একটি নতুন নির্ধারিত কাজ যোগ করার পরে, সিস্টেম আপনাকে বলবে যে একটি নতুন ক্রন্টাব ইনস্টল করা হয়েছে। আপনার রিস্টার্ট করার দরকার নেই জন্য cron পরিবর্তনগুলি কার্যকর করার জন্য ডেমন। উদাহরণে, ছোট ডেকচি একটি ব্যাকআপ স্ক্রিপ্ট নির্দেশ করে একটি নতুন লাইন যোগ করা হয়েছে:
বিলি:~> crontab -e
45 15 * * 3 মেইল -s "ক্রীড়া সন্ধ্যা" বিলি
4 4 * * 4,7 /home/billy/bin/backup.sh
<--লিখুন এবং প্রস্থান করুন-->
crontab: নতুন crontab বিলি ইনস্টল করা হচ্ছে:~>
বিলি:~> crontab -e
45 15 * * 3 মেইল -s "ক্রীড়া সন্ধ্যা" বিলি
4 4 * * 4,7 /home/billy/bin/backup.sh
<--লিখুন এবং প্রস্থান করুন-->
crontab: নতুন crontab বিলি ইনস্টল করা হচ্ছে:~>
সার্জারির ব্যাকআপ.শ স্ক্রিপ্ট প্রতি বৃহস্পতিবার এবং রবিবার কার্যকর করা হয়. শেল স্ক্রিপ্টিংয়ের পরিচিতির জন্য বিভাগ 7.2.5 দেখুন। মনে রাখবেন যে কমান্ডের আউটপুট, যদি থাকে, ক্রোন্টাব ফাইলের মালিককে মেল করা হয়। যদি কোনো মেল পরিষেবা কনফিগার করা না থাকে, তাহলে আপনি আপনার স্থানীয় মেলবক্সে আপনার কমান্ডের আউটপুট খুঁজে পেতে পারেন,
/var/sool/mail/ , একটি প্লেইন টেক্সট ফাইল।