পিং একাধিক আইপি ব্যাশ ব্যবহার করে?


17

আমার কাছে 10 টি আইপি নম্বর রয়েছে যা চেক করার জন্য আমাকে প্রতিদিন পিং করতে হয়, আমি কীভাবে এটি বেস স্ক্রিপ্ট ব্যবহার করে করতে পারি। যাতে আমি ক্রোন ব্যবহার করে সেই কাজটি স্বয়ংক্রিয় করতে পারি। আমি কেবল বেস স্ক্রিপ্ট চাই।

ধন্যবাদ.


উত্তরের নীচে আমি গুগল, ইয়াহু, এমএসএন ইত্যাদির আইপি উল্লেখ করেছি আমি নিজে চেষ্টা করেছি have {} সন্নিবেশ করা হচ্ছে এবং আইপি এর সাথে তাদের আলাদা করার জন্য এখানে কাজ করছে না। আশা করি এটি ভবিষ্যতে কাউকে সাহায্য করতে পারে। পড়ার জন্য আপনাকে ধন্যবাদ.
rɑːdʒɑ

উত্তর:


18

যেহেতু আপনার আইপি পরিসীমাটির কোনও প্রতিসাম্য নেই এবং কেবলমাত্র 10 টি নোড রয়েছে, তাই আমি তাদের একটি পাঠ্য ফাইলে তালিকাভুক্ত করার পরামর্শ দেব। আমি তালিকাটিযুক্ত ফাইলটি বিবেচনা করছি list.txtযা নীচে প্রদর্শিত প্রতিটি লাইনে আইপি একের তালিকা রয়েছে,

10.12.13.14
172.15.48.3
192.168.45.54
...
48.114.78.227

আপনি এই স্ক্রিপ্টটি ব্যবহার করতে পারেন,

#!/bin/bash
# Program name: pingall.sh
date
cat /path/to/list.txt |  while read output
do
    ping -c 1 "$output" > /dev/null
    if [ $? -eq 0 ]; then
    echo "node $output is up" 
    else
    echo "node $output is down"
    fi
done

ক্রন্টেব 30 মিনিটের ব্যবধানে আপনার নোডের চলমান স্থিতি আপডেট করতে,

*/30 * * * * /path/to/pingall.sh > /path/to/log.txt

Log.txt এর আউটপুট

$ cat /path/to/log.txt
Fri Jan 31 15:06:01 IST 2014
node 10.12.13.14 is up
node 172.15.48.3 is up
node 192.168.45.54 is up
...
node 48.114.78.227 is down

আপনি কি আশা করেছিলেন তা কি নয়?
সৌরভসি

এটি হ'ল ওপি যা খুঁজছে তা হ'ল .. এবং যেহেতু গুগল.কম, ইয়াহু ডট কম ইত্যাদি ওয়েবসাইটগুলি অনুরোধগুলি পরিচালনা করতে একাধিক সার্ভার ব্যবহার করে তাদের ডোমেন নাম দিয়ে তাদের পিং করা ভাল (যাতে আপনি সম্ভবত না করেন আগামী সপ্তাহে আপনার পিং-লিস্টে আইপি পরিবর্তন করতে হবে) ..
যথাযথ

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


1

এই স্ক্রিপ্টটি পরীক্ষা করুন।

   #!/bin/bash
    for i in `seq ${2} ${3}`
    do
        ping -c 1 ${1}.${i} > /dev/null 2>&1
        if [ $? -eq 0 ]; then
            echo "${1}.${i} responded."
        else
            echo "${1}.${i} did not respond."
        fi
    done

স্ক্রিপ্ট 192.168.1 0 10 চালানোর জন্য উদাহরণস্বরূপ এটি পিপসকে 192.168.1.0 থেকে 192.168.1.10 এ ckeck দেবে এবং পিং ঠিক আছে এবং যদি তা না দেয় তবে প্রতিক্রিয়া জানায়।

এনবি: সীমা এবং আইপি সর্বদা একই থাকে তবে আপনি স্থিতিশীল ভেরিয়েবল দ্বারা $ 1। 2 $ 3 প্রতিস্থাপন করতে পারেন।


আইপি একই ধরণের নয়। পিছনে মানদণ্ড thats। যে কোনও উপায়ে উত্তরের জন্য ধন্যবাদ। + 1
rʒɑdʒɑ

ঠিক আছে দয়া করে আপনার প্রশ্নে এটি লিখুন। ধন্যবাদ
মেথক্স

একটি ঝরঝরে এবং সরল স্ক্রিপ্ট যা খুব কার্যকর হতে পারে (যেমন: এম্বেড থাকা ডিভাইসে), যদিও এটি প্রশ্নের শর্তগুলির 100% সমাধান করে না। তোমাকে ধন্যবাদ. +1 প্রাপ্য।
সোপালাজো ডি অ্যারিরেজ

1

ধরে নিন যে আপনার কাছে 5 আইপি রয়েছে (কেবলমাত্র উত্তরটি হ্রাস করতে) তবে আপনি সেগুলি দিয়ে পিং করতে পারেন

#!/usr/bin/bash    
for i in xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx xxx.xxx.xxx.xxxx 
do
ping -c 5 $i
done

দ্রষ্টব্য: কার্ল বন্ধনী নয়, আইপি এর মধ্যে কোনও কমা (()) নেই।

আশা করি এইটি কাজ করবে.

উদা:

[raja @ scripts]$ cat ping.sh
for i in 74.125.236.70  98.139.183.24  65.55.206.228  91.189.94.156 198.252.206.24
do
ping -c 5 $i 
done 
[raja @ scripts]$ ./ping.sh
PING 74.125.236.70 (74.125.236.70) 56(84) bytes of data.
64 bytes from 74.125.236.70: icmp_seq=1 ttl=128 time=11.5 ms
64 bytes from 74.125.236.70: icmp_seq=2 ttl=128 time=11.0 ms
64 bytes from 74.125.236.70: icmp_seq=3 ttl=128 time=10.9 ms
64 bytes from 74.125.236.70: icmp_seq=4 ttl=128 time=16.5 ms
64 bytes from 74.125.236.70: icmp_seq=5 ttl=128 time=18.2 ms

--- 74.125.236.70 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4025ms
rtt min/avg/max/mdev = 10.966/13.682/18.291/3.120 ms
PING 98.139.183.24 (98.139.183.24) 56(84) bytes of data.
64 bytes from 98.139.183.24: icmp_seq=1 ttl=128 time=244 ms
64 bytes from 98.139.183.24: icmp_seq=2 ttl=128 time=253 ms
64 bytes from 98.139.183.24: icmp_seq=3 ttl=128 time=255 ms
64 bytes from 98.139.183.24: icmp_seq=4 ttl=128 time=251 ms
64 bytes from 98.139.183.24: icmp_seq=5 ttl=128 time=243 ms

--- 98.139.183.24 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4251ms
rtt min/avg/max/mdev = 243.511/249.623/255.275/4.674 ms
PING 65.55.206.228 (65.55.206.228) 56(84) bytes of data.
From 10.22.96.94 icmp_seq=5 Packet filtered

--- 65.55.206.228 ping statistics ---
5 packets transmitted, 0 received, +1 errors, 100% packet loss, time 14002ms

PING 91.189.94.156 (91.189.94.156) 56(84) bytes of data.
64 bytes from 91.189.94.156: icmp_seq=1 ttl=128 time=240 ms
64 bytes from 91.189.94.156: icmp_seq=2 ttl=128 time=240 ms
64 bytes from 91.189.94.156: icmp_seq=3 ttl=128 time=240 ms
64 bytes from 91.189.94.156: icmp_seq=4 ttl=128 time=240 ms
64 bytes from 91.189.94.156: icmp_seq=5 ttl=128 time=240 ms

--- 91.189.94.156 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4242ms
rtt min/avg/max/mdev = 240.060/240.222/240.309/0.626 ms
PING 198.252.206.24 (198.252.206.24) 56(84) bytes of data.
64 bytes from 198.252.206.24: icmp_seq=1 ttl=128 time=237 ms
64 bytes from 198.252.206.24: icmp_seq=2 ttl=128 time=237 ms
64 bytes from 198.252.206.24: icmp_seq=3 ttl=128 time=237 ms
64 bytes from 198.252.206.24: icmp_seq=4 ttl=128 time=237 ms
64 bytes from 198.252.206.24: icmp_seq=5 ttl=128 time=242 ms

--- 198.252.206.24 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4251ms
rtt min/avg/max/mdev = 237.600/238.575/242.291/1.933 ms

আপনি আপনার প্রশ্নে বর্ণিত ক্রোন দিয়ে প্রয়োগটি দেখান নি .. এছাড়াও কীভাবে স্ক্রিপ্টটি পিংয়ের অনুরোধগুলির ফলাফলকে অবহিত করবে ..
সুনির্দিষ্ট

আমি উল্লেখ করেছি যে আমি কেবল স্ক্রিপ্ট চাই। ক্রোন এই প্রশ্নের অংশ নয়। আমার এই স্ক্রিপ্টটির প্রয়োজন কেন এবং ক্রোন কাজ হিসাবে এই স্ক্রিপ্টটির উদ্দেশ্য উল্লেখ করার জন্য ক্রোন উল্লেখ করেছিলেন।
rɑːdʒɑ

@ হ্যাশ আমার প্রিয় বন্ধুকে জিজ্ঞাসা করার আগে এটি ব্যবহার করে দেখুন looking ধন্যবাদ আপনাকে ধন্যবাদ।
rɑːdʒɑ

আমি কখনও বলিনি যে স্ক্রিপ্টটি কাজ করবে না .. তবে আপনার প্রশ্নে cronকাজের উল্লেখ হিসাবে , কাজের ফলাফল ব্যবহারকারীকে অবহিত করার একটি উপায় প্রয়োজন হবে, বা আপনি কি অন্য কিছু প্রস্তাব দিয়েছেন?
সঠিক

আমার উদ্দেশ্য ক্রোন জব, আমার অর্থ কেন এই বেস স্ক্রিপ্টের দরকার mean তবে আমার প্রয়োজন বশ
@

1
echo 192.168.1.1 192.168.1.2 192.168.1.3 | xargs -n1 ping -w 1

বা গ্রেপ সহ, কেবল পিং ননগুলিই দেখুন

echo 192.168.1.1 192.168.1.2 192.168.1.3 | xargs -n1 ping -w 1 | grep -b1 100

1

আমরা হব

যে হিসাবে সহজ: parallel --gnuকমান্ড এবং তারপরে আপনার কমান্ড ব্যবহার করুন ।

আইপি এর উদাহরণ পান:

$ dig +trace google.com |ipx

127.0.0.1
127.0.0.1
199.7.91.13
199.7.91.13
192.48.79.30
192.48.79.30
173.194.33.161
173.194.33.165
173.194.33.163
173.194.33.164
173.194.33.174
173.194.33.160
173.194.33.167
173.194.33.166
173.194.33.162
173.194.33.169
173.194.33.168
216.239.32.10
216.239.32.10

$ parallel --gnu ping -c1 ::: `dig +trace google.com |ipx`
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_req=1 ttl=64 time=0.018 ms

--- 127.0.0.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.018/0.018/0.018/0.000 ms
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_req=1 ttl=64 time=0.017 ms

--- 127.0.0.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.017/0.017/0.017/0.000 ms
PING 173.194.33.132 (173.194.33.132) 56(84) bytes of data.
64 bytes from 173.194.33.132: icmp_req=1 ttl=54 time=20.5 ms

--- 173.194.33.132 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 20.526/20.526/20.526/0.000 ms
PING 173.194.33.131 (173.194.33.131) 56(84) bytes of data.
64 bytes from 173.194.33.131: icmp_req=1 ttl=54 time=20.7 ms
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.