جدولة تنفيذ السكربتات بوساطة Cron Job
جدول المحتويات:
- ما هو ملف Crontab
- بناء جملة Crontab والمشغلين
- ملفات Crontab على مستوى النظام
- وحدات الماكرو المعرفة مسبقا
- قيادة لينكس Crontab
- متغيرات Crontab
- قيود Crontab
- أمثلة وظائف كرون
- استنتاج
Cron هو برنامج جدولة يقوم بتنفيذ المهام على فترات زمنية محددة. وتسمى هذه المهام وظائف cron وتستخدم في الغالب لأتمتة صيانة النظام أو الإدارة.
على سبيل المثال ، يمكنك تعيين مهمة cron لأتمتة المهام المتكررة مثل النسخ الاحتياطي لقواعد البيانات أو البيانات ، وتحديث النظام بأحدث تصحيحات الأمان ، والتحقق من استخدام مساحة القرص ، وإرسال رسائل البريد الإلكتروني وما إلى ذلك. تتطلب بعض التطبيقات ، مثل Drupal أو Magento ، وظائف cron لأداء مهام معينة.
يمكن جدولة وظائف cron لمدة دقيقة أو ساعة أو يوم من الشهر أو الشهر أو يوم الأسبوع أو أي مجموعة من هذه الوظائف.
ما هو ملف Crontab
Crontab (جدول cron) هو ملف نصي يحدد جدول وظائف cron. هناك نوعان من ملفات crontab. ملفات crontab على مستوى النظام وملفات crontab للمستخدم الفردي.
يتم تخزين ملفات المستخدمين crontab حسب اسم المستخدم ، ويختلف موقعهم حسب أنظمة التشغيل. في النظام المستند إلى Red Hat مثل CentOS ، يتم تخزين ملفات crontab في الدليل
/var/spool/cron
بينما يتم تخزين ملفات Debian و Ubuntu في دليل
/var/spool/cron/crontabs
.
على الرغم من أنه يمكنك تحرير ملفات crontab الخاصة بالمستخدم يدويًا ، إلا أنه يوصى باستخدام الأمر
crontab
.
/etc/crontab
والملفات الموجودة داخل الدليل
/etc/cron.d
عبارة عن ملفات crontab على مستوى النظام يمكن تحريرها فقط بواسطة مسؤولي النظام.
في معظم توزيعات Linux ، يمكنك أيضًا وضع برامج نصية داخل الدلائل
/etc/cron.{hourly, daily, weekly, monthly}
وسيتم تنفيذ البرامج النصية كل
hour/day/week/month
.
بناء جملة Crontab والمشغلين
يحتوي كل سطر في ملف المستخدم crontab على ستة حقول مفصولة بمسافة متبوعة بالأمر المطلوب تشغيله.
* * * * * command(s) - - - - - | | | | | | | | | ----- Day of week (0 - 7) (Sunday=0 or 7) | | | ------- Month (1 - 12) | | --------- Day of month (1 - 31) | ----------- Hour (0 - 23) ------------- Minute (0 - 59)
قد تحتوي الحقول الخمسة الأولى على قيمة واحدة أو أكثر ، مفصولة بفاصلة أو مجموعة من القيم مفصولة بواصلة.
-
*المشغل النجمة يعني أي قيمة أو دائما. إذا كان لديك رمز العلامة النجمية في حقل ساعة ، فهذا يعني أن المهمة سيتم تنفيذها كل ساعة. يسمح لك المشغل الفاصلة بتحديد قائمة قيم للتكرار. على سبيل المثال ، إذا كان لديك1, 3, 5في حقل Hour ،1, 3, 5المهمة في الساعة 1 صباحًا و 3 صباحًا و 5 صباحًا.-يسمح لك عامل الواصلة بتحديد نطاق من القيم. إذا كان لديك1-5في حقل يوم الأسبوع ، فستعمل المهمة كل يوم من أيام الأسبوع (من الاثنين إلى الجمعة)./- يسمح لك عامل التشغيل المائل بتحديد القيم التي سيتم تكرارها خلال فترة زمنية معينة بينهما. على سبيل المثال ، إذا كان لديك*/4في حقل Hour ، فهذا يعني أنه سيتم تنفيذ الإجراء كل أربع ساعات. هو نفس تحديد0, 4, 8, 12, 16, 20. بدلاً من العلامة النجمية قبل مشغل الخط المائل ، يمكنك أيضًا استخدام نطاق من القيم ، يعني1-30/10نفس1, 11, 21مثل1, 11, 21.
ملفات Crontab على مستوى النظام
بناء جملة ملفات crontab على مستوى النظام مختلف قليلاً عن crontabs المستخدم. يحتوي على حقل مستخدم إلزامي إضافي يحدد المستخدم الذي سيشغل مهمة cron.
هناك العديد من وحدات ماكرو جدول كرون الخاصة المستخدمة لتحديد فترات مشتركة. يمكنك استخدام هذه الاختصارات بدلاً من مواصفات تاريخ الأعمدة الخمسة. يتيح لك الأمر crontab تثبيت أو فتح ملف crontab للتحرير. يمكنك استخدام الأمر crontab لعرض مهام cron أو إضافتها أو إزالتها أو تعديلها باستخدام الخيارات التالية: يفتح الأمر crontab ملف crontab باستخدام المحرر المحدد بواسطة متغيرات البيئة
يقوم برنامج الخفي cron تلقائيًا بتعيين عدة متغيرات للبيئة. يمكن لمسؤولي النظام التحكم في المستخدمين الذين يمكنهم الوصول إلى الأمر
بشكل افتراضي ، يوجد ملف
إذا كان الملف
في حالة عدم وجود أي ملف ، يمكن فقط للمستخدمين الذين لديهم امتيازات إدارية استخدام أمر
فيما يلي بعض الأمثلة على وظائف cron والتي ستوضح لك كيفية جدولة مهمة لتعمل على فترات زمنية مختلفة. قم بتشغيل أمر الساعة 15:00 يوميًا من الاثنين إلى الجمعة: تشغيل برنامج نصي كل 5 دقائق وإعادة توجيه الإخراج القياسي إلى
قم بتشغيل أمرين كل يوم اثنين في الساعة 3 بعد الظهر (استخدم عامل التشغيل
قم بتشغيل برنامج PHP النصي كل دقيقتين وكتابة الإخراج إلى ملف: قم بتشغيل برنامج نصي كل يوم ، كل ساعة ، على مدار الساعة ، من الساعة 8 صباحًا إلى الساعة 4 مساءً: قم بتشغيل برنامج نصي في أول يوم اثنين من كل شهر ، الساعة 7 صباحًا قم بتشغيل البرنامج النصي في الساعة 9:15 مساءً ، يومي 1 و 15 من كل شهر: اضبط متغيرات
لقد تعلمت كيفية إنشاء وظائف cron وجدولة المهام في تاريخ ووقت محددين. لا تتردد في ترك تعليق إذا كان لديك أي أسئلة.
* * * * * command(s)
* * * * * command(s)
وحدات الماكرو المعرفة مسبقا
@yearly
(أو
@annually
) - قم بتشغيل المهمة المحددة مرة واحدة سنويًا في منتصف الليل (12:00 ص) من 1 يناير. أي ما يعادل
0 0 1 1 *
.
@monthly
- قم بتشغيل المهمة المحددة مرة واحدة شهريًا في منتصف الليل في اليوم الأول من الشهر. أي ما يعادل
0 0 1 * *
.
@weekly
- قم بتشغيل المهمة المحددة مرة واحدة في الأسبوع في منتصف ليلة الأحد. أي ما يعادل
0 0 * * 0
.
@daily
- قم بتشغيل المهمة المحددة مرة واحدة يوميًا في منتصف الليل. أي ما يعادل
0 0 * * *
.
@hourly
- قم بتشغيل المهمة المحددة مرة واحدة في الساعة في بداية الساعة. أي ما يعادل
0 * * * *
.
@reboot
- قم بتشغيل المهمة المحددة عند بدء تشغيل النظام (وقت التمهيد).قيادة لينكس Crontab
crontab -e
- تحرير ملف crontab ، أو إنشاء واحد إذا لم يكن موجودًا بالفعل.
crontab -l
- عرض محتويات ملف crontab.
crontab -r
- إزالة ملف crontab الحالي.
crontab -i
- إزالة ملف crontab الحالي الخاص بك مع موجه قبل الإزالة.
crontab -u
VISUAL
أو
EDITOR
.
متغيرات Crontab
PATH=/usr/bin:/bin
. إذا كان الأمر الذي تتصل به موجودًا في المسار المحدد في cron ، فيمكنك إما استخدام المسار المطلق للأمر أو تغيير متغير cath
$PATH
. لا يمكنك إلحاق ضمنيًا
:$PATH
كما تفعل مع البرنامج النصي العادي. يتم تعيين shell الافتراضي إلى
/bin/sh
. يمكنك ضبط غلاف مختلف عن طريق تغيير متغير SHELL.Cron باستدعاء الأمر من الدليل الرئيسي للمستخدم. يمكن تجاوز متغير
HOME
من خلال الإعدادات في crontab. يتم إرسال إشعار البريد الإلكتروني إلى صاحب crontab. لاستبدال السلوك الافتراضي ، يمكنك استخدام متغير بيئة
MAILTO
مع قائمة (مفصولة بفواصل) بجميع عناوين البريد الإلكتروني التي تريد تلقي إعلامات البريد الإلكتروني. إذا تم تعريف
MAILTO
ولكنه فارغ (
MAILTO=""
) ، فلن يتم إرسال أي بريد.قيود Crontab
crontab
باستخدام
/etc/cron.deny
و
/etc/cron.allow
الملفات. تتكون الملفات من قائمة أسماء المستخدمين ، اسم مستخدم واحد لكل سطر.
/etc/cron.deny
فقط وهو فارغ ، مما يعني أنه يمكن لجميع المستخدمين استخدام الأمر crontab. إذا كنت ترغب في رفض الوصول إلى أوامر crontab لمستخدم معين ، فأضف اسم المستخدم إلى هذا الملف.
/etc/cron.allow
موجودًا فقط ، فيمكن للمستخدمين الذين تم سردهم في هذا الملف استخدام الأمر
crontab
.
crontab
.أمثلة وظائف كرون
0 15 * * 1-5 command
dev null
، سيتم إرسال الخطأ القياسي فقط إلى عنوان البريد الإلكتروني المحدد:
[email protected] */5 * * * * /path/to/script.sh > /dev/null
&&
بين الأمرين):
0 15 * * Mon command1 && command2
*/2 * * * * /usr/bin/php /path/to/script.php >> /var/log/script.log
00 08-16 * * * /path/to/script.sh
0 7 1-7 * 1 /path/to/script.sh
15 9 1, 15 * * /path/to/script.sh
HOME
و
PATH
و
SHELL
و
MAILTO
مخصصة وقم بتشغيل أمر كل دقيقة.
HOME=/opt PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin SHELL=/usr/bin/zsh [email protected] */1 * * * * command
استنتاج
جدولة بدء تشغيل جهاز الكمبيوتر وبرنامج التشغيل الخاص بك
تعيين التطبيقات المفضلة لديك لبدء التشغيل عند بدء التشغيل ، وتهيئة الكمبيوتر لتشغيل أو الاستيقاظ في الصباح
أربعة أدوات جدولة على شبكة الإنترنت للشركات الصغيرة
لا تزال تعتمد على موظف استقبال لتحديد مواعيدك؟ يمكن أن تقوم إحدى هذه الخدمات الأربعة بأقل التكاليف ولن تضطر أبدًا إلى دفع وقت إضافي.
مراجعة: Pingraphy يتيح لك جدولة دبابيس Pinterest المستقبلية ، والحصول على احصائيات
وسائل الاعلام الاجتماعية مهمة للترويج الذاتي على الإنترنت ، ولكن لا أحد يستطيع البقاء 24 ساعة في اليوم لنشر التحديثات. هذا هو السبب في أن Pingraphy تصبح خدمة أساسية.







