سؤال كيف يمكنني تشغيل وظيفة سنوية مع anacron؟


أود استخدام anacron لتشغيل وظيفة سنوياً. أرى التكوين اليومي والأسبوعي والشهري ل anacron. هل هناك طريقة لتشغيل وظيفة مرة واحدة في السنة؟


4
2017-11-25 18:05


الأصل




الأجوبة:


فكورسي وهو موجود بالفعل مع الاختيارات الممكنة لديك: اختر يومًا معينًا وشهرًا واحدًا محددًا وسيعمل مرة واحدة في السنة. سيكون اليوم الأول من الشهر الأول يوم 1 يناير.

يحتوي Anacron على طريقتين لتحديد الخطوط. الثاني هو مثل هذا:

 @period_name delay job-identify command

يمكن تعيين period_name إلى يومية أو أسبوعية أو شهرية أو سنوية أو سنوية. سيضمن ذلك تشغيل الوظائف مرة في الأسبوع أو الشهر أو السنة بغض النظر عن عدد الأيام في هذه الفترة.

مثال

@yearly 0 job1 /usr/bin/execute_me

0 يعني عدم وجود تأخير. job1 هو معرف وأمر تنفيذ.


4
2017-11-25 18:20



كيف يعملperiod_name مع anacron؟ اعتقدت أنه تم استخدامه في crontab ، والذي لا يضمن التنفيذ إذا كان الجهاز متوقف. - Jeremy Stein
هنا تذهبJeremyStein linux.die.net/man/5/anacrontab أو manpages.ubuntu.com/manpages/precise/man5/anacrontab.5.html ؛) - Rinzwind
آه ، هل يمكنني إضافة خط إلى anacrontab مثل هذا: @yearly 20 cron.yearly nice run-parts --report /etc/cron.yearly ثم قم بإضافة البرامج النصية الخاصة بي إلى /etc/cron.yearly؟ - Jeremy Stein
لا نعرف على وجه اليقين ولكن الجزء الأخير (أجزاء التشغيل الجميلة - / / etc / cron.yearly) قد يحتاج إلى أمر واحد (ليس هذا هو مشكلة لأنه يمكنك إلقاء ذلك في البرنامج النصي وتنفيذ البرنامج النصي) . - Rinzwind


أعتقد أن هذا سيعمل ما لم يكن جهاز الكمبيوتر الخاص بي متوقفاً عن العمل طوال شهر كانون الثاني (يناير):

إملأ /etc/cron.monthly:

#!/bin/sh
month=`date +%m`
if [ $month -eq 1 ]
then do_yearly_task
fi

0
2017-11-25 18:21