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


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.