سؤال كيف أقوم بإعداد وظيفة Cron؟


أريد جدولة مهمة للتشغيل على أساس منتظم وسمعنا أن Cron هي الطريقة للقيام بذلك.

كيف أقوم بإضافة وظائف Cron في Ubuntu؟


486
2017-08-16 08:25


الأصل




الأجوبة:


ضع نص برمجي في أحد هذه المجلدات: /etc/cron.daily، /etc/cron.hourly، /etc/cron.monthly أو /etc/cron.weekly.

إذا لم تكن هذه العناصر كافية بالنسبة لك ، فيمكنك إضافة المزيد من المهام المحددة ، على سبيل المثال. مرتين في الشهر أو كل 5 دقائق. اذهب إلى المحطة واكتب:

crontab -e

سيؤدي ذلك إلى فتح crontab الشخصية (ملف تكوين cron). السطر الأول في هذا الملف يشرح كل شيء! في كل سطر ، يمكنك تحديد أمر واحد للتشغيل وجدوله الزمني ، ويكون التنسيق بسيطًا جدًا عندما تحصل على تعليق. الهيكل هو:

minute hour day-of-month month day-of-week command

لجميع الأرقام ، يمكنك استخدام القوائم ، على سبيل المثال ، 5,34,55 في حقل الدقائق سيعني تشغيله في 5 الماضي ، و 34 الماضي ، و 55 الماضي أي ساعة يتم تعريفها.

يمكنك أيضا استخدام فترات. يتم تعريفها على النحو التالي: */20. هذا المثال يعني كل 20 ، لذلك في عمود الدقائق يكون معادلاً 0,20,40.

لذا ، لتشغيل أمر كل يوم اثنين الساعة 5:30 في فترة ما بعد الظهر:

30 17 * * 1 /path/to/command

أو كل 15 دقيقة

*/15 * * * * /path/to/command

لاحظ أن يوم من الأسبوع ينتقل من 0-6 حيث 0 هو يوم الأحد.

يمكنك قراءة المزيد هنا.


600
2017-08-16 08:58



هذه هي على مستوى النظام وتشغيل مع امتيازات عالية. لن أضع أي شيء هناك ما لم تكن هناك حاجة ملحة للوصول أو إذن. كقاعدة عامة ، حاول القيام بالأشياء بدون قدرات. لذلك ، أحب هذه الإجابة بشكل أفضل: ubuntu.stackexchange.com/questions/2368/how-do-i-setup-cron-job/... - H Marcelo Morales
Marcelo Morales ، الذي سيدير ​​أيضًا الأوامر المعينة كجذر! إذا كنت من ناحية أخرى لا تستخدم sudo ثم سوف تقوم بإنشاء crontab المستخدم وسيتم تشغيل هذا كمستخدم الذي قام بإنشائه! - LassePoulsen
* / 15 * * * * / path / to / command مفيد جدا بالنسبة لي! شكر! - Andrew Odendaal
تجدر الإشارة إلى أنه يتم تطبيق هذه التغييرات تلقائيًا ، ولن تحتاج إلى إعادة تشغيل / إعادة تحميل أي شيء. - Molomby
آخر نصيحة مفيد هو أنه بدلا من */15 * * * * /path/to/command، يمكنك ان تفعل @reboot /path/to/command من أجل تنفيذ شيء عند بدء التشغيل. - Kenneth Worden


إذا كان من الممكن تشغيل الوظيفة التي تريد تشغيلها بنفس الامتيازات الخاصة بالمستخدم الذي أوصيك باستخدام مستخدم crontab الذي يمكنك تحريره عن طريق تشغيل EDITOR="gedit" crontab -e(والتي سوف تستخدم جي إديت لتحرير ملف crontab) أو ببساطة crontab -e(التي ستستخدم المحرر الافتراضي) في جهاز طرفي.

إذا كنت تريد تشغيل شيء كل 10 دقائق ، على سبيل المثال ، يمكنك إضافة سطر مثل هذا

*/10 * * * * /usr/bin/somedirectory/somecommand

واحفظ الملف.

تستطيع أن ترى محتويات crontab المستخدم مع crontab -l.

الطريقة الأكثر مرونة هي استخدام نظام crontab الذي يمكنك تحريره عن طريق التشغيل sudo crontab -e في المحطة. سيسمح لك هذا بتشغيل الأوامر كجذر (في حال كنت بحاجة إلى هذا المستوى من الامتياز) أو أي مستخدم آخر على النظام.

ثم إذا كنت ترغب في تشغيل شيء كل 10 دقائق جذر، على سبيل المثال ، يمكنك إضافة سطر مثل هذا

*/10 * * * * root /usr/bin/somedirectory/somecommand

واحفظ الملف.(لاحظ إضافة المستخدم إلى الخط)

يمكنك رؤية محتويات ملف crontab system مع sudo crontab -l.

مزيد من التفاصيل في: https://help.ubuntu.com/community/CronHowto


93
2017-08-16 09:21



إليك مناولة تفاعلية كرون تفاعلية ستعطيك اللغة الإنجليزية إلى وقت cron crontab.guru - CTS_AE


إذا كنت تفضل القيام بذلك باستخدام واجهة المستخدم الرسومية ، يمكنك الذهاب إلى مركز البرامج وتثبيته المهام المجدولة (أو تشغيل sudo apt-get install gnome-schedule). سيوفر واجهة مستخدم رسومية قوية لإضافة مهام cron.

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


51
2018-01-31 23:59



غير متوفر على 16.04 على ما يبدو bugs.launchpad.net/ubuntu/+source/gnome-schedule/+bug/1576060 - TankorSmash
TankorSmash يمكنك الحصول عليه هنا - M. Becerra
لا يمكن تلبية متطلبات الحزمة على 16.04 - Odysseus Ithaca


أوصي جدولة المهام كيدي (kde-config-cron)  Install kde-config-cron. الوصول إليه من اعدادات النظام في ال جدول المهام وحدة هناك.

يدير كل من Crontabs الشخصية والنظام ، وسهولة إنشاء الحدود الزمنية فاجأني كثيرا (انظر الصورة أدناه). أعتقد أن هذا الجزء مستبعد بالفعل.

enter image description here


24
2018-02-11 14:35





لن يعمل برنامج جدولة المهام KDE في نظام Ubuntu العادي. يعمل فقط في أنظمة KDE مثل KUbuntu. بالنسبة لنظام غير KDE ، ستفضل استخدام جدول gnome

$ sudo apt-get install gnome-schedule

التطبيق هو المهام المجدولة في داش.


11
2017-09-27 20:25



لم يتم العثور على Ubuntu 16.04 - SaidbakR
يرجى إلقاء نظرة على I can't install gnome schedule on Ubuntu 16.04 @ askubuntu.com/questions/785657/.... هناك حزمة لتحميل @ bugs.launchpad.net/ubuntu/+source/gnome-schedule/+bug/1576060/.... فقط نفذ $ sudo dpkg -i gnome-schedule_2.3.0-0ubuntu16.04_amd64.deb - Antonio


أردت تعيين مهمة Cron لتشغيلها من خلال برنامج نصي bash ، لذا فإن تنفيذ النص البرمجي سيضيف مهمة cron.

أدركت أنه عند استخدام:

crontab -e 

ثم يقوم بإنشاء الملف:

/var/spool/cron/crontabs/root 

حيث الجذر هو اسم المستخدم الذي يقوم بتشغيل الأمر crontab. بناءً على ذلك وفي 14.04 على الأقل ، يمكننا تنفيذ أوامر bash التالية لإنشاء مهمة Cron جديدة:

echo "30 17 * * 1 /path/to/command" > /var/spool/cron/crontabs/root

نحتاج أيضًا إلى تعيين الملكية الصحيحة للملف:

chown root:root /var/spool/cron/crontabs/root

وتعيين الأذونات الصحيحة:

chmod 600 /var/spool/cron/crontabs/root

إذا عند تشغيل crontab -e هناك بالفعل وظائف Cron في القائمة ، ثم يمكنك إلحاقها بالقائمة باستخدام الأمر التالي:

echo "30 17 * * 1 /path/to/command" >> /var/spool/cron/crontabs/root

8