আমি লিনাক্সে প্রতি 10 সেকেন্ড চলমান ক্রোন জব শিডিউল করব কীভাবে?


14

আমি প্রতি মিনিটে কীভাবে করতে জানি, তবে প্রতি 10 সেকেন্ডের কীভাবে?

উত্তর:


10

আপনি প্রতি দশ সেকেন্ডে কাজের সময় নির্ধারণ করতে পারবেন না, তবে আমি মনে করি আপনি প্রতি মিনিটে কাজ চালানোর জন্য সময় নির্ধারণ করতে এবং 10 সেকেন্ডের ব্যবধানে একটি লুপে ঘুমাতে পারেন। এটি আপনার কমান্ডটি দশ সেকেন্ডের অন্তর শেষ হওয়ার আগেই সম্পূর্ণ হওয়ার পূর্বে পূর্বাভাস দেওয়া হবে বা পরবর্তী কমান্ডটি চললে আপনি ওভারল্যাপ হয়ে যাবেন। এটি একটি অনিশ্চিত সমাধানের মতো মনে হয় তবে আপনি যদি স্ক্রিপ্টের প্রধান কমান্ডটির খুব অল্প প্রয়োগের গ্যারান্টি দিতে পারেন তবে এটি কার্যকর হবে।

#!/bin/bash
i=0

while [ $i -lt 6 ]; do
  /run/your/command &
  sleep 10
  i=$(( i + 1 ))
done

আমিও একই রকম কাজ করি ... আমি কেবল ক্রোনটবে * ব্যবহার করি এবং তারপরে আমার স্ক্রিপ্টটি চিরকালের জন্য পশুপাল এবং লুপ ব্যবহার করে, লক না পেলে কখনও ছাড়বে না।
পিটার

22

আমি গত সপ্তাহে একই কাজ ছিল। আমার সমাধানগুলি হ'ল মানক ক্রোন এন্ট্রিকে পছন্দসই ফ্রিকোয়েন্সিতে গুণ করা হয়েছিল। আমার ক্রন্টব দেখতে দেখতে:

* * * * * /usr/local/bin/php /var/www/myscript.php
* * * * * sleep 10; /usr/local/bin/php /var/www/myscript.php
* * * * * sleep 20; /usr/local/bin/php /var/www/myscript.php
* * * * * sleep 30; /usr/local/bin/php /var/www/myscript.php
* * * * * sleep 40; /usr/local/bin/php /var/www/myscript.php
* * * * * sleep 50; /usr/local/bin/php /var/www/myscript.php

আপনি যদি myscript.php এর ফলাফলগুলি দেখতে চান, যেমন ডিবাগিংয়ের জন্য, কেবল সংযোজন করুন

&> /tmp/myscipt.log

উপরের ক্রোনট্যাবের প্রতিটি লাইনে। তারপরে stderr এবং stdout লগ ফাইলে পুনঃনির্দেশিত হন।


2
ক্রিয়েটিভ ক্রোন ব্যবহারের জন্য +1
shodanshok ২

2
এটি সেরা সমাধান আইএমএইচও। এটি কী করছে তা স্পষ্ট এবং কোনও স্ক্রিপ্ট বা তৃতীয় পক্ষের সমাধানের প্রয়োজন নেই।
জেরেমি

1

আমি মনিট ব্যবহার করতাম এবং চক্রের সময়টি 10 ​​সেকেন্ডে সেট করতাম । ক্রোন সিস্টেমের বাইরে এটি পরিচালনা করার জন্য এটি একটি পরিষ্কার উপায়।

আমি এটি নির্দিষ্ট স্ক্রিপ্টগুলি দিয়ে করি যা 15 সেকেন্ডের ব্যবধানে চালানো দরকার।

দেখুন: জেডএফএস পুলের ইনক্রিমেন্টাল / অবিচ্ছিন্ন ব্যাকআপগুলি কীভাবে সম্পাদন করবেন?


0

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

* * * * * ( sleep 10 ; /usr/bin/wget http://api.us/application/)

0

আপনি যদি 10 সেকেন্ডে যেতে চান, উদাহরণস্বরূপ 5 সেকেন্ড, আমি এইরকম একটি ছোট স্ক্রিপ্ট দিয়ে একজন কর্মী লুপ তৈরি করার পরামর্শ দিচ্ছি:

#!/bin/bash

INTERVAL=5
while true; do

  echo "do something"

  # wait for next interval
  WAIT_UNTIL=$(($(date +%s) + $INTERVAL))
  while [ $(date +%s) -lt $WAIT_UNTIL ]; do
    sleep 1
  done

done

আপনার যদি দ্বিতীয় সেকেন্ডে যেতে হয়, ডেট কমান্ডে মাইক্রোসেকেন্ড যুক্ত করুন।


0
* * * * * script to run
* * * * * sleep 10; script to run
* * * * * sleep 20; script to run

এখানে স্ক্রিপ্টটি 10 ​​সেকেন্ডের ব্যবধানের সাথে চালানো যেতে পারে ...


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