প্রতি 25 মিনিটে ক্রোনজব


13

আমি জানতে চাই যে প্রতি 25 মিনিটে কোনও কাজ চালানোর আরও সহজ উপায় আছে কিনা। ক্রোনজবগুলিতে, আপনি যদি মিনিট প্যারামিটারটিকে * / 25 হিসাবে নির্দিষ্ট করেন তবে এটি প্রতি ঘন্টাের 25 তম এবং 50 তম মিনিটে চলবে'll

উত্তর:


15

ক্রন্টব-এ কমান্ডটি কার্যকর করা হয়েছে /bin/shযাতে আপনি গণিতের বিস্তারটি বর্তমান মিনিটের মডুলো 25 শূন্যের সমান কিনা তা গণনা করতে ব্যবহার করতে পারেন:

*/5 * * * * [ $(( $(date +\%s) / 60 \% 25 )) -eq 0 ] && your_command

cronপ্রতি 5 মিনিটে এই সম্পূর্ণ এন্ট্রিটি চলবে, তবে কেবলমাত্র যদি চলতি মিনিট (যুগের কয়েক মিনিটের মধ্যে) মডিউল 25 শূন্যের সমান হয় তবে এটি চলবে your_command

অন্যদের নির্দিষ্ট করেছি, 1 দিন না সমানভাবে 25 মিনিট দ্বারা বিভাজ্য, তাই এই কারণ হবে না হবে your_commandপ্রতিদিন একই সময়ে চালানোর জন্য, কিন্তু এটা হবে যে 25 মিনিট চালানো।


সাধারণ জেনিয়াল ...
টমাস

নোট করুন যে আইএসসি থেকে ক্রোন প্রয়োগের সাথে অন্তত আপনার ব্যাকস্ল্যাশ সহ সেই% অক্ষরগুলি পালাতে হবে।
স্টাফেন চেজেলাস

@ স্টাফেনচেজেলাস, ভাল কথা। আমি এগিয়ে গিয়েছিলাম এবং শতাংশ লক্ষণের আগে ব্যাকস্ল্যাশগুলি যুক্ত করেছি কারণ আমার জ্ঞানে ক্রনের প্রতিটি প্রয়োগের জন্য এটির প্রয়োজন।
কোড-রিড

7

আপনার সেরা বাজি 20 মিনিট বা 30 মিনিটে চালানো।

আপনার পরবর্তী সেরাটি হতে পারে প্রতি 5 মিনিটে ট্রিগার করা, এবং তারপরে একটি অভ্যন্তরীণ গণনা বা টাইমস্ট্যাম্প রাখা এবং প্রতি 5 তম ট্রিগার চালানো, বা শেষ রানের পরে 25 মিনিট সময় কেটে গেলে।

আরও জটিল হ'ল মধ্যরাত থেকে শুরু করে এক দিনের জন্য সঠিক সময়ে কাজ করা এবং দিনের শেষে ত্রুটিটি গ্রহণ করা। এটি বিভিন্ন সময়ে ক্রন্টব এন্ট্রি সদৃশ জড়িত হবে।

এর চেয়ে জটিল আরও এক মাস পুরো সময় কাটাতে হবে যা বিভিন্ন সংমিশ্রণের জন্য ক্রন্টব প্রবেশের অনেকগুলি অনুলিপি জড়িত।

অবশেষে আপনি ডেমনে নিজের সর্বদা বাস্তবায়ন করতে পারেন এবং শিডিয়ুলিংটি করতে পারেন।


6

এটির সাথে আমার কোনও প্রত্যক্ষ অভিজ্ঞতা নেই তবে আপনি বাক্সের বাইরে যা চান তা 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 মিনিট দেখতে পাবেন?
ফিলোমাথ

এফক্রন ব্যবহার করে কৌশলটি করা @ 25 commandউচিত।
কালেব

ধন্যবাদ কালেব ডকুমেন্টেশন থেকে সরাসরি উত্তোলনের পরিবর্তে আমার একটি উপযুক্ত উদাহরণ তৈরি করা উচিত ছিল।
che2cbs

2

এখানে কী সমস্যা তা সংক্ষেপে আমাকে বলি। মিনিট ফিল্ডে 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


উত্তরটি মূল প্রশ্নের একটি মন্তব্য হওয়া উচিত ছিল।
ফিলোমাথ

1

আপনি কোনও ফাইলের শেষ পরিবর্তন সময়ের সাথে খেলতে পারেন

  • একটি ছোট স্ক্রিপ্ট তৈরি করুন (উদাহরণস্বরূপ /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কারণ এফএইচএস অনুসারে এটি সিস্টেম শাটডাউন / স্টার্টআপে মোছার কথা নয়।


-2

আমি মনে করি নিম্নলিখিত 0 0/25 * * * কাজ করা উচিত?


আমার জ্ঞান অনুযায়ী এটি প্রতি মিনিটের জন্য কাজ করবে।

এটি প্রতি এক ঘণ্টায় একবার চালিত হবে ... 25 ঘন্টা? 0/25 ... এটি কী করে তা নিশ্চিতও নয় তবে এটি ওপি এর পরে কী হবে তা নয়।
কালেব
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.