উত্তর:
ক্রন্টব-এ কমান্ডটি কার্যকর করা হয়েছে /bin/sh
যাতে আপনি গণিতের বিস্তারটি বর্তমান মিনিটের মডুলো 25 শূন্যের সমান কিনা তা গণনা করতে ব্যবহার করতে পারেন:
*/5 * * * * [ $(( $(date +\%s) / 60 \% 25 )) -eq 0 ] && your_command
cron
প্রতি 5 মিনিটে এই সম্পূর্ণ এন্ট্রিটি চলবে, তবে কেবলমাত্র যদি চলতি মিনিট (যুগের কয়েক মিনিটের মধ্যে) মডিউল 25 শূন্যের সমান হয় তবে এটি চলবে your_command
।
অন্যদের নির্দিষ্ট করেছি, 1 দিন না সমানভাবে 25 মিনিট দ্বারা বিভাজ্য, তাই এই কারণ হবে না হবে your_command
প্রতিদিন একই সময়ে চালানোর জন্য, কিন্তু এটা হবে যে 25 মিনিট চালানো।
আপনার সেরা বাজি 20 মিনিট বা 30 মিনিটে চালানো।
আপনার পরবর্তী সেরাটি হতে পারে প্রতি 5 মিনিটে ট্রিগার করা, এবং তারপরে একটি অভ্যন্তরীণ গণনা বা টাইমস্ট্যাম্প রাখা এবং প্রতি 5 তম ট্রিগার চালানো, বা শেষ রানের পরে 25 মিনিট সময় কেটে গেলে।
আরও জটিল হ'ল মধ্যরাত থেকে শুরু করে এক দিনের জন্য সঠিক সময়ে কাজ করা এবং দিনের শেষে ত্রুটিটি গ্রহণ করা। এটি বিভিন্ন সময়ে ক্রন্টব এন্ট্রি সদৃশ জড়িত হবে।
এর চেয়ে জটিল আরও এক মাস পুরো সময় কাটাতে হবে যা বিভিন্ন সংমিশ্রণের জন্য ক্রন্টব প্রবেশের অনেকগুলি অনুলিপি জড়িত।
অবশেষে আপনি ডেমনে নিজের সর্বদা বাস্তবায়ন করতে পারেন এবং শিডিয়ুলিংটি করতে পারেন।
এটির সাথে আমার কোনও প্রত্যক্ষ অভিজ্ঞতা নেই তবে আপনি বাক্সের বাইরে যা চান তা fcron প্রদর্শিত হবে। এর ডকুমেন্টেশন অনুসারে আপনি ফ্রিকোয়েন্সি নির্দিষ্ট করতে পারেন:
# Get our mails every 30 minutes
@ 30 getmails -all
# make some security tests every 48 hours of system up time,
# force a mail to be sent to root even if there is no output
@mailto(root),forcemail 2d /etc/security/msec/cron-sh/security.sh
@ 25 command
উচিত।
এখানে কী সমস্যা তা সংক্ষেপে আমাকে বলি। মিনিট ফিল্ডে 25 প্রবেশ করানো cron
যখন বর্তমান সময়ের মিনিটগুলির 25 এর সমান হয় তখন তা সঞ্চালনের কারণ হয়ে দাঁড়ায় , এটি একবারে একবার হয়। আপনি ম্যাচের একটি তালিকা প্রবেশ করতে পারেন, সমস্যাটি হ'ল 60 (এক ঘন্টার মিনিট) 25 দ্বারা বিভাজ্য নয়, তাই আপনাকে ঘন্টাটির ভিত্তিতে কয়েকটি এন্ট্রি যুক্ত করতে হবে। 60 এবং 25 এর সর্বনিম্ন সাধারণ একাধিকটি 300, এটি 5 * 60 so তাই আপনার আসল শুরুতে ফিরে না আসা পর্যন্ত আপনাকে 5 ঘন্টার মধ্যে চক্রের প্রয়োজন। উদাহরণ স্বরূপ:
0, 25, 50
15, 40
5, 30, 55
20, 45
10, 35
...
তবে এখানে আবার 24 (দিনে ঘন্টা) 5 দ্বারা বিভাজ্য নয়, 5 এবং 24 এর সর্বনিম্ন সাধারণ একাধিকটি কেবল 5 * 24 = 120 হয় so
আপনি কোনও ফাইলের শেষ পরিবর্তন সময়ের সাথে খেলতে পারেন
একটি ছোট স্ক্রিপ্ট তৈরি করুন (উদাহরণস্বরূপ /usr/local/bin/age
) যা কোনও ফাইলের বয়স আউটপুট দেয়:
#bin/sh
echo $(( $( date +%s ) - $( stat -c %Z $1 ) ))
আপনার ক্রোনটব দেখতে দেখতে (25 মিনিটের সমতা 1500 সেকেন্ড ধরে আমি যদি সঠিক হই তবে)
* * * * * [ $(/usr/local/bin/fileage /var/tmp/your_command.offset) -gt 1500 ] && touch /var/tmp/your_command.offset && your_command
মনে রাখবেন /var/tmp
পরিবর্তে আমি ব্যবহার করি /tmp
কারণ এফএইচএস অনুসারে এটি সিস্টেম শাটডাউন / স্টার্টআপে মোছার কথা নয়।
আমি মনে করি নিম্নলিখিত 0 0/25 * * * কাজ করা উচিত?