2018年3月8日木曜日

【Linux】コマンドのプログレス表示(リアルタイム表示)を加工する

■CentOSの場合
./progress.sh | xargs -n 1 -d '¥x0D' | sed -u "s/copied/【copy progress report】/g" | awk -v ORS="¥r" '{print;}'

■Ubuntuの場合(CentOSでもできるかも)
./progress.sh | xargs -n 1 -d '\x0D' | sed -u "s/copied/【copy progress report】/g" | ruby -pe 'sub("\n", "\r")'

■加工内容の変更
sedの引数を変更すると加工内容を変更できる。 -eで正規表現使用可能。
上記では、copiedを【copy progress report】に変換している。

■補足
・sedだけいけると思いきや、プログレス表示は、CRしか来ないのでsedが実行されない。sedはLFを待ってから実行されるみたい。そのため、xargsでCRが来る度にパイプ先に渡すようにする。次にsedで加工。xargsでLN改行したので、最後にawkやrubyでCRに戻す。
・awkやrubyのバージョン、Linuxの種類によって、できたりできなかったりする。

◆例) 以下のようなprogress.sh(中身はかなりテキトー)があったとする。
#!/bin/bash

for i in `seq 1 100`; do
  complete=`expr ${i} \* 10`
  echo -en "copied $complete/1000KB (${i})%\r"
  sleepenh 0.1 > /dev/null
done
echo
※Ubuntuでしかもsudo apt install sleepenhが必要。CentOSの場合はusleepに読み替えること。

このprogress.shを実行すると、以下のように表示される。

加工コマンドをかますと、以下となる。


2018年2月15日木曜日

【NUC】CPUファン交換

 先日、出張から帰宅したらNUC D54250WYKがカラカラと異音を発していた。既に4年以上ほぼ常時起動していたため、仕方ない。ということで、修理してみた。
 この機種はドライブがmSATAのため、駆動部分はCPUファンのみ。異音を発するとしたら、CPUファンの可能性が高い。
 で、余っているNUC D53427RKEとCPUファンを、交換してみたところ、異音が止んだ。D5327RKEには異音を発するファンを付けているがどうしよう。

■今回CPUファン交換対象のNUC二台(左が故障したD54250WYK、右のD5327RKEのCPUファンと交換する。)


■画像付き手順
1. いつも通りNUCの裏面のパネルを外す。
2. その後、下記画像の基板のネジ2本を外す。



3.基板を筐体から外す。
ここが難所で、かなり力を入れる必要があった。と言うか、素手では外せなかったので、基板のネジ穴にマイナスドライバーを入れて、てこの原理で強引に外した。外し方違ったか?

以下は分解後。


4. CPUファンを外す。ネジを二本外し、電源ケーブルを抜くだけ。


5.同様にD5327RKEもCPUファンを外す。以下はCPUファンを取り去った画像。(上がD54250WYK、下がD5327RKE。)


6.CPUファン交換。

7. 元に戻す。

手順は以上で終了。
ちなみに以下はD5327RKEの分解時の画像

2018年2月1日木曜日

【Windows10】【VPN】ファイアウォール設定

 ある日、外出先でスマホ(Android)から自宅のWindows10VPNサーバー(PPTP)に接続出来なくなった。
 直前の作業はWindows10のファイアウォールON/OFFとウィルス対策ソフトのON/OFFだったので直ぐに原因がファイアウォールだと特定出来たのだが・・・
 Windows10で『アプリにWindows Defender ファイアウォール経由の通信を許可する』を開いて『ルーティングとリモートアクセス』にチェックを入れるとVPNアクセスが復旧した。
 そんな所変更してないのに・・・
変更したのはファイアウォールのON/OFFの切り替えだけ。Windowsのファイアウォールはとっても分かり辛い。

2018年1月31日水曜日

【PowerShell】グローバルIPアドレスをメール送信

◆目次
  1. セキュリティソフトでメール送信を除外。
  2. Google設定で安全でないアプリを許可するよう設定。※
  3. PowerShellでメール送信。
  ※Gmailの場合の手順。セキュリティレベルは下がるので注意。また、2段階認証の設定も必要とのこと。自分の場合は何故か不要だった。

◆ダウンロード
GrobalIPMailv0.2.zip
GrobalIPMailv0.1.zip

◆手順
  1. セキュリティソフトでメール送信を除外。(以下AVGの場合)
    1.  タスクバーのAVG(ver17.9.3040)をクリック。
    2. [メニュー]-[設定]-[コンポーネント]-[(メールシールドの)カスタマイズ]の順に選択。
    3. 送信メールをスキャン(SMTP)のチェックを外し、[OK]ボタン-[OK]ボタン。
       
  2. Google設定で安全でないアプリを許可するよう設定。
    1. Chromeを起動。
    2. アドレス欄にgoogle.comと入力。
    3. Chrome右上の:::ボタン(Googleアプリボタン)押下。
    4. [アカウント]を選択。
    5. [端末のアクティビティとセキュリティ イベント]を選択。
    6. [アカウントにアクセスできるアプリ]を選択。
    7. [安全性の低いアプリの許可]を無効から有効に変更。
       
  3. PowerShellでメール送信。
    (上述のzipを使う場合は、同梱のreadme.txtを参照のこと。下記のコードとは別で、タスクスケジューラによる定期処理を行う。)
    1. 後述の簡易コードをファイルに保存。ファイル名はgipmail.ps1。
      その際、[ユーザ名]と[ぱすわーど]は読み替えること。
    2. gipmail.ps1を右クリックし、[PowerShellで実行]を選択。
       
◆簡易コード(gipmail.ps1)
$from = "ユーザ名@gmail.com"
$to = "ユーザ名@gmail.com"
$server = "smtp.gmail.com"
$port = 587
$user = "ユーザ名@gmail.com"
$pass = "ぱすわーど"

curl ipinfo.io | ConvertFrom-Json | sv ret
$ret.ip

$client = New-Object Net.Mail.SmtpClient($server, $port)
$client.EnableSsl = $true
$client.Credentials = New-Object Net.NetworkCredential($user, $pass)

New-Object Net.Mail.MailMessage($from, $to,"Global IP", $ret.ip) | sv msg
$client.Send($msg)

◆zip内のコード(GrobalIPメール送信.ps1:要setting.json)
# 設定ファイルのパス・前回取得したグローバルIPアドレス記録ファイルのパス
$MyInvocation.MyCommand.Path | Split-Path -Parent | sv path
Join-Path $path setting.json | sv setting_path
Join-Path $path latest_gip.txt | sv gip_path

# 設定ファイル読み込み。
cat $setting_path | ConvertFrom-Json | sv conf

# 認証情報生成
ConvertTo-SecureString $conf.pass | sv pass
New-Object System.Management.Automation.PSCredential $conf.user, $pass | sv cred

# 前回のIPをファイルから取得
if (Test-Path $gip_path) {
    cat $gip_path | sv latestip
}

# グローバルIP取得サイトにアクセス。
curl ipinfo.io | ConvertFrom-Json | sv ret

# 前回のIPと今回取得したIPが不一致の場合のみ、ファイル書き込み&メール送信。
if ($latestip -ne $ret.ip) {
    Send-MailMessage `
        -To         $conf.to     `
        -From       $conf.from   `
        -SmtpServer $conf.server `
        -Port       $conf.port   `
        -Subject    "Global IP"  `
        -Credential $cred        `
        -UseSsl                  `
        -Body       $ret.ip

    # メール送信に成功した場合のみ、グローバルIPアドレスを更新
    if ($? -eq $true) {
        $ret.ip | tee -f $gip_path
    }
}

2018年1月13日土曜日

【VPN】【Aterm WG1200HP】外出先から自宅PCにアクセス

◎VPNを構築する
■ 環境
・使用機器とネットワーク構成

[外出先スマホ(Android6)]
 ↓
インターネット
 ↓
[ルーター(Aterm WG1200HP)]
 ↓
[自宅LAN内のPC(Windows10/192.168.11.3)]

・使用プロバイダ
かもめインターネット

・自宅回線
(確か)フレッツ光ネクスト マンションタイプ

・スマホのsim
 bic sim

・LAN側ネットワークアドレス/マスク
192.168.11.0/24

・ルーター
Aterm WG1200HP FW:1.0.32

■ 目次
1. ルーターのポートマッピング設定
2. Windows10(常時起動)のPPTPサーバ設定
3. AndroidのVPNクライアント設定
4. グローバルIPアドレス変更時のメール送信設定

■ 作業手順
1. ルーターのポートマッピング設定を行う。
1.1. クイック設定Webを開く。
 1) ブラウザ起動。
 2) アドレス欄に192.168.11.1を入力。(アドレスは適宜読み替えること。)
 3) ユーザ名/パスワードを入力。
1.2. クイック設定Webでポートマッピング(ポート転送)を設定。
 1) 「詳細モードに切り替え」ボタン押下。
 2) 「詳細設定」リンク押下。
 3) 「ポートマッピング設定」リンク押下。
 4) 「すべて削除」ボタン押下。※1
 5) 以下を入力し、「設定」ボタン押下。
  ・IPアドレス:192.168.11.3(LAN側のPPTPサーバアドレス。適宜読み替えること。)
  ・プロトコル:TCP
  ・ポート範囲:1723
  ・コメント :VPN PPTP
1.3. WG1200HPの電源を抜き差し。※2
1.4. WAN側IPアドレス確認。
 1) 再度、手順1.1.を行う。
 2) クイックWebで「現在の状態」リンクを押下。
 3) ブラウザを下部のほうにスクロールさせ、WAN側情報のIPアドレスを控える。

※1 WG1200HPのマニュアルによると、VPN設定を行う場合、ポートマッピングは1つしか設定できないとのこと。ただ、自分が試したところ複数設定した場合でもVPN接続に成功する。
※2 要らないと思われるが、一応実施。クイックWebからの再起動は5.2GHzWiFiがリセットされない問題があったので、使用を控えている。

2. Windows10(常時起動)のPPTPサーバ設定
2.1. ネットワーク接続画面を開く。
 1) キーボードの Winキー + X、Wを押下。
 2) 「アダプターのオプションを変更する」を押下。
2.2. 着信接続(PPTP)を構築する。
 1) キーボードの Alt+Fを押下。
 2) 「新しい着信接続」を選択。
 3) VPN接続対象ユーザのチェックボックスを押下し、「次へ」ボタンを押下。
 4) 「インターネット経由」のチェックボックスを押下し、「次へ」ボタンを押下。
 5) 「インターネット プロトコル バージョン 4 (TCP/IPv4)」を選択し、
  「プロパティ」ボタンを押下。※3
 6) 以下を指定して「OK」ボタンを押下。
  ・呼び出し元にローカルエリアネットワークへのアクセスを認める:ON
  ・IPアドレスを指定する:ON
  ・開始アドレス:192.168.11.90※4
  ・終了アドレス:192.168.11.99
  ・呼び出し元のコンピュータが自分のIPアドレスを指定できる:OFF※5
 7)「アクセスを許可」ボタンを押下。
 8) 「閉じる」ボタンを押下。
 9) Windows10を再起動。(要らないと思われるが一時実施した。)

※3 環境によっては不要かも。自分の環境では必要だった。
※4 IPアドレスは適宜読み替えること。
※5 ONでも良い。

3. AndroidのVPNクライアント設定
3.1. VPN設定を開く。
 1) ホーム画面でアプリボタンをタップ。
 2) 「設定」ボタンをタップ。
 3) 「もっと見る」をタップ。
 4) 「VPN」をタップ。
 5) メニューボタンをタップ。
 6) 「VPNプロファイルの追加」をタップ。
 7)以下を入力し、「保存」をタップ。
  名前        :自宅ネット
  タイプ       :PPTP
  サーバーアドレス  :手順1.4.で確認したIPアドレス。※6
  PPP暗号化(MPPE) :ON(チェックした状態にする。)
 8) 上記で生成された「自宅ネット」をタップ。
 9) 以下を入力し、「接続」ボタンを押下。
  ・ユーザー名:Windows10アカウントのユーザー名。
  ・パスワード:Windows10アカウントのパスワード。
  ・アカウント情報を保存する:ON(チェックした状態にする。)

※6 プロバイダや契約内容によるが、WG1200HPを再起動すると、グローバルIPアドレスは変わってしまうのでAndroid側のIPアドレスを入力しなおす必要がある。そのため、この手順の前に再確認しておくと良い。

以上でVPN設定手順は終了。
うまくいった場合は、スマホ画面に「接続されました」と表示され、Windows10の「ネットワーク接続」画面にも「1クライアントが接続しています」と表示される。スマホのESエクスプローラーやRemoteDesktopなどで、LAN内のPCにアクセスできる。

4. グローバルIPアドレス変更時のメール送信設定
4.1. yahoo等のフリーメールアドレスを取得する。
  メールアドレスが1つ以上必要。GmailはIPアシストが未対応?(2018/1/13現在)
4.2. フリーソフト「IPアシスト」ダウンロード
 1) ブラウザを起動。
 2) アドレス欄に以下を入力
  http://www.geocities.jp/y_karasuma/download.html
 3) IPアシストのexeをクリック。
 4) ダウンロードしたzipファイルを展開。
4.3. 設定ファイル修正(バージョンが3.56βの場合のみ実施※7)
 解凍したフォルダ内のipasi3.iniをエディタで開き、以下のように修正して保存。
  ・Site_select=0
  ・UGTOP_終了文字列="<br>"
  ・UGTOP_開始文字数=5
  ・UGTOP_終了文字数=5
4.4. IPアシスト起動&設定
 1) ipasi3.exeを起動。
 2) 「WAN-IP」ボタンを押下。
  ⇒グローバルIPアドレスが表示されること。
 3) メニューの[設定]-[メール設定]を選択。
 4) 以下を入力し、「テスト送信」ボタンを押下。※8
  ・宛先アドレス:hoge@gmail.com
  ・送信元アドレス:aho@yahoo.co.jp
  ・SMTPサーバアドレス:smtp.mail.yahoo.co.jp
  ・SMTP認証を有効にする:ON
  ・ID:aho
  ・Password:ahobakakuso
  ・ポート番号:587
 5) テスト送信に成功したら、「OK」ボタンを押下し、設定画面を閉じる。
 6) メニューの[設定]-[メール送信【有効/無効】]-[メール送信【有効】]を選択。
 7) メニューの[設定]-[起動時メール送信]を選択。
 
※7 リリースされている設定ファイルに不備があるのか、一部の環境のみ発生するのかわからないが、これをやらないと「設定ファイル異常」と表示され、起動できない。
※8 アドレス等は読み替えること。また、宛先アドレス・送信元アドレスは同じアドレスでも可能だが、gmail.comを送信元アドレスにすることはできない。(2018/1/13現在)

■あとがき
 鬼門はやはりWG1200HPで、最初は上記の手順でやってたはずだが、駄目だった。その後、ポートマッピング設定を1エントリにしたり、再起動したり、ポートマッピングに47をいれたり、しばらく時間を置いたり、いろいろやってたらいつの間にか接続できてた。


2017年12月25日月曜日

2017年12月19日火曜日

【ESXi】【NUC】【PX-W3U4】仮想マシンでTVチューナー使用【失敗】

◆環境
 ・VM:ESXi6.5(従って試聴はリモートデスクトップ経由となる)
 ・ゲストOS:Windows10x64

◆前提条件
 ・ESXiがインストール済みであること。
 ・ゲストOSとしてwindows10がインストール済みであること。

◆その他
多分、USB3.0コントローラーとPX-W3U4の相性が悪く不定期にブルースクリーンになる。Windows10のUSBコントローラードライバーも関係あるかも。Windows7+Intel公式ドライバーでも、駄目だった。NUC+PX-W3U4の組み合わせは駄目そう。

◆機材
 ・PX-W3U4
 ・B-CASカード(別売り)


◆使用ツール
 ・tvtest0.7.23 x86版
 ・tvrock09t8a

◆参考サイト
https://sites.google.com/site/tsnukituner/tstunerlist/plex/px-w3u4

◆インストール手順
1. ESXiパススルー設定
下記のリンクを参照。
【ESXi】【NUC】ESXi6.5 USB3(PCIPassThrough)

2. ドライバーインストール
2.1. 公式からドライバーダウンロード
1) OSがWindows10x64のため、ドライバーもx64版をダウンロード。


2) ダウンロードしたファイルを解凍。(下記は、LhaForgeを使用しているが、Windows標準の解凍でOK)


3) 解凍したファイル。(後で使用)


2.2. ドライバインストール
1) Winキー+X、Mの順に押下(Win10の場合)し、デバイスマネージャー起動。


2) 「W3U4」を選択し、右クリックし、「ドライバーソフトウェア」の更新を選択。


3) 「コンピューターを参照してドライバーソフトウェアを検索します」を選択。


4) 手順2.1.で解凍したフォルダを指定


5) しばらく待つ。


6) "~を常に信頼する"チェックボックスをチェックして、「インストール」ボタン押下。


7) 「閉じる」ボタン押下。


※何故かVisual C++ 20XX 再頒布可能パッケージはインストールしなくても動作した。他のソフトのインストールの際にインストール済みだったのかな?動作しない場合は、適宜インストールすること。

3. フィルタインストール
3.1. ダウンロード
フィルタダウンロード

3.2. ダウンロードしたファイルの解凍(下記は解凍後)


3.2. フィルタインストール
1) Winキー押下、【cmd】を入力し、「コマンドプロンプト」を右クリックし、「管理者として実行」を選択。


2) 「はい」を押下。


3) cdコマンドでフィルタのディレクトリへ移動。(パスは適宜読み替えること。)


4) 「RegFilter.bat」を入力し、Enterキー押下。(下記は実行後のポップアップウィンドウが表示されている。OK⇒ポップアップ⇒OK⇒・・・。)


3. tvtestインストール
3.1. 32bit版をダウンロード&解凍
 ローカルにあったので、それを使用。googleで検索すれば、出てくるはず。


3.2. BonDriverダウンロード&解凍
下記からダウンロード
BonDriver

3.3. TvTestの直下にBonDriverをコピー(下記はT0のみだが、Wチューナー使用する場合はT1もコピー、また、BSの場合も同様。)

3.4. TvTest起動し、下記のように入力。


3.4. チャネルスキャン実行



3.5. しばらく待つと、視聴が始まる。


-------------------以下、今後記載予定-------------------
4.tvrock 
4.1. ダウンロード  
4.2. tvtest連携ファイル配置
  連携ファイル x32版を使用(マニュアルに記載有り。)  
4.2. dtune.bat実行
 
4.3. 設定

◆USBについて
 USB2.0接続になる。試聴しないので特に問題無し。

◆視聴画質調査予定
 リモートデスクトップ接続のためか、コーデックのせいなのかコーミングノイズが発生する。tvtestの設定で修正できるかな?

◆録画画質調査予定