疎通確認するシェルスクリプトを作ったのでメモする。
機能
・実行結果をファイル出力
・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.
課題
配列を使ってみたかったけど、難しそうだった