31 অগত্যা কি ক্রোন চাকরিতে মাসের শেষের দিকে ইঙ্গিত দেয়?


13

ক্রোন কাজের জন্য আমরা জানি যে আমরা নীচের মত সময় নির্ধারণ করতে পারি।

# +------------ Minute (0 - 59)
# | +---------- Hour (0 - 23)
# | | +-------- Day of the Month (1 - 31)
# | | | +------ Month (1 - 12)
# | | | | +---- Day of the Week (0 - 7) (Sunday is 0 or 7)
# | | | | |
# * * * * * command

আমি যা জানতে চাই তা হ'ল আমরা যখন ৩১ মাসের দিন নির্ধারণ করি তখন এর অর্থ কি প্রতিমাসের সমাপ্তি হয় যদিও মাসের ৩১ দিন থাকে না। উত্তর পাওয়ার আশা করি।

আগাম ধন্যবাদ

উত্তর:


22

না, 31 এর অর্থ 31।

তবে আপনি কিছু কৌতুকপূর্ণ করতে পারেন। কোনও দিন চলার জন্য কাজটি সেট করুন যা সম্ভাব্যভাবে মাসের শেষ দিন হতে পারে (অর্থাত্-মাসের ক্ষেত্রের ২৮-৩১), এবং তারপরে আপনার কমান্ডটি শেল এক্সপ্রেশন দিয়ে প্রতিস্থাপনের তারিখের সাথে একটি পরীক্ষার সমন্বয়ে প্রতিস্থাপন করুন কমান্ড প্রয়োগ করুন:

0 0 28-31 * * [ "`date +%m`" != "`date --date=tomorrow +%m`" ] && command

পরীক্ষার বন্ধনীগুলির ভিতরে প্রকাশটি কেবল জিজ্ঞাসা করে যে আজকের মাসের সংখ্যাটি আগামীকাল মাসের সংখ্যার চেয়ে পৃথক কিনা, অবশ্যই মাসের শেষ দিনে অবশ্যই সত্য হবে। নোট করুন যে এই অভিব্যক্তিটির ফর্মটি আপনার স্থানীয়ের উপর নির্ভর করে date- আপনার যদি বর্তমান জিএনইউ সংস্করণ না থাকে তবে আপনাকে এটি টুইট করতে হবে।

আমার বলা উচিত যে আমি এটি আবিষ্কার করি নি - আমি ম্যাথু জার্ভিসের একটি মেইলিং তালিকা পোস্টে একটি দ্রুত গুগলের সাথে এটি পেয়েছি। যদিও আমি এটি একটি মানা পুরানো ইউনিক্স উইজার্ডের কৌশল খুব কল্পনা করব।


1
GNU- নির্দিষ্ট বিকল্পগুলিকে "তারিখ" =)
দেওয়ার জন্য এটি কোনও কৌশলটির

4
স্ট্যাকেক্সচেঞ্জ সাইটগুলিতে, এমন একটি প্রশ্ন জিজ্ঞাসা করা যা একটি গুগল অনুসন্ধানের সাথে উত্তর দেওয়া যেতে পারে, এটি কোনও খারাপ জিনিস নয়। প্রকৃতপক্ষে এটি একটি ভাল জিনিস, পরের ব্যক্তি যিনি গুগলে এটি অনুসন্ধান করবেন তিনি স্ট্যাকেক্সচেঞ্জের উত্তর খুঁজে পেতে এবং এখানে আসবেন।
মের্নিক

12

না, আমি মনে করি আপনি যা করতে পারেন সেরাটি মাসের প্রথম মধ্যরাতে চালানো হয়, বা প্রতিটি মাসের জন্য পৃথক ক্রন্টব্যাট লাইন স্থাপন করা হয় (বা কমপক্ষে, 28,29,30 এবং 31 দিনের সাথে কয়েক মাসের জন্য একটি লাইন)

0 0 28,29 2               * /my/command
0 0 30    4,6,9,11        * /my/command
0 0 31    1,3,5,7,8,10,12 * /my/command

ধন্যবাদ পল! আমি দ্বিতীয়টি অনুসরণ করব। দ্বিতীয় পদ্ধতির জন্য আমাকে তিনবারের জন্য একই ফাইলটি সেট করা দরকার? আবারও ধন্যবাদ :)

হ্যাঁ, আপনার এটি পুনরাবৃত্তি করতে হবে।
পল ডিকসন

7
ক্রোন নিয়ে আমার কোনও অভিজ্ঞতা নেই, তবে কি "0 0 28,29 2" লিপ বছরে দু'বার সম্পাদন করবে না? এটি নয় যে এটি পরবর্তী দুই বছরের জন্য সমস্যা হয়ে থাকবে, তবে এখনও ...
উইম টেন ব্রিঙ্ক

এটি একটি ভাল পয়েন্ট, এর কাছাকাছি কোনও সহজ উপায় নয়
পল ডিকসন

4

আপনি সহজেই এই কাজটি করতে পারবেন বলে আমি মনে করি না crontab

একটি বিকল্প cronহ'ল প্রতিদিন স্ক্রিপ্টটি চালানো হবে এবং তারপরে স্ক্রিপ্টটি নিজেই এটি পরীক্ষা করে দেখানো হবে যে এটি মাসের শেষ দিন।


3

আমার ধারণা ক্রোনটির এই লক্ষ্যে একটি বিশেষ চরিত্র 'এল' রয়েছে:

*    *    L    *    *    your_script.sh 

প্রতি মাসের শেষ দিনে আপনার স্ক্রিপ্টটি কার্যকর করে

অন্য দিকে,

*    *    0    *    *    your_script.sh

এমনকি আপনি এর মতো কিছু নির্দিষ্ট করতে পারেন:

*    *    *    *    1,5L    your_scrript.sh

প্রতিমাসের শেষ সোমবার ও শুক্রবারে স্ক্রিপ্টটি চালাতে

অথবা

*    *    *    *    1    your_script.sh

প্রতি সোমবার মধ্যরাতে স্ক্রিপ্টটি চালাতে।


0

এটি কাজটি করবে:

if [ $( date +%-d --date="tomorrow" ) -eq 1 ]
then echo Last day of the current month
else echo Not yet!
     exit 0
fi

exit 1
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.