في المادة السابقة لقد أخبرتك عن cron، وهو برنامج نظام يقوم بتنفيذ المهام تلقائيًا في وقت محدد. الآن سنرى كيفية أتمتة المهام باستخدام Anacron. يسمح لنا Anacron بالتغلب على إحدى نقاط ضعف Cron. إذا كان الكمبيوتر متوقفًا عن التشغيل في الوقت الذي كان من المفترض أن يتم فيه تنفيذ المهمة، فلن يتم تنفيذها مرة أخرى حتى حلول العام التالي وتشغيل الكمبيوتر.
في حالة Anacron، عندما يتم تشغيل الكمبيوتر مرة أخرى، فإنه يقوم بتنفيذ المهام التي كانت معلقة.
كيفية أتمتة المهام باستخدام Anacron
عند بدء تشغيل الكمبيوتر، يبحث Anacron عن آخر مرة تم فيها تنفيذ تعليمة معينة ومدى تكرار إخباره بضرورة تنفيذها. تمامًا كما هو الحال مع Cron، يتم حفظ قائمة المهام في ملف نصي يسمى anacrontab غير الأصلي إلى حد ما. ولكن هناك فرق مهم، في هذه الحالة يتم تحديد التاريخ من خلال تحديد اليوم والتأخير بالدقائق ومعرف المهمة والأمر الذي يجب تنفيذه.
يتحقق Anacron، لكل مهمة، ما إذا كانت قد تم تنفيذها خلال عدد معين من الأيام. هذا العدد من الأيام هو الفترة المحددة لتلك المهمة. إذا لم يتم تشغيله، ينتظر Anacron العدد المطلوب من الدقائق ويقوم بذلك. ثم قم بتسجيل التاريخ، والذي يعتبر بمثابة مؤشر على موعد تشغيله مرة أخرى.
يمكننا العثور على anacron بالاسم أو في حزمة cronie في التوزيعات الرئيسية.
لتشغيله يجب علينا تحديد المعلمات التالية:
-F: تنفيذ المهمة حتى لو لم تكن في التاريخ المحدد.
-أو: يقوم بتغيير تاريخ الوظائف إلى اليوم الحالي ولكن لا يقوم بتنفيذها.
-س: يشير إلى أنه يتم تنفيذ المهمة عند انتهاء المهمة السابقة.
-ن: إنه مثل استخدام المعلمات -fy
-Q: إذا تم استخدامه مع -d فإنه يمنع عرض رسائل الخطأ.
-ر: يخبر Anacron بمكان العثور على قائمة المهام.
-ت: يتحقق من إعدادات قائمة المهام ويعرض رسالة خطأ إذا لزم الأمر.
-S يحدد الدليل الذي يتم تخزين الطوابع الزمنية فيه.
في ملف Anacrontab يجب علينا إضافة المعلمات التالية
SHELL=/bin/bash: يحدد أنه يجب استخدام Bash كمترجم للأوامر.
ميلتو= بعد علامة المساواة، نشير إلى عنوان البريد الإلكتروني لإرسال تقرير الخطأ إلينا. على الرغم من أنه في توزيعات سطح المكتب ليس من الضروري القيام بذلك.
المسار=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin: يتيح لنا هذا عدم الحاجة إلى إضافة الطريق إلى كل مهمة.
الصيغة الخاصة بمهمة Anacrontab هي أمر period delay job id حيث:
الفترة: هو التردد الذي يجب أن يتم به العمل. يمكن الإشارة إليه كفترة (@daily، أو @weekly، أو @monthly لليوم أو الأسبوع أو الشهر) أو بالأرقام (1 لليوم، و7 للأسبوع، و30 للشهر، وأي رقم لأي فترة من الأيام.
التأخير: هو مقدار الوقت الذي يجب الانتظار قبل البدء. يتم التعبير عنها بالدقائق
معرف الوظيفة: هو اسم يطلق على المهمة لتمييزها عن غيرها
الأمر: هذا هو الأمر الذي يجب أن يقوم anacron بتشغيله في الوقت المحدد.
نحن بحاجة أيضًا إلى إنشاء دليل لتشغيل المهام المختلفة.
mkdir -p ~/.local/etc/anacrontab: ~/.local/etc/cron.daily ~/.local/etc/cron.weekly ~/.local/etc/cron.daily ~/.var/spool/anacron
يؤدي هذا إلى إنشاء الدلائل التي سيتم فيها حفظ نصوص التنفيذ اليومية والأسبوعية والشهرية وتقرير تنفيذ anacron الأخير.
لإخباره باستخدام هذه المجلدات:
anacron -fn -t ~/.local/etc/anacrontab -S ~/.var/spool/anacron
نقوم بتعديل ملف التكوين من الطرفية
nano ~/.local/etc/anacrontab
نضيف هذه الأسطر:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
يمكن تكوين متغيرين آخرين
START_HOURS_RANGE: للإشارة إلى أن الوظائف يجب أن تبدأ فقط خلال إطار زمني معين.
RANDOM_DELAY: يحدد الحد الأقصى للتأخير العشوائي
وهذا يختتم مراجعتنا الموجزة لأداتين مفيدتين لسطر الأوامر لأتمتة المهام على أجهزة الكمبيوتر الخاصة بنا. في المقالات اللاحقة سنرى أن هناك تطبيقات رسومية تسمح لنا أيضًا بالقيام بنفس الشيء.