الأخبار التكنولوجية والاستعراضات والنصائح!

كيفية استخدام نظام Linux ودفعه لجدولة الأوامر

إذا كنت ترغب في جدولة وظيفة Linux التي ستحدث مرة واحدة فقط ، فإن cron مبالغة. ما تحتاجه هو عائلة الأوامر! وإذا كنت ترغب فقط في تشغيل العمليات عندما يكون لدى نظامك موارد مجانية ، فيمكنك استخدام الدُفعة.

كيفية جدولة وظائف Linux

يحتفظ برنامج cron daemon بقائمة من الوظائف التي يديرها في أوقات محددة. تعمل هذه المهام والبرامج في الخلفية في الأوقات المجدولة. يمنحك هذا مرونة كبيرة لجدولة المهام التي يجب تكرارها. سواء كنت تريد تشغيل مهمة مرة كل ساعة ، في وقت محدد كل يوم ، أو مرة كل شهر أو سنة ، يمكنك إعدادها في cron.

ومع ذلك ، هذا لا يساعد إذا كنت تريد جدولة مهمة للتشغيل مرة واحدة فقط. بالتأكيد ، يمكنك ضبطه في cron ، ولكن عليك بعد ذلك أن تتذكر العودة وحذف إدخال crontab بعد تشغيل المهمة ، وهو أمر غير مريح.

مع Linux ، إذا كنت تعاني من مشكلة ما ، فمن شبه المؤكد أن شخصًا آخر قد كافح معها أيضًا. لحسن الحظ ، نظرًا لأن أنظمة التشغيل الشبيهة بـ Unix كانت موجودة منذ فترة طويلة ، فهناك أيضًا فرصة ممتازة لأن يكون شخص ما قد ابتكر حلًا لمشكلتك.

بالنسبة للمشكلة الموضحة أعلاه لديهم ، ويتم استدعاؤها.

التثبيت في القيادة

كان علينا التثبيت على Ubuntu 18.04 و Manjaro 18.1.0 (تم تثبيته بالفعل على Fedora 31).

للتثبيت على Ubuntu ، استخدم هذا الأمر:

sudo apt-get install at

بمجرد اكتمال التثبيت ، يمكنك بدء البرنامج الخفي عند هذا الأمر:

تمكن sudo systemctl – الآن atd.service

ال

في Manjaro ، قم بالتثبيت باستخدام هذا الأمر:

sudo pacman -Sy at

ال

بمجرد اكتمال التثبيت ، اكتب هذا الأمر لبدء البرنامج الخفي:

تمكن sudo systemctl – الآن atd.service

ال

في أي توزيع ، يمكنك كتابة هذا الأمر للتأكد من تشغيل البرنامج الخفي atd:

ps -e | grep وما إلى ذلك

ال

كيفية استخدام الأمر at بشكل تفاعلي

لاستخدامها يجب عليك تعيين تاريخ ووقت للتشغيل. هناك قدر كبير من المرونة في كيفية كتابتها ، والتي سنغطيها لاحقًا في هذه المقالة.

ولكن على الرغم من أننا سنستخدمها في التفاعلية ، إلا أنك تحتاج إلى تحديد التاريخ والوقت مقدمًا. إذا لم تقم بتضمين أي شيء في سطر الأوامر ، أو إذا كتبت شيئًا آخر غير التاريخ والوقت ، فإن الساعة تستجيب بـ “Distorted Time” ، كما هو موضح أدناه:

لأكل الموز

استخدام غير صحيح لـ

يمكن أن تكون التواريخ والأوقات صريحة أو نسبية. على سبيل المثال ، لنفترض أنك تريد تشغيل أمر في دقيقة واحدة. يعرف موقع at ما تعنيه كلمة “now” ، لذا يمكنك استخدامه الآن وإضافة دقيقة إليه ، مثل:

الآن + 1 دقيقة

ال

في يطبع رسالة ومطالبة واسعة وينتظر منك كتابة الأوامر التي تريد جدولتها. أولاً ، ضع في اعتبارك الرسالة الموضحة أدناه:

ال

يخبرك عند تشغيل مثيل من sh shell وسيقوم بتشغيل الأوامر الموجودة فيه. لن يتم تنفيذ أوامرك في Bash shell ، المتوافق مع sh shell ولكن به مجموعة ميزات أكثر ثراءً.

إذا حاولت أوامرك أو نصوصك استخدام وظيفة أو وسيلة يوفرها Bash ، لكنها لم تفعل ذلك ، فسوف تفشل.

من السهل اختبار ما إذا كانت أوامرك أو نصوصك ستعمل بلغة sh. استخدم الأمر sh لبدء قذيفة sh:

ش

ال

يتغير موجه الأوامر إلى علامة الدولار ($) ، ويمكنك الآن تشغيل أوامرك والتحقق من أنها تعمل بشكل صحيح.

للرجوع إلى Bash shell ، اكتب أمر الخروج:

خروج

لن ترى أي إخراج قياسي أو رسائل خطأ من الأوامر. هذا لأن sh shell يبدأ كمهمة خلفية ويعمل بدون أي نوع من واجهة الشاشة.

يتم إرسال جميع مخرجات الأوامر – جيدة أو سيئة – إليك عبر البريد الإلكتروني. يتم إرسالها عبر نظام البريد الإلكتروني الداخلي لمن يقوم بتشغيل الأمر at. هذا يعني أنك بحاجة إلى إعداد وتهيئة نظام البريد الإلكتروني الداخلي.

لا تحتوي العديد من أنظمة Linux على نظام بريد إلكتروني داخلي لأنه نادرًا ما تكون هناك حاجة إلى أحد هذه الأنظمة. أولئك الذين يستخدمون عادةً نظامًا مثل إرسال الرسائل أو Postfix. إذا لم يكن لدى نظامك نظام بريد إلكتروني داخلي ، فيمكنك كتابة نصوص برمجية في الملفات أو إعادة توجيه الإخراج إلى الملفات لإضافة التسجيل.

إذا لم يُنشئ الأمر أي مخرجات قياسية أو رسائل خطأ ، فلن تتلقى بريدًا إلكترونيًا بأي حال من الأحوال. تشير العديد من أوامر Linux إلى النجاح عبر الصمت ، لذلك في معظم الحالات لن تتلقى بريدًا إلكترونيًا.

حان الوقت الآن لكتابة أمر في kl. في هذا المثال ، نستخدم ملف نصي صغير يسمى sweep.sh يزيل ملفات * .bak و * .tmp و * .o. اكتب مسار الأمر ، كما هو موضح أدناه ، ثم اضغط على Enter.

ال

سيظهر موجه أوامر آخر ويمكنك إضافة العديد من الأوامر كما تريد. عادةً ما يكون من الأنسب أن تكون أوامرك في نص برمجي واحد وأن تستدعي هذا النص من داخل kl.

اضغط على Ctrl + D لمعرفة متى تنتهي من إضافة الأوامر. في العروض التي تشير إلى نهاية البث. سيتم إخبارك برقم الوظيفة وموعد تشغيل الوظيفة ، على النحو التالي:

تأكيدا ل

بعد تشغيل الوظيفة ، اكتب ما يلي للتحقق من بريدك الإلكتروني الداخلي:

بريد

ال

إذا لم يكن هناك بريد إلكتروني ، يجب أن تفترض النجاح. بالطبع ، في هذه الحالة ، يمكنك التحقق ومعرفة ما إذا تم حذف الملفات * .bak و * .tmp و * .o لتأكيد عمل الأمر.

اكتب ما يلي لتشغيله مرة أخرى:

الآن + 1 دقيقة

ال

بعد دقيقة ، اكتب ما يلي للتحقق من بريدك الإلكتروني مرة أخرى:

بريد

ال

مرحبا ، لدينا بريد! لقراءة الرسالة رقم واحد ، اضغط على 1 ، ثم اضغط على Enter.

كيفية استخدام نظام Linux ودفعه لجدولة الأوامر 1

تلقينا بريدًا إلكترونيًا من في لأن الأوامر الموجودة في البرنامج النصي كانت تولد رسائل خطأ. في هذا المثال ، لم تكن هناك ملفات لحذفها لأننا عندما قمنا بتشغيل البرنامج النصي سابقًا ، قام بحذفها.

اضغط على D + Enter لحذف البريد الإلكتروني و Q + Enter للخروج من برنامج البريد الإلكتروني.

تنسيق التاريخ والوقت

لديك مرونة كبيرة عندما يتعلق الأمر بتنسيقات الوقت التي يمكنك استخدامها مع vid. وهنا بعض الأمثلة:

تشغيل الساعة 11:00:

الساعة 11:00 صباحًا

تشغيل الساعة 11:00 صباحًا غدًا:

الساعة 11:00 صباحًا غدًا

تشغيل الساعة 11:00 من هذا اليوم الأسبوع المقبل:

الساعة 11:00 صباحًا الأسبوع المقبل

تشغيل في هذا الوقت ، هذا اليوم ، الأسبوع المقبل:

ذلك الأسبوع المقبل

تشغيل الساعة 11:00 صباحًا يوم الجمعة المقبل:

الساعة 11:00 صباحًا من يوم الجمعة القادم

تشغيل في هذا الوقت يوم الجمعة المقبل:

في المرة القادمة مجانا

تشغيل الساعة 11 صباحًا في هذا التاريخ ، الشهر المقبل:

الساعة 11:00 صباحًا الشهر المقبل

تشغيل الساعة 11:00 صباحًا في تاريخ محدد:

الساعة 11:00 صباحًا 3/15/2020

قم بتشغيل 30 دقيقة من الآن:

الآن + 30 دقيقة

قد ساعتين من الآن:

الآن + 2 ساعة

تشغيل في هذا الوقت غدًا:

هذا غدا

تشغيل في هذا الوقت يوم الخميس:

في ذلك الخميس

تشغيل الساعة 12:00:

في منتصف الليل

تشغيل الساعة 12:00:

في الظهيرة

إذا كنت بريطانيًا ، يمكنك حتى جدولة أمر للتشغيل في وقت الشاي (4 مساءً):

في وقت الشاي

النظر في قائمة انتظار الوظيفة

يمكنك كتابة الأمر atq لرؤية قائمة انتظار الوظائف المجدولة ، كما هو موضح أدناه.

الإخراج من

لكل أمر في قائمة الانتظار ، يعرض atq المعلومات التالية:

معرّف الوظيفة التاريخ المجدول الوقت المجدول قائمة انتظار الوظيفة. يتم تصنيف قوائم الانتظار “أ” و “ب” وما إلى ذلك. تنتقل المهام العادية التي تقوم بجدولتها إلى قائمة الانتظار “أ” ، بينما تنتقل المهام التي تقوم بجدولتها مع المجموعة (التي تمت مناقشتها لاحقًا في هذه المقالة) إلى قائمة الانتظار “ب”. الشخص الذي قام بجدولة المهمة.

استخدام في سطر الأوامر

لا تحتاج إلى استخدام تفاعلي ؛ يمكنك أيضًا استخدامه في الأمر. هذا يجعل من السهل استخدام البرامج النصية الداخلية.

يمكنك إرسال أوامر إلى ، مثل هذا:

صدى “sh ~ / sweep.sh” | الساعة 08:45 صباحًا

واحد

يتم قبول الوظيفة وجدولتها في موعد لا يتجاوز الساعة ، ويتم الإبلاغ عن رقم الوظيفة وتاريخ التنفيذ تمامًا كما كان من قبل.

باستخدام ملفات الأمر مع

يمكنك أيضًا تخزين سلسلة من الأوامر في ملف ثم إرسالها إلى kl. يمكن أن يكون هذا ملفًا نصيًا عاديًا به أوامر – لا يجب أن يكون نصًا برمجيًا قابلاً للتنفيذ.

يمكنك استخدام الخيار -f (ملف) على النحو التالي لتمرير اسم ملف إلى:

الآن + 5 دقائق -f clean.txt

واحد

يمكنك تحقيق نفس النتيجة إذا قمت بإعادة توجيه الملف إلى:

الآن + 5 دقائق

واحد

إزالة المهام المجدولة من قائمة الانتظار

لإزالة مهمة مجدولة من قائمة الانتظار ، يمكنك استخدام الأمر atrm. إذا كنت تريد رؤية قائمة الانتظار أولاً للعثور على رقم الوظيفة التي تريد إزالتها ، فيمكنك استخدام atq. بعد ذلك ، استخدم رقم الوظيفة هذا مع atrm ، كما هو موضح أدناه:

atq atrm 11 atq

كيفية استخدام نظام Linux ودفعه لجدولة الأوامر 2

كيف ترى عرض مفصل للوظائف

كما ذكرنا سابقًا ، يمكنك جدولة الوظائف بعيدًا في المستقبل. في بعض الأحيان يمكنك أن تنسى ما ستفعله الوظيفة. يوضح لك الأمر atq الوظائف الموجودة في قائمة الانتظار ، ولكن ليس ما يفترض القيام به. إذا كنت تريد رؤية عرض تفصيلي لوظيفة ما ، فيمكنك استخدام الخيار -c (قطة).

أولاً ، نستخدم atq لإيجاد رقم الوظيفة:

atq

الإخراج من

الآن سنستخدم الوظيفة رقم 13 مع الخيار -c:

في -c 13

ال

فيما يلي ملخص للمعلومات التي نحصل عليها عن الوظيفة:

السطر الأول: يخبرنا هذا أنه سيتم تشغيل الأوامر تحت sh shell. السطر الثاني: نرى أنه سيتم تشغيل الأوامر بمعرف المستخدم والمجموعة 1000. هذه هي قيم الشخص الذي يعمل في – الأمر السطر الثالث: الشخص الذي يتلقى رسائل البريد الإلكتروني ، السطر الرابع: قناع المستخدم هو 22. هذا هو القناع المستخدم لتعيين الأذونات الافتراضية لجميع الملفات التي تم إنشاؤها في جلسة sh هذه. تم طرح القناع من 666 ، مما يعطينا 644 (المكافئ الثماني لـ rw-r – r -) البيانات المتبقية: الغالبية هي متغيرات البيئة.

الإخراج من

نتائج الاختبار. يتحقق الاختبار من إمكانية الوصول إلى دليل وقت التشغيل. في حالة فشلها ، يحدث خطأ ويتم التخلي عن تنفيذ المهمة. أوامر ليتم تنفيذها. يتم سردها ويتم عرض محتويات البرامج النصية المجدولة. لاحظ أنه على الرغم من كتابة البرنامج النصي في المثال أعلاه ليعمل تحت Bash ، إلا أنه سيظل يعمل في sh shell.

الأمر الدُفعي

يعمل أمر الدُفعات بشكل مشابه للأمر ، ولكن مع وجود ثلاثة اختلافات مهمة:

يمكنك فقط استخدام الأمر الدُفعي بشكل تفاعلي. فبدلاً من جدولة المهام للتشغيل في وقت محدد ، يمكنك إضافتها إلى قائمة الانتظار ويقوم الأمر الدُفعي بتشغيلها عندما يكون متوسط ​​تحميل النظام أقل من 1.5. وبسبب ما سبق ، فأنت لا تحدد أبدًا تاريخ ووقت مع الأمر الدُفعي.

عند استخدام الأمر الدُفعي ، يمكنك تسميته بالاسم بدون معلمات سطر الأوامر مثل:

حزمة

ال

ثم أضف البيانات تمامًا كما تفعل مع الأمر at.

التحكم في الوصول إلى في الأوامر

تتحكم ملفات at.allow و at.deny في من يمكنه استخدام مجموعة الأوامر. توجد هذه في الدليل / etc. بشكل افتراضي ، يوجد ملف at.deny فقط ، ويتم إنشاؤه عند التثبيت.

إليك كيف تعمل هذه:

at.deny: يسرد التطبيقات والأجهزة التي لا يمكن استخدامها في لجدولة jobs.at.allow: قوائم الأشخاص الذين يمكنهم استخدام في لجدولة الوظائف. إذا كان الملف at.allow غير موجود ، يستخدم at فقط الملف at.deny.

بشكل افتراضي ، يمكن للجميع استخدام ملفات. إذا كنت تريد تقييد من يمكنه استخدامه ، فاستخدم ملف at.allow لسرد من يمكنه ذلك. هذا أسهل من إضافة أي شخص لا يمكنه استخدام at إلى ملف at.deny.

هذا ما يبدو عليه ملف at.deny:

sudo less /etc/at.deny

ال

يسرد الملف مكونات نظام التشغيل التي لا يمكن استخدامها. يتم منع العديد من هؤلاء من القيام بذلك لأسباب أمنية ، لذلك لا تريد إزالة أي منها من الملف.

كيفية استخدام نظام Linux ودفعه لجدولة الأوامر 3

الآن سنقوم بتحرير ملف at.allow. سنضيف ديف وماري ، لكن لن يُسمح لأي شخص آخر باستخدام في.

أولاً نكتب ما يلي:

sudo gedit /etc/at.allow

ال

في المحرر نضيف الاسمين كما هو موضح أدناه ثم نحفظ الملف.

كيفية استخدام نظام Linux ودفعه لجدولة الأوامر 4

إذا حاول شخص آخر الوصول إليه ، فسيتم إخباره بأنه ليس لديه إذن. على سبيل المثال ، لنفترض أن مستخدمًا اسمه إيريك كتب ما يلي:

الذي – التي

سيتم رفضه ، كما هو موضح أدناه.

كيفية استخدام نظام Linux ودفعه لجدولة الأوامر 5

مرة أخرى ، eric غير موجود في ملف at.deny. بمجرد أن تضع شخصًا ما في ملف at.allow ، يتم رفض السماح للجميع وكل شيء آخر بالاستخدام.

مثالي للمناسبات لمرة واحدة

كما ترى ، يعد كل من at و batch مثاليين للمهام التي تحتاج فقط إلى تشغيلها مرة واحدة. مرة أخرى ، كمراجعة سريعة:

عندما تحتاج إلى القيام بشيء ليس عملية عادية ، قم بجدولته في. إذا كنت تريد تشغيل مهمة فقط عندما يكون تحميل النظام منخفضًا بدرجة كافية ، فاستخدم الدُفعة.