ক্রোনটব সপ্তাহের বনাম মাসের দিন?


14

আমি কয়েকটি পৃথক লিনাক্স এবং ফ্রিবিএসডি সিস্টেমে এটিকে / ইত্যাদি / ক্রন্টবে যুক্ত করেছি:

# monthly reboot: 3rd Tuesday of every month
56 07 15-21 * 2 root /sbin/shutdown -r now

আমি প্রতি মাসের তৃতীয় মঙ্গলবারে একটি রিবুট চাই। যাইহোক, সমস্ত সিস্টেম এই মাসের তৃতীয় বুধবার (19) পুনরায় চালু হয়েছে।

আমি কি ভুল করছি?

আপডেট : নীচে রননের উত্তরের জন্য ধন্যবাদ, দেখে মনে হচ্ছে নীচের সংশোধনটি কাজ করবে, কেউ কি নিশ্চিত করতে পারেন বা এটি করার আরও ভাল উপায় আছে কি?

# monthly reboot: 3rd Tuesday of every month
56 07 15-21 * * root test $(date +\%u) -eq 2 && /sbin/shutdown -r now

উত্তর:


16

একবার দেখুন man 5 crontab।

দ্রষ্টব্য: কমান্ডের কার্য সম্পাদনের দিনটি দুটি ক্ষেত্র দ্বারা নির্দিষ্ট করা যেতে পারে - মাসের দিন এবং সপ্তাহের দিন। উভয় ক্ষেত্র যদি সীমাবদ্ধ থাকে (যেমন, * হয় না), কমান্ডটি চলমান হবে যখন উভয় ক্ষেত্রেই বর্তমান সময়ের সাথে মেলে। উদাহরণস্বরূপ, month `30 4 1,15 * 5 '' প্রতিটি মাসের প্রথম এবং 15 তারিখ ভোর সাড়ে 4 টায় একটি কমান্ড চালিত করবে, এবং প্রতি শুক্রবারে। তবে, কমান্ডটিতে একটি পরীক্ষা যুক্ত করে কাঙ্ক্ষিত ফলাফল অর্জন করতে পারেন (নীচে এক্সপ্লোর ক্রোন ফাইলের শেষ উদাহরণটি দেখুন)।

সুতরাং আপনার সার্ভারগুলি 15-21 এবং প্রতিটি মঙ্গলবার থেকে প্রতিদিন পুনরায় চালু করা উচিত।

ম্যানপেজগুলির উদাহরণটি দেখুন:

# Run on every second Saturday of the month
0 4 8-14 * *    test $(date +%u) -eq 6 && echo "2nd Saturday"

6
এটি গুরুতরভাবে ডিজাইন বাগের মতো মনে হচ্ছে। যদি আমি 15-21 থেকে প্রতিদিন চাইতাম এবং প্রতিটি মঙ্গলবার আমি দুটি পৃথক ক্রন্টব এন্ট্রি করতাম। একটি পৃথক পরীক্ষার অবলম্বন করা কুৎসিত হ্যাক। এই বলেছিল যে, কাজের প্রস্তাব দেওয়ার জন্য ধন্যবাদ!
— লরেন্স গনসাল্ভেস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.