المقدمة
هناك خفي في لينكس يسمى كرون والذي يستخدم لتشغيل العمليات على فترات منتظمة.
طريقة القيام بذلك هي التحقق من مجلدات معينة على النظام الخاص بك لتشغيل البرامج النصية. على سبيل المثال ، هناك مجلد يسمى /etc/cron.hourly و /etc/cron.daily و /etc/cron.weekly و /etc/cron.monthly. هناك أيضا ملف يسمى / etc / crontab.
بشكل افتراضي ، يمكنك ببساطة وضع البرامج النصية في المجلدات ذات الصلة لحملها على تشغيل فترات زمنية منتظمة.
على سبيل المثال ، افتح نافذة طرفية (بالضغط على CTRL و ALT و T) وقم بتشغيل الأمر ls التالي:
ls / etc / cron *
سترى قائمة البرامج أو البرامج النصية التي يتم تشغيلها كل ساعة ، يومية ، أسبوعية وشهرية.
المشكلة مع هذه المجلدات هي أنها غامضة بعض الشيء. على سبيل المثال ، تعني اليومية أن البرنامج النصي سيعمل مرة واحدة في اليوم ولكنك لا تتحكم في الوقت الذي سيتم تشغيل البرنامج النصي فيه خلال ذلك اليوم.
هذا هو المكان الذي يأتي فيه ملف crontab.
عن طريق تحرير ملف crontab يمكنك الحصول على برنامج نصي أو برنامج لتشغيله في التاريخ والوقت المحدد الذي تريد تشغيله. على سبيل المثال ، ربما تريد الاحتفاظ بنسخة احتياطية من ملفاتك كل ليلة في الساعة 6 مساءً.
أذونات
يتطلب الأمر crontab أن يكون لدى المستخدم أذونات لتحرير ملف crontab. هناك أساسا ملفين المستخدمة لإدارة أذونات crontab:
- /etc/cron.allow
- /etc/cron.deny
إذا كان الملف /etc/cron.allow موجودًا ، فيجب أن يكون المستخدم الذي يريد تحرير ملف crontab في هذا الملف. إذا لم يكن الملف cron.allow موجودًا ولكن يوجد ملف /etc/cron.deny ، فيجب ألا يكون المستخدم موجودًا في هذا الملف.
في حالة وجود كلا الملفين ، يتجاوز /etc/cron.allow الملف /etc/cron.deny.
في حالة عدم وجود أي ملف ، يعتمد ذلك على تكوين النظام سواء كان يمكن للمستخدم تحرير crontab.
يمكن للمستخدم الجذر دائمًا تحرير ملف crontab. يمكنك إما استخدام الأمر su للتبديل إلى المستخدم الجذر أو الأمر sudo لتشغيل الأمر crontab.
تحرير ملف Crontab
يمكن لكل مستخدم لديه أذونات إنشاء ملف crontab الخاص به. يبحث الأمر cron بشكل أساسي عن وجود ملفات crontab متعددة ويعمل من خلالها جميعًا.
للتحقق مما إذا كان لديك ملف crontab ، قم بتشغيل الأمر التالي:
crontab -l
إذا لم يكن لديك ملف crontab ، فستظهر الرسالة "لا crontab لـ
لإنشاء أو تحرير ملف crontab ، قم بتشغيل الأمر التالي:
crontab -e
بشكل افتراضي في حالة عدم تحديد محرر افتراضي ، سيُطلب منك اختيار محرر افتراضي لاستخدامه. أنا شخصياً أحب استخدام النانو لأنه مستقيم إلى الأمام إلى حد ما ، ويستخدم من المحطة.
يحتوي الملف الذي يتم فتحه على الكثير من المعلومات ، لكن الجزء الرئيسي هو المثال قبل نهاية قسم التعليقات (يشار إلى التعليقات حسب الأسطر التي تبدأ بـ #).
# mh dom mon dow command
0 5 * * 1 tar -zcf /var/backups/home.tgz / home /
هناك 6 أجزاء من المعلومات لتناسب كل سطر من ملف crontab:
- الدقيقة من اليوم يتم تشغيل الأمر (m)
- الساعة من اليوم الذي يتم تشغيل الأمر فيه (h)
- يوم الشهر يتم تشغيل الأمر (dom)
- الشهر الذي سيتم تشغيل الأمر فيه (الاثنين)
- يوم الأسبوع يتم تشغيل الأمر (داو)
- الامر
لكل عنصر (باستثناء الأمر) ، يمكنك تحديد حرف بدل. انظر إلى المثال التالي: خط كرونتاب:
30 18 * * * tar -zcf /var/backups/home.tgz / home /
ما يقوله الأمر أعلاه هو 30 دقيقة و 18 ساعة وأي يوم وشهر ويوم من الأسبوع يشغل أمرًا بسحب الدليل الرئيسي إلى مجلد / var / backups.
للحصول على أمر للتشغيل في 30 دقيقة بعد كل ساعة ، يمكنني تشغيل الأمر التالي:
30 * * * * الأمر
للحصول على أمر لتشغيل كل دقيقة بعد السادسة مساءً ، يمكنني تشغيل الأمر التالي:
* 18 * * * الأمر
لذا يجب عليك توخي الحذر بشأن إعداد أوامر crontab الخاصة بك.
على سبيل المثال:
* * * 1 * أمر
سيتم تشغيل الأمر أعلاه كل دقيقة من كل ساعة من كل يوم من كل أسبوع في يناير. أشك في أن هذا هو ما تريد.
لتشغيل أمر في الساعة 5 صباحًا من يوم 1 يناير ، عليك إجراء الأمر التالي لملف crontab:
0 5 1 1 * الأمر
كيفية إزالة ملف Crontab
في معظم الأحيان ، لن ترغب في إزالة ملف crontab ، ولكن قد ترغب في إزالة بعض الصفوف من ملف crontab.
ولكن إذا كنت تريد إزالة ملف crontab الخاص بالمستخدم ، قم بتشغيل الأمر التالي:
crontab -r
والطريقة الأكثر أمناً للقيام بذلك هي تشغيل الأمر التالي:
crontab -i
هذا يسأل السؤال "هل أنت متأكد؟" قبل إزالة ملف crontab.