几个精简版的win7系统

by 追梦人博客

追梦人博客 / 2017-08-19 21:13

1.苏博联合论坛WIN7LITE7658EX_NET_IE9

文件大小:296.96M

下载地址:http://pan.baidu.com/s/1eR5Iteq

2.苏博联合论坛WIN7LITE7658EX_NET_IE8

文件大小:239m

开机占用内存250M左右,占用硬盘1.1GB。

下载地址:http://pan.baidu.com/s/1bpvpqov

这个自己实测安装过,可以用国外的这款cw激活工具激活系统。

下载地址:http://d.zmrbk.com/soft/win7jihuo-CW.exe

3.烦烦烦大神的win7系统(三烦win7)

原系统文件大小239.8M

优化后ghost版文件大小656.7M

下载地址:http://pan.baidu.com/s/1slobmRb

开机占用内存210M,硬盘占用1.28G。

下图为我安装的优化版

4.windows thin pc

这是微软面向虚拟机的官方精简版win7系统,可以用激活工具激活,原版是英文版,需要自己安装中文语言包,优势在于官方出品。

文件大小:1.54G

开机占用内存319M,硬盘占用3G。

下载地址:http://pan.baidu.com/s/1jIzKIkm

Shared via Inoreader

iPhoneから送信

几个精简版的win7系统

iPhone 6/6 PlusのSIMはAndroidスマホでも使える。HUAWEI P8 liteに設定してみた #ファーウェイ | ねんざブログ

iPhone 6/6 PlusのSIMはAndroidスマホでも使える。HUAWEI P8 liteに設定してみた #ファーウェイ | ねんざブログ

<img width="728" height="486" src="https://nenza.net/wp-content/uploads/2015/09/0014.jpg&quot; alt="iPhone 6/6 PlusのSIMはAndroidスマホでも使える。HUAWEI P8 liteに設定してみた #ファーウェイ" srcset="https://nenza.net/wp-content/uploads/2015/09/0014.jpg 1000w, nenza.net/wp-content/uploads/2015/09/0014-300×200.jpg 300w, nenza.net/wp-content/uploads/2015/09/0014-500×334.jpg 500w” sizes=”(max-width: 728px) 100vw, 728px” class=”” style=”color: rgba(0, 0, 0, 0.65098); font-family: -apple-system-font; font-size: 0.75em; max-width: 100%; margin: 0.5em auto; display: block; height: auto;”>
<img src="http://nenza.net/wp-content/uploads/2015/09/0014.jpg&quot; alt="iPhone 6/6 PlusのSIMはAndroidスマホでも使える。HUAWEI P8 liteに設定してみた #ファーウェイ" width="1000" height="667" srcset="https://nenza.net/wp-content/uploads/2015/09/0014.jpg 1000w, nenza.net/wp-content/uploads/2015/09/0014-300×200.jpg 300w, nenza.net/wp-content/uploads/2015/09/0014-500×334.jpg 500w” sizes=”(max-width: 1000px) 100vw, 1000px” class=”clear” style=”max-width: 100%; margin: 0.5em auto; display: block; height: auto; clear: both;”>

以前、SoftBankでiPhone 6 Plusを契約したのですが、画面を割ってしまいました。その時、端末の修理にもお金がかかるから、手元のAndroidでそのままSIMカード使えないかな、と考えました。

が、しかし

こちらの記事を読むと「SoftBank のiPhone6/6 PlusのSIMは、SoftBankのiPhone以外に利用できない」と結論づけてあったのでやっぱりだめかー、と思ってたんです。

だったら普通にソフトバンクのショップへ行ってSIMの契約を切り替えて使えばいいじゃないか、という話ですが、SIMの契約変更するとiPhone 6 Plus購入時に適用された「月々割」という毎月の割引が、まったくなくなってしまうんだとか。数万円分割引残ってるよ!これはもったいない。

調べていくと、SoftBankのiPhone用SIMでも、非公式にはSIMフリーの端末でも使える、ということがわかりました。

今回、ちょうどファーウェイのモニター企画で「P8 lite」というSIMフリーのAndroid端末をご提供いただいたので、それに設定してみることにしました。

<img src="http://nenza.net/wp-content/uploads/2015/09/0023.jpg&quot; alt="iPhone 6/6 PlusのSIMはAndroidスマホでも使える。HUAWEI P8 liteに設定してみた #ファーウェイ" width="1000" height="667" srcset="https://nenza.net/wp-content/uploads/2015/09/0023.jpg 1000w, nenza.net/wp-content/uploads/2015/09/0023-300×200.jpg 300w, nenza.net/wp-content/uploads/2015/09/0023-500×334.jpg 500w” sizes=”(max-width: 1000px) 100vw, 1000px” class=”clear” style=”max-width: 100%; margin: 0.5em auto; display: block; height: auto; clear: both;”>

この端末「HUAWEI P8 lite」にSoftBankのiPhone 6/ 6 Plus用のSIMを挿します。

<img src="http://nenza.net/wp-content/uploads/2015/09/0033.jpg&quot; alt="iPhone 6/6 PlusのSIMはAndroidスマホでも使える。HUAWEI P8 liteに設定してみた #ファーウェイ" width="1000" height="667" srcset="https://nenza.net/wp-content/uploads/2015/09/0033.jpg 1000w, nenza.net/wp-content/uploads/2015/09/0033-300×200.jpg 300w, nenza.net/wp-content/uploads/2015/09/0033-500×334.jpg 500w” sizes=”(max-width: 1000px) 100vw, 1000px” class=”clear” style=”max-width: 100%; margin: 0.5em auto; display: block; height: auto; clear: both;”>

実は、SIMカードが二枚使えるタイプです。

<img src="http://nenza.net/wp-content/uploads/2015/09/0041.jpg&quot; alt="iPhone 6/6 PlusのSIMはAndroidスマホでも使える。HUAWEI P8 liteに設定してみた #ファーウェイ" width="1000" height="667" srcset="https://nenza.net/wp-content/uploads/2015/09/0041.jpg 1000w, nenza.net/wp-content/uploads/2015/09/0041-300×200.jpg 300w, nenza.net/wp-content/uploads/2015/09/0041-500×334.jpg 500w” sizes=”(max-width: 1000px) 100vw, 1000px” class=”clear” style=”max-width: 100%; margin: 0.5em auto; display: block; height: auto; clear: both;”>

micro SIM用とnano SIM用のスロットがあります。nano SIMのスロットには、SIMじゃなくてmicro SDも挿せるみたいです。

<img src="http://nenza.net/wp-content/uploads/2015/09/0053.jpg&quot; alt="iPhone 6/6 PlusのSIMはAndroidスマホでも使える。HUAWEI P8 liteに設定してみた #ファーウェイ" width="1000" height="667" srcset="https://nenza.net/wp-content/uploads/2015/09/0053.jpg 1000w, nenza.net/wp-content/uploads/2015/09/0053-300×200.jpg 300w, nenza.net/wp-content/uploads/2015/09/0053-500×334.jpg 500w” sizes=”(max-width: 1000px) 100vw, 1000px” class=”clear” style=”max-width: 100%; margin: 0.5em auto; display: block; height: auto; clear: both;”>

で、iPhone 6 Plusで使用していた nano SIM。

<img src="http://nenza.net/wp-content/uploads/2015/09/0063.jpg&quot; alt="iPhone 6/6 PlusのSIMはAndroidスマホでも使える。HUAWEI P8 liteに設定してみた #ファーウェイ" width="720" height="420" srcset="https://nenza.net/wp-content/uploads/2015/09/0063.jpg 720w, nenza.net/wp-content/uploads/2015/09/0063-300×175.jpg 300w, nenza.net/wp-content/uploads/2015/09/0063-500×292.jpg 500w” sizes=”(max-width: 720px) 100vw, 720px” class=”clear” style=”max-width: 100%; margin: 0.5em auto; display: block; height: auto; clear: both;”>

挿入すると、画面の左上に、さっそく「SoftBank」という文字が。回線はすぐに認識します。

が、通信を行うために「APN(アクセスポイント名)」というものを設定しなければいけません。

<img src="http://nenza.net/wp-content/uploads/2015/09/0072.jpg&quot; alt="iPhone 6/6 PlusのSIMはAndroidスマホでも使える。HUAWEI P8 liteに設定してみた #ファーウェイ" width="1000" height="593" srcset="https://nenza.net/wp-content/uploads/2015/09/0072.jpg 1000w, nenza.net/wp-content/uploads/2015/09/0072-300×178.jpg 300w, nenza.net/wp-content/uploads/2015/09/0072-500×297.jpg 500w” sizes=”(max-width: 1000px) 100vw, 1000px” class=”clear” style=”max-width: 100%; margin: 0.5em auto; display: block; height: auto; clear: both;”>

「設定」>「その他」>「モバイルネットワーク」>「アクセスポイント名」と進みましょう。

「P8 lite」はデフォルトだと、「Y!mobile APN」だけが表示されています。(※写真のSoftBankはぼくが設定したもの。)

下の方の「メニュー」から「新しいAPN」を選ぶと、APNが追加できます。

設定項目が出てくるのでここに設定していきます。

ただ、その設定内容をどうするか、それが問題です。

ソフトバンクの公式な案内では、「アクセスインターネットプラス」というプランで利用できるAPNが次のページに公開されています。

これを設定すれば良さそうですが、やはりiPhone用のSIMでは使えない、と公式に明記されています。

<img src="http://nenza.net/wp-content/uploads/2015/09/0082.jpg&quot; alt="008" width="720" height="1280" srcset="https://nenza.net/wp-content/uploads/2015/09/0082.jpg 720w, nenza.net/wp-content/uploads/2015/09/0082-169×300.jpg 169w, nenza.net/wp-content/uploads/2015/09/0082-281×500.jpg 281w” sizes=”(max-width: 720px) 100vw, 720px” class=”clear” style=”max-width: 100%; margin: 0.5em auto; display: block; height: auto; clear: both;”>

なので、非公式な情報となりますが、Googleなどで検索すると、SoftBankのiPhone用のAPN設定が見つかりますので、それを設定します。SoftBankの公式な案内ではありませんので、設定される方は自己責任で行ってください。

<img src="http://nenza.net/wp-content/uploads/2015/09/0092.jpg&quot; alt="iPhone 6/6 PlusのSIMはAndroidスマホでも使える。HUAWEI P8 liteに設定してみた #ファーウェイ" width="720" height="1280" srcset="https://nenza.net/wp-content/uploads/2015/09/0092.jpg 720w, nenza.net/wp-content/uploads/2015/09/0092-169×300.jpg 169w, nenza.net/wp-content/uploads/2015/09/0092-281×500.jpg 281w” sizes=”(max-width: 720px) 100vw, 720px” class=”clear” style=”max-width: 100%; margin: 0.5em auto; display: block; height: auto; clear: both;”>

アクセスポイントの編集画面で以下の通り、設定します。

名前 SoftBank(※名前は任意のもので良いですがわかりやすいように)
APN jpspir
ユーザー名 sirobit
パスワード amstkoi
認証タイプ PAP

SoftBankのメールを利用する方は、同じ画面で以下の項目も設定します。以下の項目については、SoftBankのサイトで案内されている公式なものです。

MMSC http://mms-s
MMSプロキシ andmms.plusacs.ne.jp
MMSポート 8080

上記のように設定ができれば、iPhone用のSIMを使って、SIMフリーのAndroid端末でも通信できるようになると思います。

非公式な情報で設定して通信を行った結果、多額の通信料が請求されるんじゃないか、という点が気になりましたが、今回の端末以外でも何ヶ月感か上記APNの設定をAndroidで試していて、iPhoneの定額料金におさまっているので今のところは問題なさそうです。(今後はどうなるかわかりませんけどね)

SIMフリーの端末だけでなく、SIMロックを解除した例えばdocomoの端末なんかでも利用できるみたいですので、知っておいて損はないと思います。

twitterもやっています

更新情報などをつぶやいています。フォローしていただくと、フォロー返しに行きます。

iPhoneから送信

iPhone 6/6 PlusのSIMはAndroidスマホでも使える。HUAWEI P8 liteに設定してみた #ファーウェイ | ねんざブログ

【Linux】pingコマンドの使い方

by tamohiko

server-memo.net / 2017-08-03 01:51

  2017/08/03  

ネットワークの疎通確認等で良く使用する「ping」コマンドについて、色々と調べた結果をまとめておきます。(動作検証はCentOS7.3で実施)

普段何気なく使用しているコマンドも、あらためて調べてみると知らなかった使い方があったりして面白いです。

pingについて

「ping」は「ICMP」プロトコルの「echo request」パケットを宛先に送信して、宛先から「echo reply」パケットが帰ってくるかでネットワークの通信状態を確認します。

また、相手先からパケットが帰ってくるときの応答率(複数回パケットを送信した際に正常に帰ってきた割合)や応答時間でネットワークの通信状況もある程度確認することが出来ます。

ただし、ネットワークの途中にあるファイアウォール等で「ICMP」プロトコル(ping)を遮断している場合は、ネットワーク的に問題がなくても応答確認ができないので注意が必要です。

pingコマンドの使い方

基本は「ping」と入力した後に「宛先のIPアドレス」または「宛先のホスト名」入力することでネットワークの通信確認を行うことが出来ます。

オプションは必要に応じて指定していきます。

オプションで「ping」の送信回数(-cオプション)や実行時間を指定(-wオプション)していない場合、を停止させたい場合は「Ctrl」+「c」キーを押下します。

ping オプション 宛先IPアドレス(宛先ホスト名)  

下記は実際に「ping」を実行した結果となります。

$ ping 8.8.8.8  PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.  64 bytes from 8.8.8.8: icmp_seq=1 ttl=58 time=35.2 ms  64 bytes from 8.8.8.8: icmp_seq=2 ttl=58 time=32.5 ms  ^C    <--- 「Ctrl」+「c」で停止  --- 8.8.8.8 ping statistics ---  2 packets transmitted, 2 received, 0% packet loss, time 1002ms  rtt min/avg/max/mdev = 32.517/33.879/35.241/1.362 ms  

オプション一覧

「ping」で使用できるオプションの中から普段使いそうなものを抜粋しています。

オプション 説明
-4 IPv4を使用
-6 IPv6を使用
-a 通信に成功したら音を出す
-A 通信に失敗したら音を出す
-b ブロードキャストアドレスへpingを行う際に使用
-c 回数 送信回数を指定
-f flood pingを実行 (ものすごくたくさんpingを送信)
-i 秒 送信間隔を指定
-I NICまたはIPアドレス 送信元を指定
-n 送信結果でホスト名を表示せずにIPアドレスだけにする
-q ping statisticsのみを表示
-r 宛先ホストへ直接送信する(同一セグメントのみ通信可)
-R 通信経路を表示
-s パケットサイズ(byte) 送信パケットサイズを指定
-t TTL値を指定
-w 秒 pingの実行時間を指定
-W time out を指定

表示内容について

「ping」を実行した際の表示される内容について解説します。

項番 表示内容 説明
(1) 宛先サーバ 宛先として指定したサーバを表示
(2) 宛先IPアドレス 宛先として指定したサーバのIPアドレスを表示
(3) 送信パケットサイズ 送信するパケットサイズを表示
56(84)の意味は「56」byteのデータに「ICMP」のヘッダー情報の「8」byteとTCPのヘッダー情報の「20」byteがプラスされて合計「84」byteのデータが送信されることを表している
(4) 送信されたICMPのデータサイズ 送信されたICMPのデータサイズを表示
(「TCP」のヘッダー情報分は含まない)
(5) 宛先ホスト名(IPアドレス) 宛先をホスト名で指定した場合には宛先サーバのホスト名と(IPアドレス)が表示され、IPアドレスで宛先を指定し場合はホスト名は表示されない
ホスト名を指定した場合はIPアドレスを逆引したホスト名が表示される
(6) シーケンス番号 「ping」を送信した回数を表す番号
この番号に抜けがあった場合はその部分でパケットロス(通信失敗)が発生している
(7) TTLの値 TTLの数値
(8) 応答時間 パケットを送信してから帰ってくるまでの時間
(9) パケット送信回数 pingを送信した回数
(10) 正常にパケットが戻ってきた回数 pingを送信して宛先ホストから正常にパケットが戻ってきた回数
(11) パケットロス率 送信パケットに対するパケットロス(通信失敗)の割合
(12) 実行時間 pingを開始してから終了するまでに掛かった時間
(13) 応答時間統計 左から「最小」「平均」「最大」「標準偏差(ばらつき具合)」
上記画像の標準偏差は平均値である0.414の+-0.157msの範囲に大体おさまっている

icmp_seqでパケットロスを確認

下記の場合「icpm_seq」の「5」と「6」が表示されていないので、その部分でパケットロスが発生してることが分かります。

$ ping 192.168.1.103  PING 192.168.1.103 (192.168.1.103) 56(84) bytes of data.  64 bytes from 192.168.1.103: icmp_seq=1 ttl=64 time=0.194 ms  64 bytes from 192.168.1.103: icmp_seq=2 ttl=64 time=0.188 ms  64 bytes from 192.168.1.103: icmp_seq=3 ttl=64 time=0.550 ms  64 bytes from 192.168.1.103: icmp_seq=4 ttl=64 time=0.339 ms  64 bytes from 192.168.1.103: icmp_seq=7 ttl=64 time=0.466 ms  64 bytes from 192.168.1.103: icmp_seq=8 ttl=64 time=0.571 ms  64 bytes from 192.168.1.103: icmp_seq=9 ttl=64 time=0.582 ms  64 bytes from 192.168.1.103: icmp_seq=10 ttl=64 time=0.565 ms  ^C  --- 192.168.1.103 ping statistics ---  10 packets transmitted, 8 received, 20% packet loss, time 9002ms  rtt min/avg/max/mdev = 0.188/0.431/0.582/0.160 ms  

「ping statistics」部分でも10パケット送信して8パケットしか受信していないので2パケット分ロスが発生していることがわかります。

TTLについて

TTLはOSによって決められた初期値があり、そこから経由したルータやL3スイッチの数を引いた値が表示
されています。

OSごとのTTL値
  • Windows 128
  • Linux 64
  • Solaris 255

ttlの値で対象ホストのOSを推測したり、通信経路の途中にあるルータやL3スイッチの数を推測することが出来ます。

TTLがある理由

TTL(Time To Live)とはパケットの生存期間を表していて、ネットワーク上でルータやL3スイッチ等のL3レベルの機器を通過するたびにその値を1ずつ減らしていき、この値が「0」になるとパケットは破棄されます。

このおかげで、ループが発生した場合などネットワーク上にパケットが永遠に存在するという自体が発生しないようになっています。

オプションについての説明

「ping」で使用できるオプションのうち普段使いそうなものについて説明をしていきます。

IPv4またはIPv6の指定 「-4」「-6」

「-4」「-6」オプションを使用することで、「IPv4」「IPv6」のどちらで「ping」を実行するかを指定することが出来ます。

IPv4を指定

ping -4 宛先ホスト名  

IPv6を指定

ping -6 宛先ホスト名  

回数を指定 「-c 回数」

「ping」の送信回数を指定したい場合は「-c 回数」オプションを使用します。

ping -c 回数 宛先ホスト  

実行例

「ping」を3回送信する場合は以下のように指定します。

$ ping -c 3 192.168.1.103  PING 192.168.1.103 (192.168.1.103) 56(84) bytes of data.  64 bytes from 192.168.1.103: icmp_seq=1 ttl=64 time=0.206 ms  64 bytes from 192.168.1.103: icmp_seq=2 ttl=64 time=0.578 ms  64 bytes from 192.168.1.103: icmp_seq=3 ttl=64 time=0.654 ms    --- 192.168.1.103 ping statistics ---  3 packets transmitted, 3 received, 0% packet loss, time 2001ms  rtt min/avg/max/mdev = 0.206/0.479/0.654/0.196 ms  

間隔指定 「-i 間隔(秒)」

「ping」の送信間隔は初期値で1秒となっていますが、それ以外の間隔で送信したい場合に「-i」オプションで送信間隔を秒単位で設定します。

ping -i 間隔(秒)  

実行例

0.5秒間隔で「ping」を送信させたい場合「0.5」といったように指定をします。

# ping -i 0.5 192.168.1.103  PING 192.168.1.103 (192.168.1.103) 56(84) bytes of data.  64 bytes from 192.168.1.103: icmp_seq=1 ttl=64 time=0.213 ms  64 bytes from 192.168.1.103: icmp_seq=2 ttl=64 time=0.628 ms  64 bytes from 192.168.1.103: icmp_seq=3 ttl=64 time=0.604 ms  64 bytes from 192.168.1.103: icmp_seq=4 ttl=64 time=0.593 ms  ^C  --- 192.168.1.103 ping statistics ---  4 packets transmitted, 4 received, 0% packet loss, time 1501ms  rtt min/avg/max/mdev = 0.213/0.509/0.628/0.173 ms   
一般ユーザでの最小間隔制限

一般ユーザの場合は最小間隔は「0.2」秒となっていて、それ以下の場合はエラーとなります

$ ping -i 0.1 192.168.1.103  PING 192.168.1.103 (192.168.1.103) 56(84) bytes of data.  ping: cannot flood; minimal interval allowed for user is 200ms  

rootユーザの場合は特に制限はありません。

パケットのサイズを指定 「-s サイズ(byte)」

「-s」オプションを使用することで、送信するパケットのサイズをbyte単位で指定することが出来ます。(※実際には指定したサイズにicmpのヘッダー情報(8 byte)がプラスされたサイズとなります。)

ping -s サイズ(byte) 宛先ホスト  

実行例

パケットのサイズを100byteと設定したところ、icmpのヘッダ8byte分がプラスされて108byte送信されています。

# ping -s 100 192.168.1.103  PING 192.168.1.103 (192.168.1.103) 100(128) bytes of data.  108 bytes from 192.168.1.103: icmp_seq=1 ttl=64 time=0.219 ms  108 bytes from 192.168.1.103: icmp_seq=2 ttl=64 time=0.502 ms  108 bytes from 192.168.1.103: icmp_seq=3 ttl=64 time=0.561 ms  ^C  --- 192.168.1.103 ping statistics ---  3 packets transmitted, 3 received, 0% packet loss, time 1999ms  rtt min/avg/max/mdev = 0.219/0.427/0.561/0.150 ms  

経路を表示 「-R」

「-R」オプションは「ECHO_REQUEST」パケットに「RECORD_ROUTE」オプションを組み込むことで、宛先ホストまでの経路を表示させることが出来きます。

ping -R 宛先ホスト  

ただし、「ping」の「man」によるとこのオプションを破棄または無視するホストも多いよなので、通信経路を確認する場合は「traceroute」コマンドを使用した方が良いでしょう。

実行例

通信経路が表示された場合の例です。(表示結果を一部「xxx」で隠しています。)

$ ping -R -c 3 www.server-memo.net  PING www.server-memo.net (133.242.16.216) 56(124) bytes of data.  64 bytes from 133.242.16.216 (133.242.16.216): icmp_seq=1 ttl=53 time=59.3 ms  RR:     localhost.localdomain (192.168.1.105)          xxxxxxxxx (xxx.xxx.xxx.xxx)          xxxxxxxxx (xxx.xxx.xxx.xxx)          xxxxxxxxx (xxx.xxx.xxx.xxx)          xxxxxxxxx (xxx.xxx.xxx.xxx)          as4685.ix.jpix.ad.jp (210.171.224.125)          tkort3-iskrt3.bb.sakura.ad.jp (157.17.131.33)          iskrt3-rt1s.bb.sakura.ad.jp (103.10.113.109)          iskrt1s.bb.sakura.ad.jp (103.10.112.29)    64 bytes from 133.242.16.216 (133.242.16.216): icmp_seq=2 ttl=53 time=58.5 ms   (same route)  64 bytes from 133.242.16.216 (133.242.16.216): icmp_seq=3 ttl=53 time=66.9 ms   (same route)    --- www.server-memo.net ping statistics ---  3 packets transmitted, 3 received, 0% packet loss, time 2002ms  rtt min/avg/max/mdev = 58.562/61.626/66.951/3.779 ms  

NICを指定 「-I」

「-I」オプションを使用することでpingによってパケットを送信するNICを指定できます。

ping -I NIC名 宛先ホスト  

宛先ホスト名を表示しない 「-n」

「ping」の宛先をホスト名で指定した場合に「-n」オプションを使用すると、実行結果を表示する際に宛先のIPアドレスのみを表示するようになります。

ping -n 宛先ホスト名  

実行例

-n オプションを使用しない場合

「216.58.197.163」に設定されている逆引きの情報がホスト名「nrt12s02-in-f3.1e100.net」として表示されています。

$ ping -c 3 www.google.co.jp  PING www.google.co.jp (216.58.197.227) 56(84) bytes of data.  64 bytes from nrt13s49-in-f3.1e100.net (216.58.197.227): icmp_seq=1 ttl=55 time=29.3 ms  64 bytes from nrt13s49-in-f3.1e100.net (216.58.197.227): icmp_seq=2 ttl=55 time=26.8 ms  64 bytes from nrt13s49-in-f3.1e100.net (216.58.197.227): icmp_seq=3 ttl=55 time=25.5 ms    --- www.google.co.jp ping statistics ---  3 packets transmitted, 3 received, 0% packet loss, time 2003ms  rtt min/avg/max/mdev = 25.583/27.262/29.360/1.581 ms  
-n オプションを使用した場合

逆引きを行わずIPアドレスのみ表示されています

$ ping -c 3 -n www.google.co.jp  PING www.google.co.jp (216.58.197.227) 56(84) bytes of data.  64 bytes from 216.58.197.227: icmp_seq=1 ttl=55 time=30.1 ms  64 bytes from 216.58.197.227: icmp_seq=2 ttl=55 time=28.8 ms  64 bytes from 216.58.197.227: icmp_seq=3 ttl=55 time=26.0 ms    --- www.google.co.jp ping statistics ---  3 packets transmitted, 3 received, 0% packet loss, time 2004ms  rtt min/avg/max/mdev = 26.041/28.356/30.185/1.731 ms  

音を鳴らす 「-a」「-A」

「ping」で疎通確認を行う場合に「-a」「-A」オプションを使用することで、通信が「成功」「失敗」それぞれの場合に音を出させることが出来ます。

通信成功時に音を出す

ping -a 宛先ホスト  

通信失敗時に音を出す -A

ping -A 宛先ホスト  

実行時間を指定 「-w 秒数」

「-w」オプションを使用することで「ping」を送信し続ける時間を秒単位で指定することが出来ます。

ping -w 秒数 宛先ホスト  

実行例

5秒間0.5秒間隔で「ping」を送信させています。

$ ping -i 0.5 -w 5 192.168.1.1  PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.  64 bytes from 192.168.1.1: icmp_seq=1 ttl=255 time=11.5 ms  64 bytes from 192.168.1.1: icmp_seq=2 ttl=255 time=9.40 ms  64 bytes from 192.168.1.1: icmp_seq=3 ttl=255 time=7.81 ms  64 bytes from 192.168.1.1: icmp_seq=4 ttl=255 time=6.02 ms  64 bytes from 192.168.1.1: icmp_seq=5 ttl=255 time=3.42 ms  64 bytes from 192.168.1.1: icmp_seq=6 ttl=255 time=3.95 ms  64 bytes from 192.168.1.1: icmp_seq=7 ttl=255 time=12.9 ms  64 bytes from 192.168.1.1: icmp_seq=8 ttl=255 time=12.0 ms  64 bytes from 192.168.1.1: icmp_seq=9 ttl=255 time=10.7 ms  64 bytes from 192.168.1.1: icmp_seq=10 ttl=255 time=9.00 ms    --- 192.168.1.1 ping statistics ---  10 packets transmitted, 10 received, 0% packet loss, time 4511ms  rtt min/avg/max/mdev = 3.422/8.689/12.983/3.172 ms  

10パケット送信時に4511ms(約4.511秒)経過していて、11パケット目を送信すると「-w」オプションで指定している5秒を過ぎてしまうので、10パケットで送信を終了しています。

ブロードキャストアドレスにpingを送信 「-b」

ブロードキャストアドレスにpingを送信する場合には「-b」オプションを指定する必要があります。

「-b」オプションを指定しないと、下記のようにブロードキャストアドレスに「ping」を送信することが出来ません。

$ ping 192.168.1.255  Do you want to ping broadcast? Then -b  

「-b」オプションを指定すると、ブロードキャストアドレスに「ping」を送信することが可能になります。

$ ping -c 2 -b 192.168.1.255  WARNING: pinging broadcast address  PING 192.168.1.255 (192.168.1.255) 56(84) bytes of data.  64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=10.9 ms  64 bytes from 192.168.1.1: icmp_seq=1 ttl=255 time=10.9 ms (DUP!)  64 bytes from 192.168.1.9: icmp_seq=1 ttl=64 time=211 ms (DUP!)  64 bytes from 192.168.1.3: icmp_seq=2 ttl=64 time=9.47 ms    --- 192.168.1.255 ping statistics ---  2 packets transmitted, 2 received, +2 duplicates, 0% packet loss, time 1001ms  rtt min/avg/max/mdev = 9.475/60.616/211.022/86.839 ms  

※ブロードキャストアドレスに「ping」を送信して、複数のホストから応答があった場合は(DUP!)が表示されます。

Linuxはブロードキャストへのpingに応答しない

LinuxのホストはSmurf攻撃の対策としてブロードキャストアドレス宛の「ICMP echo request」(エコーリクエスト)には応答しないように「/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts」の値が「1」に設定されています。

$ cat /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts  1  

ブロードキャスト宛の「ICMP echo request」に応答させたい場合は、「/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts」の値を「0」に設定する必要があります。

TIPS

「ping」を使用する際に知っているとちょっと役立つ情報をまとめました。

pingを終了させずに統計情報を表示

「ping」の実行中に[Ctrl] + []キーを押下することで、「ping」を中断することなく統計情報を確認することが出来ます。

$ ping 192.168.1.1  PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.  64 bytes from 192.168.1.1: icmp_seq=1 ttl=255 time=8.17 ms  64 bytes from 192.168.1.1: icmp_seq=2 ttl=255 time=3.59 ms  64 bytes from 192.168.1.1: icmp_seq=3 ttl=255 time=4.32 ms  3/3 packets, 0% loss, min/avg/ewma/max = 3.596/5.365/7.190/8.172 ms <-- [Ctrl] + []キーを押下  64 bytes from 192.168.1.1: icmp_seq=4 ttl=255 time=4.83 ms  64 bytes from 192.168.1.1: icmp_seq=5 ttl=255 time=3.63 ms  5/5 packets, 0% loss, min/avg/ewma/max = 3.596/4.911/6.487/8.172 ms  <-- [Ctrl] + []キーを押下  64 bytes from 192.168.1.1: icmp_seq=6 ttl=255 time=3.55 ms  64 bytes from 192.168.1.1: icmp_seq=7 ttl=255 time=5.77 ms  

pingに時刻を表示させる

「date」コマンドと組み合わせることで、「ping」に実現時刻の情報を付与することが出来ますす。(dateコマンドの部分は適宜変更してください)

$ ping 192.168.1.1 | while read line; do echo `date +'%Y-%m-%d_%H:%M:%S'` $line; done  

bashで$()が使用できるなら、こっちのほうが見やすいかも。

$ ping 192.168.1.1 | while read line; do echo $(date '+%Y-%m-%d %H:%M:%S') $line; done   
$ ping 192.168.1.1 | while read line; do echo `date +'%Y-%m-%d_%H:%M:%S'` $line; done  2017-07-28_01:06:36 PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.  2017-07-28_01:06:36 64 bytes from 192.168.1.1: icmp_seq=1 ttl=255 time=4.15 ms  2017-07-28_01:06:37 64 bytes from 192.168.1.1: icmp_seq=2 ttl=255 time=13.9 ms  2017-07-28_01:06:38 64 bytes from 192.168.1.1: icmp_seq=3 ttl=255 time=11.6 ms  2017-07-28_01:06:39 64 bytes from 192.168.1.1: icmp_seq=4 ttl=255 time=9.11 ms  2017-07-28_01:06:40 64 bytes from 192.168.1.1: icmp_seq=5 ttl=255 time=7.26 ms  

ログに出力

teeコマンドと組わせることで画面に「ping」の実行状況を表示させながらログも取得することができます。

ping 宛先ホスト | tee -i ログ出力先  

実行例

「ping」実行時のログを「ping.log」というファイルに出力させています。

$ ping -c 5 192.168.1.1 | tee -i ping.log  PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.  64 bytes from 192.168.1.1: icmp_seq=1 ttl=255 time=14.1 ms  64 bytes from 192.168.1.1: icmp_seq=2 ttl=255 time=11.4 ms  64 bytes from 192.168.1.1: icmp_seq=3 ttl=255 time=9.21 ms  64 bytes from 192.168.1.1: icmp_seq=4 ttl=255 time=7.51 ms  64 bytes from 192.168.1.1: icmp_seq=5 ttl=255 time=6.65 ms    --- 192.168.1.1 ping statistics ---  5 packets transmitted, 5 received, 0% packet loss, time 4007ms  rtt min/avg/max/mdev = 6.656/9.804/14.145/2.729 ms  

ログ出力先として指定した「ping.log」ファイルの中身を確認してみると、実行結果が出力されていることが確認できます。

$ cat ping.log  PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.  64 bytes from 192.168.1.1: icmp_seq=1 ttl=255 time=14.1 ms  64 bytes from 192.168.1.1: icmp_seq=2 ttl=255 time=11.4 ms  64 bytes from 192.168.1.1: icmp_seq=3 ttl=255 time=9.21 ms  64 bytes from 192.168.1.1: icmp_seq=4 ttl=255 time=7.51 ms  64 bytes from 192.168.1.1: icmp_seq=5 ttl=255 time=6.65 ms    --- 192.168.1.1 ping statistics ---  5 packets transmitted, 5 received, 0% packet
loss, time 4007ms  rtt min/avg/max/mdev = 6.656/9.804/14.145/2.729 ms  

 – ping

  関連記事

関連記事はありませんでした

Shared via Inoreader

iPhoneから送信

【Linux】pingコマンドの使い方

chmod パーミッション(権限)の設定・変更

by tamohiko

server-memo.net / 2017-07-25 13:23

  2017/07/25  

chmodの使い方

「chmod」コマンドを使用することでファイルやディレクトリのパーミッション(アクセス権限)を変更することが出来ます。

パーミッションについての詳しい説明はこちらのページを参照願います。

コマンド書式

chmod オプション パーミッション ファイルまたはディレクトリ  

使用例

パーミッションは数字で指定する方法と、シンボル(文字)で設定する方法があります。

$ chmod 777 test.txt   (数値で設定する場合)  $ chmod a=rwx test.txt  (シンボルで設定する場合)  

上記はどちらも「test.txt」ファイルのパーミッション「読み込み」「書き込み」「実行」を、すべてのユーザを対象に許可しています。

オプション

「chmod」コマンドで使用できるオプション一覧です。

オプション 説明
-R
–recursive
ディレクトリ内のデータもあわせてパーミッションの変更を行う
-c
–changes
パーミッションに変更があった場合のみ変更内容を表示
-f
–silent
–quite
エラーメッセージを表示しない
-v
–verbose
パーミッションの変更内容を表示
–reference=参照データ 指定したデータと同じパーミッションを設定
–no-preserve-root 「/」ディレクトリのパーミッションを変更させない(初期設定)
–preserve-root 「/」ディレクトリのパーミッションを変更する場合に使用(ほぼ使用する機会はないでしょう)

パーミッションの指定方法

「chmod」でパーミッションを指定する場合には「数値」を使用する方法と、「シンボル(文字)」を使用するという2種類の方法がありますので、それぞれの指定方法について説明をしていきます。

数値を使用

パーミッションを数値で指定する場合は、「所有ユーザ」「所有グループ」「その他のユーザ」ごとにパーミッションを指定する必要があるため、通常3桁の数値でパーミッションを指定することになります。

※「suid」「sgid」「sticky bit」などの特殊なパーミッションを設定する場合は4桁の数値で設定することになります。

パーミッションと数値の対応表

各パーミッションの値は下記の通りとなり、実際に指定する場合は有効とするパーミッションの数値を合計した値を指定します。

パーミッション 数値
読み込み許可 4
書き込み・変更(作成・削除)許可 2
実行許可 1
許可なし 0
パーミッションの組み合わせ一覧

パーミッションの組み合わせは下記の8通りとなります。

パーミッション内容 数値
「読み込み」「書き込み」「実行」のすべてを許可 7 (4 + 2 + 1)
「読み込み」「書き込み」を許可 6 (4 + 2 + 0)
「読み込み」「実行」を許可 5 (4 + 0 + 1)
「読み込み」のみ許可 4 (4 + 0 + 0 )
「書き込み」「実行」を許可 3 (0 + 2 + 1)
「書き込み」のみ許可 2 (0 + 2 + 0)
「実行」のみ許可 1 (0 + 0 + 1)
許可なし 0 (0 + 0 + 0)

設定例

パーミッションは左から「所有ユーザ」「所有グループ」「その他のユーザ」の設定となるので、それぞれに設定したい数値を指定していきます。

  • 所有ユーザ 「読み込み」「書き込み」「実行」のすべてを許可 (7)
  • 所有グループ 「読み込み」「実行」を許可 (5)
  • その他のユーザ 「読み込み」「実行」を許可 (5)

といったパーミッションを「test.sh」というファイルに設定する場合は、下記のように設定を行います。

$ chmod 755 test.sh  

シンボル(文字)を使用

シンボルを使用してパーミッションを設定する場合は、以下の項目に対応するシンボルを組わせて設定を行っていきます。

  • 設定対象ユーザ (誰に)
  • パーミッション (どのパーミッションを)
  • 設定内容 (どのように設定するか)

設定対象ユーザ

パーミッションを設定する対象を「所有ユーザ」「所有グループ」「その他のユーザ」「全てのユーザ」から指定します。

対象とシンボルの対応表

設定対象とシンボルの対応は下記の通りとなります。

シンボル 設定対象
u 所有ユーザ(user)
g 所有グループ(group)
o その他のユーザ(ohters)
a 全てが対象(all)
設定なし 何も設定指定しない場合は全てが対象となる

パーミッション

「読み込み」「書き込み」「実行」のパーミッションとシンボルの対応は下記のとおりとなります。

シンボル 設定対象
r 読み込み許可
w 書き込み・変更許可
x 実行許可
X フォルダのみに実行許可を追加

設定内容

パーミッションをどのように設定するかを「追加」「削除」「指定」といった動作で指定します。

シンボル 設定対象
削除
+ 追加
= 指定したパーミッションのみ有効

設定例

シンボルによるパーミッションの設定例をいくつかあげさせていただきます。

パーミッションの指定

「test.txt」というファイルの「所有ユーザ(u)」へ「読み込み(r)」「書き込み(w)」「実行(x)」の許可するというパーミッションを「指定(=)」してみます。

$ chmod u=rwx test.txt  

「所有ユーザ」のパーミッションが「rwx」と設定されていることが確認できました。

$ ls -l test.txt  -rwxrw-r-- 1 tamohiko tamohiko 0 Jul 24 17:09 test.txt  
パーミッションの削除

「所属グループ
(g)」から「書き込み(w)」許可のパーミッションを「削除(-)」してみます。

$ chmod g-w test.txt  

「所有グループ」の「書き込み」権限が削除されていることが確認できました。

$ ls -l test.txt  -rwxr--r-- 1 tamohiko tamohiko 0 Jul 24 17:09 test.txt  
パーミッションの追加

「その他のユーザ(o)」に「実行(x)」許可のパーミッションを「追加(+)」してみます。

$ chmod o+x test.txt  

「その他のユーザ」に「実行」権限が追加されていることが確認できました。

$ ls -l test.txt  -rwxr--r-x 1 tamohiko tamohiko 0 Jul 24 17:09 test.txt  
複数対象へのパーミッション設定

複数の対象へパーミッションを設定する場合は「,」(カンマ)で区切ることで、一度に複数の対象へパーミッションを設定することが出来ます。

「所有グループ(g)」と「その他のユーザ(o)」に対して「書き込み(w)」許可のパーミッションを「追加(+)」してみます。

$ chmod g+w,o+w test.txt  

「所有グループ」と「その他のユーザ」のパーミッションに書き込み権限が追加されていることが確認できました。

$ ls -l test.txt  -rwxrw-rwx 1 tamohiko tamohiko 0 Jul 24 17:09 test.txt  

シンボルと数値のパーミッション対応表

シンボルと数値によるパーミッション組み合わせ一覧です。

シンボル 数値 パーミッションの内容
rwx 7 (4 + 2 + 1) 「読み込み」「書き込み」「実行」のすべてを許可
rw- 6 (4 + 2 + 0) 「読み込み」「書き込み」を許可
r-x 5 (4 + 0 + 1) 「読み込み」「実行」を許可
r– 4 (4 + 0 + 0 ) 「読み込み」のみ許可
-wx 3 (0 + 2 + 1) 「書き込み」「実行」を許可
-w- 2 (0 + 2 + 0) 「書き込み」のみ許可
–x 1 (0 + 0 + 1) 「実行」のみ許可

chmod パーミッション(権限)の設定・変更

How to test PHP 7 and WordPress MySQL/MariaDB Database connectivity using a PHP script

by Vivek Gite

I wanted to test if my PHP 7 and MySQL/MariaDB for WordPress are working. If not I wanted to see some error on screen or for my monitoring system. How to write a script for a quick PHP MySQL DB connection test for WordPress or any other database and send an email or text when site is down?

A PHP 7 + MySQL/MariaDB script for WordPress

The following script will use database/password info from WordPress config file itself. Create a script named db-mysql-test.php and put in wordpress directory where you will find a file named wp-config.php:

   <?php define('WEB_ID','l-cbz01');   require('wp-config.php');   $link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);       // failed   // die with an error   if (!$link) {       echo "Failed at " .WEB_ID. "
"

; echo “Web server: “. WEB_ID . PHP_EOL; echo “Error: Unable to connect to MySQL.” . PHP_EOL; echo “Debugging errno: “ . mysqli_connect_errno() . PHP_EOL; echo “Debugging error: “ . mysqli_connect_error() . PHP_EOL; exit; } // succeeded and show message echo “Success at “ .WEB_ID.

"

; echo “Success: A proper connection to MySQL was made! The my_db database is great.” . PHP_EOL; echo “Host information: “ . mysqli_get_host_info($link) . PHP_EOL; mysqli_close($link); ?>

<?php define(‘WEB_ID’,’l-cbz01′); require(‘wp-config.php’); $link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);// failed // die with an error if (!$link) { echo “

Failed at ” .WEB_ID. “

"; echo "Web server: ". WEB_ID . PHP_EOL; echo "Error: Unable to connect to MySQL." . PHP_EOL; echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL; echo "Debugging error: " . mysqli_connect_error() . PHP_EOL; exit; }// succeeded and show message echo "Success at " .WEB_ID. "
"; echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL; echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL; mysqli_close($link); ?>   

Upload the script using sftp/ftp client to your web server, run:
$ scp db-mysql-test.php [email protected]:/var/www/html/cms/
Fire a browser and test it:
https://www.cyberciti.biz/cms/db-mysql-test.php
Sample outputs when there is no error:
Fig.01: Success test outputFig.01: Success test output
Sample outputs when there is an error like PHP 7 process not running or MySQL server is down:
Fig.02: Error: Unable to connect to MySQL status pageFig.02: Error: Unable to connect to MySQL status page

A PHP 7 + MySQL/MariaDB script for custom database (any cms)

If you are not using WordPress or using something else, try the following script. You must set DB_HOST, DB_USER, DB_PASSWORD, and DB_NAME:

   <?php // set me   define('WEB_ID','l-cbz01');   define('DB_HOST', 'localhost');   define('DB_USER', 'vivek');   define('DB_PASSWORD', 'myPasswordHere');   define('DB_NAME', 'myDBNameHere');   $link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);       // failed   // die with an error   if (!$link) {       echo "Failed at " .WEB_ID. "
"

; echo “Web server: “. WEB_ID . PHP_EOL; echo “Error: Unable to connect to MySQL.” . PHP_EOL; echo “Debugging errno: “ . mysqli_connect_errno() . PHP_EOL; echo “Debugging error: “ . mysqli_connect_error() . PHP_EOL; exit; } // succeeded and show message echo “Success at “ .WEB_ID.

"

; echo “Success: A proper connection to MySQL was made! The my_db database is great.” . PHP_EOL; echo “Host information: “ . mysqli_get_host_info($link) . PHP_EOL; mysqli_close($link); ?>

<?php // set me define(‘WEB_ID’,’l-cbz01′); define(‘DB_HOST’, ‘localhost’); define(‘DB_USER’, ‘vivek’); define(‘DB_PASSWORD’, ‘myPasswordHere’); define(‘DB_NAME’, ‘myDBNameHere’); $link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);// failed // die with an error if (!$link) { echo “

Failed at ” .WEB_ID. “

"; echo "Web server: ". WEB_ID . PHP_EOL; echo "Error: Unable to connect to MySQL." . PHP_EOL; echo "Debugging errno: " . mysqli_connect_errn
o() . PHP_EOL; echo "Debugging error: " . mysqli_connect_error() . PHP_EOL; exit; }// succeeded and show message echo "Success at " .WEB_ID. "
"; echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL; echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL; mysqli_close($link); ?>   

Save and upload the script using either ftp command or sftp command:
$ scp db-mysql-test.php [email protected]:/var/www/html/
Test it with your favorite web browser:
https://www.cyberciti.biz/cms/db-mysql-test.php

A note about sending a text/sms/email when script fails (optional)

You need to use third party monitoring service such as Pingdom or others. For example, you can edit your Pingdom test as follows:
Fig.03: Pingdom testFig.03: Pingdom test
I set “Check for string” to “Should not contain” to “Error: Unable to connect to MySQL” and click on Modify test button. A text string that must not be present (e.g. “Error: Unable to connect to MySQL”) in the HTML code of the page. If this text is found from the page, the site will be considered as down and you will an alert via text/sms or email as follows:

Fig.04: Pingdom DOWN alert emailFig.04: Pingdom DOWN alert email

References

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

Shared via Inoreader

iPhoneから送信

How to test PHP 7 and WordPress MySQL/MariaDB Database connectivity using a PHP script