বাশ স্ক্রিপ্ট ব্যবহার করে ক্রোনট্যাব ইনস্টল করা হচ্ছে


11

ক্রোনট্যাবে দুটি স্ক্রিপ্ট ইনস্টল করার জন্য আমি একটি স্ক্রিপ্ট তৈরি করেছি।

#!/bin/bash

 sudo crontab -l > mycron
 #echo new cron into cron file

 echo "*/05 * * * * bash /mnt/md0/capture/delete_old_pcap.sh" >> mycron #schedule the delete script
 echo "*/12 * * * * bash  /mnt/md0/capture/merge_pcap.sh" >> mycron     #schedule the merge script

#install new cron file
 crontab mycron
rm mycron

স্ক্রিপ্টটি চলতে থাকে এবং ক্রন্টবায় দুটি লাইন যুক্ত করে। তবে আমি যদি আবার স্ক্রিপ্টটি চালিত করি তবে এটি আবার সেই লাইন যুক্ত করে, সুতরাং আমার কাছে একই জিনিস বলে চারটি লাইন থাকবে। আমি ইনস্টল স্ক্রিপ্টটি এমন চালিত করতে চাই, ক্রন্টবায় প্রবেশ করা লাইনগুলি পুনরাবৃত্তি করবে না। আমি এটা কিভাবে করবো


আমি বুঝতে পারছি না তোমার উদ্দেশ্য কী? আপনি কেন এটি প্রথম স্থানে স্ক্রিপ্ট করলেন ?, দয়া করে সম্পাদনা করুন এবং আপনার মূল পোস্টে তথ্য যুক্ত করুন। tks
এক্স টিয়ান

উত্তর:


19

আমি /etc/cron.dওভার ব্যবহার করার পরামর্শ দিচ্ছি crontab

আপনি এমন ফাইল রাখতে পারেন /etc/cron.dযেখানে ক্রন্টব এন্ট্রিগুলির মতো আচরণ করে। যদিও ফর্ম্যাটটি কিছুটা আলাদা।

উদাহরণস্বরূপ
/etc/cron.d/pcap:

*/05 * * * * root bash /mnt/md0/capture/delete_old_pcap.sh
*/12 * * * * root bash  /mnt/md0/capture/merge_pcap.sh

ফর্ম্যাটের পার্থক্যটি সময় নির্দিষ্টকরণের মতো ব্যবহারকারীকে কাজ চালানোর জন্য যুক্ত করছে।

এখন আপনি কেবল ফাইলটি উপস্থিত আছে কিনা তা পরীক্ষা করে দেখতে পারেন এবং যদি আপনি এটি ওভাররাইট করেন তবে তাতে কিছু আসে যায় না।

 

মনে রাখবেন যে এটি সম্ভবত আপনার ক্রোন ডেমন নাও থাকতে পারে /etc/cron.d। আমি জানি না কোন ক্রোন ডেমনের এটি রয়েছে তবে ভিক্সি ক্রোন হল লিনাক্সের মানক ক্রোন ডেমন, এবং এটি করে।


3

আপনি পরিবর্তে একটি ফাংশন ঘোষণা করতে পারে:

add() {
  grep -Fq "$1" mycron || echo "$1" >> mycron
}

এবং এই বলে প্রার্থনা করুন:

add "*/05 * * * * bash /mnt/md0/capture/delete_old_pcap.sh"

এটি কেবলমাত্র ফাইলটিতে উপস্থিত না থাকলে লাইনটি সংযোজন করবে।


আপনি কি দয়া করে বলতে পারেন গ্রেপ-এফকিউ "$ 1" কি করে?
Jishnu U Nair

এবং স্ক্রিপ্টটি ত্রুটি দেয় গ্রেপ: ইনপুট ফাইল `মাইক্রন 'এছাড়াও আউটপুট
জিশনু ইউ নায়ার

@JishnuUNair -Fকরতে হবে grepনির্দিষ্ট স্ট্রিং হিসেবে প্যাটার্ন ব্যাখ্যা।
ডিভনুল

@ জিশনুআনায়ার আপনি কি নিশ্চিত যে উপরের লেখাটি সঠিকভাবে অনুলিপি করেছেন?
ডিভনুল

হ্যাঁ, আমি এটি সঠিকভাবে অনুলিপি করেছি।
Jishnu U Nair

1

ব্যাশ থেকে আমি ব্যবহার করি

    crontab -l | { cat; echo "*/10 * * * * /script/script.sh > /dev/null 2>&1"; } | crontab -

দূরবর্তী সার্ভারগুলিতে ক্রোন এন্ট্রি যুক্ত করতে এই স্ক্রিপ্টটি ব্যবহার করুন

    cronok="##";
    cronok+=`ssh $host 'crontab -l'`;
    pattern="reboot.sh"

    if [[ "$cronok" == *${pattern}* ]]; then
         echo "found cron  at [$host]"
      else
        echo "Cron at [$host] not found adding now"
       `ssh $host 'crontab -l | { cat; echo "*/10 * * * * /root/reboot.sh > /dev/null 2>&1"; } | crontab -'`
       echo "finished cron"
    fi

0

এটি থামাতে আপনি কোনও স্ক্রিপ্ট লিখতে এবং ক্রন্টব এ যুক্ত করতে পারেন:

####You should calculate tiem you want kill your script.
#######code of calculating........
pid=`ps ax |egrep myscript |awk {'print $1'}`
kill -9 $pid
#OR
kill $pid

3
এটি প্রশ্নের উত্তর দেয় না। এছাড়াও, kill -9কেবলমাত্র একটি শেষ অবলম্বন হিসাবেই
গ্রিম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.