ক্রোনজব নির্ধারিত সময়ের আগে চলে, কী ভুল হতে পারে?


10

আমার শনিবারের ক্রোনটাব নীচে রয়েছে যা ১৯-২৩ দিনের মধ্যে পড়ে, আমি কেন জানি না যে এটি 20 শে (শুক্রবার) চলছিল। কোন অনুমান?

00 21 19-23 * 6 <command>

1
আপনি /etc/cron.d/mdadmউবুন্টু এবং ডিবিয়ান ব্যবহার করতে কিছু অনুপ্রেরণা পেতে পারেন । এভাবেই এটি প্রতি মাসের প্রথম রবিবার চলে:57 0 * * 0 root if [ -x /usr/share/mdadm/checkarray ] && [ $(date +\%d) -le 7 ]; then /usr/share/mdadm/checkarray --cron --all --idle --quiet; fi
ক্যাস্পারড

ধন্যবাদ ক্যাস্পার্ড, 0 18 * * 6 [date +\%d -le 07] && <task> আমার পক্ষে ভাল কাজ করছে, যেখানে প্রতি মাসের প্রথম শনিবারে চালানো দরকার।
simer

উত্তর:


16

সেই ক্রোন এক্সপ্রেশনটি অনুবাদ করে:

At 21:00 on the 19, 20, 21, 22 and 23rd of every month and every Saturday.

সুতরাং এটি স্পষ্টভাবে 20 শে শুক্রবার ক্রোন চালানোর জন্য বলেছে। এটি কারণ:

When the schedule specifies both date and weekday, they're combined with a logical OR,
i.e. the job will run if current_minute == scheduled_minute 
&& current_hour == scheduled_hour && current_month == scheduled_month && 
(current_day == scheduled_date OR current_weekday == scheduled_weekday).

এই তথ্যটি হ্যান্ড ক্রোন সরঞ্জাম থেকে: http://crontab.guru/

শনিবার যখন আপনি দিনটি ব্যবহার করতে পারেন তখন আপনার কাজটি চালানোর জন্য:

00 21 19-23 * * test $(date +%u) -eq 6 && command

এই সমাধানটি সপ্তাহের ক্রন্টব বনাম মাসের দিন থেকে?


6
%ক্রোনজবসের একটি বিশেষ অর্থ রয়েছে সে সম্পর্কে সতর্ক থাকুন - এটি কমান্ডের স্টিডিনকে পৃথক করে।
ব্যবহারকারী1686
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.