Yahoo!と阿部寛とGoogleに疎通確認するシェルスクリプトを作った

疎通確認するシェルスクリプトを作ったのでメモする。

機能

・実行結果をファイル出力
・host名出力
・実行日次の出力
・ip a コマンド出力
・http_proxy コマンドの結果出力
・https_proxy コマンドの結果出力
・以下の宛先に対する疎通確認(nc-v / curl)出力
  URL_1=yahoo.co.jp Yahoo! JAPAN
  URL_2=abehiroshi.la.coocan.jp 阿部寛のホームページ (coocan.jp)
  URL_3=google.com Google
・ファイル出力機能(実行フォルダに CheckNWResult_(hostname).log が生成されます)
 

実行方法

chmod 777 Check_Backup_NW_Linux_ver1.0.sh #パーミッション変更。必要に応じて
./Check_Backup_NW_Linux_ver1.0.sh #スクリプト実行

zip

Check_NW_Linux+ResultExmaple
中身
Check_NW_Linux.sh
CheckNWResult_Ubuntu1804.log

コード

Check_NW_Linux.sh

####yamapan.tokyo
#!/bin/sh
LOGFILE="CheckNWResult_$(hostname -s).log"
echo "Starting..."
echo "ログファイルは${LOGFILE}です。"

{
SECONDS=0
LOGFILE="CheckNWResult_$(hostname -s).log"
exec > "${LOGFILE}"
exec 2>&1

#####関数設定######
#NW nc -vz 確認 443
function testNW443 () {
echo "#TRY!! nc -vz ${1} 443 "
nc -vz $1 443
}

#NW nc -vz 確認 80
function testNW80 () {
echo "#TRY!! nc -vz ${1} 80 "
nc -vz $1 80
}

#Curl 確認
function testcurl(){
echo "##TRY!! curl -I ${1} "
curl -I $1
}

###宛先設定
URL_1=yahoo.co.jp
URL_2=abehiroshi.la.coocan.jp
URL_3=google.com

#####環境情報確認
echo "#### 環境情報確認"
echo "## 実行しているマシンのホスト名は$(hostname -s)です。"
echo "## 実行日次は$(date)です。"
echo "## ip a コマンドの結果は以下です"
ip a
echo "##hostnamectl コマンドの結果は以下です"
hostnamectl
echo "##プロキシ設定状態(空白場合は場合は結果無し)"
echo "http_proxy コマンドの結果"
echo $http_proxy
echo "https_proxy コマンドの結果"
echo $https_proxy

echo "####疎通確認########"
testNW443 $URL_1
testcurl $URL_1

testNW80 $URL_2
testcurl $URL_2

testNW443 $URL_3
testcurl $URL_3

echo ""
echo "Complete..."
echo "[INFO] Script time is ${SECONDS}sec."

}

実行結果例

CheckNWResult_Ubuntu1804.log

#### 環境情報確認
## 実行しているマシンのホスト名はUbuntu1804です。
## 実行日次はSun Mar 20 09:42:50 UTC 2022です。
## ip a コマンドの結果は以下です
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:22:48:67:b8:14 brd ff:ff:ff:ff:ff:ff
    inet 10.4.0.28/24 brd 10.4.0.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::222:48ff:fe67:b814/64 scope link
       valid_lft forever preferred_lft forever
##hostnamectl コマンドの結果は以下です
   Static hostname: Ubuntu1804
         Icon name: computer-vm
           Chassis: vm
        Machine ID: e14b8333230f449fb451e538ce571220
           Boot ID: 28dee263c90448f38b80dba03a6c49c7
    Virtualization: microsoft
  Operating System: Ubuntu 18.04.5 LTS
            Kernel: Linux 5.4.0-1063-azure
      Architecture: x86-64
##プロキシ設定状態(空白場合は場合は結果無し)
http_proxy コマンドの結果


https_proxy コマンドの結果


####疎通確認########
#TRY!! nc -vz yahoo.co.jp443
Connection to yahoo.co.jp 443 port [tcp/https] succeeded!
##TRY!! curl -I yahoo.co.jp
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed


  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     1    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
HTTP/1.1 301 Redirect
Date: Sun, 20 Mar 2022 09:42:50 GMT
Connection: keep-alive
Server: ATS
Cache-Control: no-store
Location: https://www.yahoo.co.jp:443/
Content-Type: text/html
Content-Language: en
Content-Length: 1


#TRY!! nc -vz abehiroshi.la.coocan.jp80
Connection to abehiroshi.la.coocan.jp 80 port [tcp/http] succeeded!
##TRY!! curl -I abehiroshi.la.coocan.jp
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed


  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0   538    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
HTTP/1.1 200 OK
Date: Sun, 20 Mar 2022 09:42:50 GMT
Content-Type: text/html
Content-Length: 538
Connection: keep-alive
Last-Modified: Thu, 27 Feb 2020 07:10:16 GMT
ETag: "21a-59f8969af8600"
Accept-Ranges: bytes
Server: Apache


#TRY!! nc -vz google.com443
Connection to google.com 443 port [tcp/https] succeeded!
##TRY!! curl -I google.com
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed


  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0   219    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Sun, 20 Mar 2022 09:42:50 GMT
Expires: Tue, 19 Apr 2022 09:42:50 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 219
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN



Complete...
[INFO] Script time is 0sec.

課題

配列を使ってみたかったけど、難しそうだった

Windows の疎通確認PowerShellスクリプトはこちら

疎通確認する PowerShell スクリプトを作ったのでメモする。 機能 ・host名出力 ・ipconfig出力 ・WinH...

シェアする

  • このエントリーをはてなブックマークに追加

フォローする