আমার কোনও কাজের ক্রোন করার একটি উপায় খুঁজে পাওয়া দরকার যাতে এটি প্রতিমাসের দ্বিতীয় বুধবারে চলে। এটা কি সম্ভব?
আমার কোনও কাজের ক্রোন করার একটি উপায় খুঁজে পাওয়া দরকার যাতে এটি প্রতিমাসের দ্বিতীয় বুধবারে চলে। এটা কি সম্ভব?
উত্তর:
ক্রন্টাবের জন্য আমার ম্যানপেজটি (যা আমি দুঃখের সাথে অনলাইনে খুঁজে পাচ্ছি না) নিম্নলিখিত উদাহরণটি দেয়:
# Run on every second Saturday of the month
0 4 8-14 * * test $(date +\%u) -eq 6 && echo "2nd Saturday"
এটি আপনার উদ্দেশ্যে খাপ খাইয়ে নিচ্ছে ...
0 4 8-14 * * test $(date +\%u) -eq 3 && job.sh
*), কমান্ড যখন চালানো হবে হয় এক ম্যাচ ।
date +\%u
আপনি সপ্তাহের ট্রিকের দিন এবং সপ্তাহের দিনের সংমিশ্রণটি ব্যবহার করে একটি বাহ্যিক স্ক্রিপ্ট চালানো এড়াতে পারেন:
# Run on every second Wednesday of the month
0 4 8-14 * Wed job.sh
এটি অন্য একটি বহিরাগত প্রোগ্রাম চালানো এড়ানো যায়। 8-14 সমস্ত দিন নির্বাচন করে যা মাসের দ্বিতীয় সপ্তাহে মেলে। তারপরে এটি ফিল্টার করে কেবল বুধবারে।
cronপ্রতিদিন কার্য সম্পাদন করবে: 8,9,10,11, ..., 14 সকাল 4 টা। সুতরাং এটির পরিবর্তে এটি 7 টি আমন্ত্রণ। আমি এটি উত্পাদনে পরীক্ষা করতে চাই না))
ক্রোন নিজে থেকে ব্যবহার করা সম্ভব নয় তবে আপনি সপ্তাহে একবারে একটি স্ক্রিপ্ট কল করতে পারেন যা পরীক্ষা করে:
ক্রোনটাব এ, প্রতি বুধবার 12.00 এ সেকেন্ড_উড.শ চালান:
0 12 * * 3 /home/you/bin/second_wed.sh
সেকেন্ড_উড.এসে:
#!/usr/bin/env bash
day_of_month=`date +"%
if [ $day_of_month -gt 7 -a $day_of_month -lt 15 ]; then
# Call your program here instead of 'ls'…
ls
fi
এই উত্তরের ভিত্তিতে , আপনি এটি করতে পারেন:
00 12 * * Wed expr `date +\%d` \> 7 \& `date +\%d` \< 15 >/dev/null && runJob.sh
CentOS 7 সার্ভারগুলির জন্য, এটি আমার জন্য কাজ করে এমন সিনট্যাক্স বলে মনে হচ্ছে। দয়া করে [এবং এর আশেপাশের জায়গাগুলি নোট করুন ]। আমার কিছুটা বের করতে সময় লাগল took
এটি test.shমাসের দ্বিতীয় বুধবার 13:07 / 1:07 pm এ ফাইলটি চালায় । (০ = রবিবার, ১ = সোমবার, ২ = মঙ্গলবার, ৩ = বুধবার ইত্যাদি)
07 13 8-14 * * [ `date +\%u` = 3 ] && /root/scripts/test.sh
প্রতি মাসের তৃতীয় শুক্রবার সকাল সোয়া দশটায় আগুন: 0 15 10 ? * 6#3
সূত্র: https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm