logo
 2003年   2004年   2005年   2006年   2007年   2008年   2009年   2010年   2011年   2012年   2013年   2014年   2015年   2016年   2017年 
 9月 
 10月 
 11月 
 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月 7月 
 2月 8月 
 3月 9月 
 4月 10月 
 5月 11月 
 6月 12月 
 1月
アイコンの説明
code:Haemophilus influenzae
ここに書かれていることは無保証です。同じことを行って問題が発生しても、龍義は責任をとりません。

■ 2月1日Other

C# でプログラムを書いていて。 四捨五入をする必要があるので、Math.Round を使っていた。 同じ計算式を PHP でやっていたのだけど、どうも計算が合わないときが出てきて。 一体何の差なのかとやってみてわかったのが、6.5 の四捨五入の部分で違いが出てきている。
C# で 6.5 を四捨五入すると、6
PHP で 6.5 を四捨五入すると、7
となるため、計算が合わなくなってしまった。 算数で習った四捨五入のやり方だと、C# の四捨五入は間違っている。 なんでこうなってしまうのかと調べてみると、C# での四捨五入は「JIS 丸め」などと呼ばれている実装で、1の位が偶数で小数点1位が5で、小数点2位以下が無い場合は切り捨ててしまう。 これは JIS Z 8401 で定められているらしく。 そう言えば、そんな丸め方があると昔聞いたことがある気がする。
目的は正しい計算をして欲しいのではなく、2つのプログラムで答えが合っていることなので、Math.Round に引数を足して MidpointRounding.AwayFromZero を指定した。 これで2つのプログラムの計算が合うようになった。 「何が正しい」というものがない世界かもしれないけど、共通でわかりやすい名前の関数を用意してもらい感じ。

■ 2月2日WWW

いつものように検索エンジンを使って調べ物をしていたら、サービス終了のページが出てきた。

WebSpaceサービス終了

J:COM の WebSpace サービスというサービスが終了してしまったためのようで。 調べてみると、

弊社ではこれらのオプションサービスについて、引き続きご提供できるよう検討を重ねてまいりましたが、昨今のさまざまなインターネットサービスの発展と普及に伴い、当該オプションサービスの利用機会も大幅に減少している傾向にあり、この度、以下の通りサービスを終了させていただくこととなりました。

だそうで。 インターネットに繋いだら web ページを作って、という時代じゃなくなったってことか。 でも、世の中の web ページ数は増えているようだし、プロバイダのサービスではなく簡単にブログが書けたりできるサービスを利用してるということかな。 同時に J:COM で終了したサービスを見てみると。

・WebSpace関連サービス(CGI アクセスカウンター、CGI ゲストブック、CGI フォームハンドラ、CGI 掲示板)【*】

そりゃ、J:COM も悪いな。 今時アクセスカウンターだの掲示板だのしかないのはね。

■ 2月3日Linux

PDF から画像を取り出そうかと。 Photoshop に投げれば画像自体は取り出せるけど、仕事場所に Photoshop がないのと、このときの環境が Linux だったのと。 まず PDF から FlateDecode の部分を切り出した。

$ file flatedecode.data flatedecode.data: zlib compressed data

形式は合ってそうな感じ。 gunzip で解凍してみる。

$ gunzip -d flatedecode.data gzip: flatedecode.data: unknown suffix -- ignored

駄目っぽい。 ちょっと調べてみたけど、zlib を使わないと駄目そう。 つまり、簡単で良いのでプログラムを書けと。 deflate なんて、どこでもやってそうな感じなんだけど、そのデータを解凍する方法って意外とないもんだと疑いだしたけど、openssl でできるようなのでやってみた。

$ openssl zlib -d < flatedecode.data > decomp.data

大丈夫そう。 データを見てみた。

$ file decomp.data decomp.data: TrueType font data

しまった。 画像ファイルじゃなくて、font ファイルだった。 切り出す場所を間違えたみたい。 やり方はわかったので、あとは切り出し方の問題。

■ 2月4日Linux

昨日の続き。 取り出したかった画像の部分は DCTDecode という聞いたことがない形式で圧縮されていた。 調べてみると、DCT stands for discrete cosine transform という圧縮方法らしく、wikipedia を読んだけどさっぱりわからなかった。

どうしたものかと調べていたら、xpdf というか poppler の中に pdfimage というコマンドがあるらしく、それを使うと画像が取り出せるのだとか。 確認してみると、既にインストールされていたので、やってみる。

[toyota@takodana tmp]$ pdfimages images.pdf ./ Error: Mismatch between font type and embedded font file [toyota@takodana tmp]$ ls -000.ppm -001.ppm -002.ppm -003.ppm -004.ppm images.pdf

酷いファイル名なのは置いて、ppm になるのはちょっと面倒。 jpeg で出せるようなので、やってみた。

[toyota@takodana tmp]$ rm -- -000.ppm -001.ppm -002.ppm -003.ppm -004.ppm [toyota@takodana tmp]$ pdfimages -j images.pdf ./ Error: Mismatch between font type and embedded font file [toyota@takodana tmp]$ ls -000.jpg -001.jpg -002.jpg -003.jpg -004.ppm images.pdf

これで jpep ファイルとして取り出せた。 取り出した jpeg ファイルには exif 情報は入っていないが、これは変換時に消えたものなのか、元々入ってないのか。 どちらにしても、簡単に取り出せるようになったので満足。

■ 2月5日WWW

Apache のログを眺めていたら、気になる User-Agent がある。

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.34 Safari/534.24

この User-Agent が大量にある。 もちろん、IP アドレスはそれぞれ違っている。 かつてない Linux ブーム到来か!とは思わないが、怪しい気がするのでしらべてみた。

考えられる1つ目が Android の Chrome で、PC 向けサイトを閲覧するときにこの User-Agent が使われるらしく。 そもそも Android って X11 じゃない気がするけど、深く考えないようにする。 もう1つ考えられる理由として、RealDownloader というソフトの可能性もあるらしく。 ただし、調べた限りでは User-Agent が完全に一致していないので、違うかもしれないけど。
最初はロボットの可能性を考えたけど、そうじゃないようで少しすっきりした。

■ 2月6日Windows

Windows Live メールのサポートが先月の10日に終了したとかで。 Windows 7 を再インストールした人から、メールを読むにはどうすれば良いのかと話があった。 Office が入っているなら Outlook があるでしょ、と言えるのだけど入っていないみたい。 じゃ、Thunderbird でも何でも入れればと言ったのだけど、使ったことがないだの、Microsoft のじゃないだの、色々言いだして。 内心では知らんはと思いながらも、調べてみたが、Windows メール(アプリ)は Windows 8 以降じゃないと使えないし、「無い」としか言いようがなく。 最後は「Office」買えば?と言っておいたが。
それにしても、Microsoft のやることはちょっと中途半端と言うかね。

■ 2月7日WWW

HTML を書いていたのだけど、どうも POST のパラメタが送られてこない。 Wireshark で見てみたら送信してないことがわかった。 じっと HTML を眺めると、原因っぽいものが出てきた。 select タグの中の option タグで disabled を有効にしているのだけど、それみたい。 本当にそれが原因なのか、実験してみることに。 まず、小さな送信側の HTML を書いた。 こんな感じ。

<!doctype html> <html style="width: 100%; height: 100%;"> <head> <meta charset="UTF-8"> <title>POST送信</title> </head> <body> <form method="post" action="posttest01.php"> <select name="fruit"> <option value="0" selected disabled>Banana</option> <option value="1">Peach</option> <option value="2">Apple</option> <option value="3">Orange</option> </select> <input type="submit" value="送信"> </form> </body> </html>

これを何でも良いのだけど、PHP で受けてみた。 こんな感じ。

<!doctype html> <html style="width: 100%; height: 100%;"> <head> <meta charset="UTF-8"> <title>POST受信</title> </head> <body> <?php echo $_POST['fruit']; ?> </form> </body> </html>

動かしてみたら、fruit のパラメタごと送られていない。 実際に問題が起きている HTML は送信前に Javascript でごにょごにょやっているので、そこで disabled 属性を外してやることに。 disabled を外すとちゃんと動くようになった。

■ 2月8日WWW

普段から3つぐらいのブラウザを使って、見るものを分けたりしている。 今日、Opera でアクセスしていたら警告画面が出た。

悪意あるサイトに関する警告

Opera で見たのは初めてだったので、こんな機能があったんだという感じ。 技術者としては、あえてその先のページに進んで何が起きるか見てみるべきなのかもしれないけど、今日は忙しいのでアクセスをしないでおいた。 それにしても、例の「押すなよ」みたいな感じに受け止めてしまうな。

■ 2月9日NetworkOther

YAMAHA NVR510 が来た。

YAMAHA NVR510 箱

と言っても私のものではないけど。 付属品はこんな感じ。

YAMAHA NVR510 付属品

正面には Micro SD と USB が刺さるようになっている。 ちょっとボタン周りが、安っぽい感じ。

YAMAHA NVR510 正面

裏は ONU が刺せるようになっていたり。 電源スイッチは裏にあった方が良いかと思ったが、場所的に無理だったのかもしれない。

YAMAHA NVR510 裏面

ファンは付いておらず、上面にはスリットが入っている。 熱的に余裕があるのでしょう。

YAMAHA NVR510 上面

明日以降、設定したり、実験したり。 しばらくこれで遊べそう。

■ 2月10日NetworkOther

昨日来た NVR510 なんだけど、web の画面から NAT の設定なんかをして出来上がった CONFIG を見てみた。 WAN のポートの設定は lan2 になるのがわかり辛いかな。 気が付くのにしばらくかかってしまった。

ssh で入れるように、コマンドリファレンス見ながら web の「コマンド実行」からやってみた。

login user toyota toyota sshd host key generate

を実行したら、sshd host key generate の部分で
エラー: IPアドレスが認識できません
と返ってきてしまった。 どうしたものかと調べてみると、ssh では接続できないけど telnet では繋がるらしい。 やってみる。

Password: Username: toyota Password: NVR510 Rev.15.01.03 (Fri Oct 28 15:19:03 2016) Copyright (c) 1994-2016 Yamaha Corporation. All Rights Reserved. To display the software copyright statement, use 'show copyright' command. 00:a0:de:##:##:##, 00:a0:de:##:##:## Memory 256Mbytes, 2LAN, 1ONU > administrator Password: # sshd host key generate Generating public/private dsa key pair ... |******* Generating public/private rsa key pair ... |******* #

実はこの前に何度か間違えていて、どうも login user を作成してしまうと telnet でも administrator でログインできないみたい。 鍵が作成されたので、sshd を有効にして、telnetd を無効にする。

# sshd service on # telnetd service off

さて、これからバリバリ遊べるな。

■ 2月11日NetworkOther

NVR510 があるネットワークに外から入れるよう L2TP の設定をしてみようかと。 色々やってみるけど、どうもうまくいかない。 設定の確認さえもできない。

show status l2tp エラー: コマンド名を確認してください

何でだろうと色々調べて判明した。 今使っているファームウェアのリビジョンが、
Rev.15.01.02
なのが原因みたい。 最新は
Rev.15.01.03
みたいなので、アップデートしたら通るようになった。 ファームは最新にしようという教訓だな。

■ 2月12日NetworkOther

NVR510 の設定を見ていたら LAN 側に IP アドレスを2つ付けられるようなので、やってみた。

ip lan1 address 192.168.1.1/24 ip lan1 secondary address 192.168.17.1/24

これで IP アドレスが2つ付いた。

YAMAHA NVR510 LAN IP アドレス

この2つのアドレス帯で、設定をしないでも通信はできるのかやってみる。 1台は 192.168.1.2 の Linux PC を用意して、もう一台は 192.168.17.2 の Windows PC を用意。 Windows PC から ping を打ってみる。

C:\ping 192.168.1.2 192.168.1.2 に ping を送信しています 32 バイトのデータ: 192.168.1.2 からの応答: バイト数 =32 時間 <1ms TTL=62 192.168.1.2 からの応答: バイト数 =32 時間 <1ms TTL=62 192.168.1.2 からの応答: バイト数 =32 時間 <1ms TTL=62 192.168.1.2 からの応答: バイト数 =32 時間 <1ms TTL=62 192.168.1.2 の ping 統計: パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、 ラウンド トリップの概算時間 (ミリ秒): 最小 = 0ms、最大 = 0ms、平均 = 0ms

届いた。 これをフィルタリングでブロックできるかやってみる。

# ip filter 700000 reject 192.168.1.1/24 192.168.17.1/24 * エラー: IPアドレスが認識できません

設定できない。 何でだろうと調べてみたら、書いてある通り IP アドレスの指定が間違っていた。 再度入力。

# ip filter 700000 reject 192.168.1.0/24 192.168.17.0/24 *

設定できたので、ping を打ってみた。 しかし、返ってきた。 デバイスを跨がないとフィルターは設定できないみたい。

何がしたかったかというと、配下に無線 LAN のアクセスポイントを設置して、有線側と分離したかったのだけど。 仕方ないので、ぶら下がっている無線 LAN の方でブロックする。 static ルートで 192.168.1.0/24 に行かないようにすれば良いので、セカンダリの IP が付いて設定はしやすくなったか。

■ 2月13日Network

Windows 10 の PC で PPTP を使った VPN 接続を行っている。 毎回毎回接続しないといけなくて、たまに忘れることがあったりするので、起動時に自動的に接続できないか調べてみた。
いくつかやり方はあるようで、タスクスケジューラを使ったやり方と、PowerShell からトリガーを指定するやり方なんかと。 PowerShell で Add-VPNConnectionTriggerDNSConfiguration を設定するのが筋のような気がしたが、Windows 10 になってレジストリの変更なんかをしないといけないので、やめる。 タスクスケジューラを使って設定することに。

タスクスケジューラ

タスクスケジューラの設定が終わったので、一度ログオフしてログインしてみた。 残念なことに、接続の画面が出てユーザ名とパスワードを入れるウィンドウが出てきた。

認証のウィンドウ

これを消せないか調べてみると、ファイルの編集で消せるようである。
C:\Users\[ユーザ名]\AppData\Roaming\Microsoft\Network\Connections\Pbk
にある rasphone.pbk というファイルを編集。 該当の VPN 接続設定にある
PreviewUserPw=1

PreviewUserPw=0
にして、もう一度やってみた。
一瞬、画面中央に接続中のウィンドウが出るが、すぐに消えて問題なく接続された。

これで全て解決と言いたいところだけど、1つ不満が。 タスクスケジューラで設定した接続は、順番的にネットワークドライブの割り当ての後に動くようで、毎回起動時右下の部分に「ネットワークドライブに再接続できませんでした」と出てしまう。

ネットワークドライブに再接続できませんでした

多分、これはタスクスケジューラじゃなく PowerShell で設定すれば出ないのだろうなと思うが、気にしないことにした。

■ 2月14日NetworkOther

Aterm WF300HP2 がやってきた。 これも私のじゃないけど。

Aterm WF300HP2

付属品はこんな感じ。 短い 500mm の LAN ケーブルが付いてきて、これは WAN 側か LAN 側か、どちらで使う前提のものなのだろうか。 ちょっと短いので別途 1m のケーブルを用意した。

Aterm WF300HP2 付属品

この製品の特長は、上から見ると台形になっていること。 背も高くないので、足は附属されていない。

Aterm WF300HP2 上面

裏には LAN の口が3つ用意されている。 やはり、設定をするには LAN の口があると安心する。

Aterm WF300HP2 裏面

分解したい気持ちをぐっと抑えて、明日設定する予定。

■ 2月15日NetworkOther

昨日の続きで、Aterm WF300HP2 の設定。

Aterm WF300HP2 設定画面

色々やっていて、不便なのは何か設定する度に再起動が必要なこと。 安い製品だから仕方がないかもしれないけど、まとめて設定して最後に再起動させたい。
便利だったのは、wifi の時間制限ができること。 夜中とか使う予定はないので、0時~5時までは wifi を止めてしまうことにした。

Aterm WF300HP2 スケジュール設定

某所に設置して、しばらく様子をみる。

■ 2月16日Linux

CentOS なファイルサーバをやっている PC があって。こんな環境。

[root@scarif /]# cat /etc/redhat-release CentOS release 6.8 (Final) [root@scarif /]# uname -p i686

100GB の SATA HDD が余っていたので、ディスクを追加することにした。 サーバを止めて、ディスクを接続し CentOS を起動。 fdisk はこんな感じになった。

[root@scarif /]# fdisk -l Disk /dev/sda: 250.0 GB, 250000000000 bytes 255 heads, 63 sectors/track, 30394 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xdcdc2156 Device Boot Start End Blocks Id System /dev/sda1 * 1 29872 239944704 83 Linux /dev/sda2 29872 30395 4194304 82 Linux swap / Solaris Disk /dev/sdb: 160.0 GB, 160000081920 bytes 255 heads, 63 sectors/track, 19452 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xe325e325 Device Boot Start End Blocks Id System /dev/sdb1 1 7 56196 12 Compaq diagnostics /dev/sdb2 * 8 2557 20482875 7 HPFS/NTFS /dev/sdb3 2558 19448 135676957+ f W95 Ext'd (LBA) /dev/sdb5 2558 7657 40965718+ 7 HPFS/NTFS /dev/sdb6 7658 19448 94711176 7 HPFS/NTFS

sdb になったようで。 100GB と聞いていたけど、160GB っぽい。 がっつり削除して、EXT4 でフォーマット。

[root@BACKUPSV /]# fdisk /dev/sdb WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): p Disk /dev/sdb: 160.0 GB, 160000081920 bytes 255 heads, 63 sectors/track, 19452 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xe325e325 Device Boot Start End Blocks Id System /dev/sdb1 1 7 56196 12 Compaq diagnostics /dev/sdb2 * 8 2557 20482875 7 HPFS/NTFS /dev/sdb3 2558 19448 135676957+ f W95 Ext'd (LBA) /dev/sdb5 2558 7657 40965718+ 7 HPFS/NTFS /dev/sdb6 7658 19448 94711176 7 HPFS/NTFS Command (m for help): d Partition number (1-6): 6 Command (m for help): d Partition number (1-5): 5 Command (m for help): d Partition number (1-5): 3 Command (m for help): d Partition number (1-4): 2 Command (m for help): d Selected partition 1 Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-19452, default 1): Using default value 1 Last cylinder, +cylinders or +size{K,M,G} (1-19452, default 19452): Using default value 19452 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. [root@scarif /]# mkfs.ext4 /dev/sdb1 mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 9773056 inodes, 39062039 blocks 1953101 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 1193 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872 Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 24 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. [root@scarif /]# tune2fs -c -1 -i 0 /dev/sdb1 tune2fs 1.41.12 (17-May-2010) Setting maximal mount count to -1 Setting interval between checks to 0 seconds

ディスクの準備は問題なく。 ディレクトリを作成してマウントする。

[root@scarif /]# mkdir /backup [root@scarif /]# mount /dev/sdb1 /backup [root@scarif /]# df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 236048136 1042464 223008440 1% / tmpfs 2002252 0 2002252 0% /dev/shm /dev/sdb1 153663616 60864 145790348 1% /backup

これで使えるようになった。

■ 2月17日Linux

昨日の続き。 まず、起動時に自動的に mount するように fstab に追加しようとしたが。 fstab はこんな感じになっていた。

[root@scarif /]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Mon Jan 16 16:48:38 2017 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # UUID=425ac255-330b-4f9b-9891-7a264530e1b7 / ext4 defaults 1 1 UUID=600a5cf3-7362-4961-ae85-3ef6349b8a88 swap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0

最近は UUID なんかを使うみたいで。 確認したりして、書き換えてみた。

[root@scarif /]# ls -l /dev/disk/by-uuid/ total 0 lrwxrwxrwx. 1 root root 10 Apr 4 14:37 2ae47e1f-08c0-4b4b-a584-cbc27053aecc -> ../../sdb1 lrwxrwxrwx. 1 root root 10 Apr 4 08:56 425ac255-330b-4f9b-9891-7a264530e1b7 -> ../../sda1 lrwxrwxrwx. 1 root root 10 Apr 4 08:56 600a5cf3-7362-4961-ae85-3ef6349b8a88 -> ../../sda2 [root@scarif /]# vi /etc/fstab [root@scarif /]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Mon Jan 16 16:48:38 2017 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # UUID=425ac255-330b-4f9b-9891-7a264530e1b7 / ext4 defaults 1 1 UUID=600a5cf3-7362-4961-ae85-3ef6349b8a88 swap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 UUID=2ae47e1f-08c0-4b4b-a584-cbc27053aecc /backup ext4 defaults 1 2

再起動して、起動時に mount されるのを確認した。

■ 2月18日LinuxWindows

昨日と一昨日の続きで。 ディスクを増設した PC は、ファイルサーバの代替になる。 まずは、Samba が入っているか確認をする。

[root@scarif /]# rpm -qa | grep samba samba-winbind-clients-3.6.23-36.el6_8.i686 samba-3.6.23-36.el6_8.i686 samba-common-3.6.23-36.el6_8.i686 samba-winbind-3.6.23-36.el6_8.i686 [root@scarif /]# rpm -qa | grep cifs [root@scarif /]#

Samba 周りは大丈夫そう。 ひょっとして、もう動いていいるかもしれないと思って確認してみた。

[root@scarif /]# ps -ef | grep smb root 1521 1469 0 15:13 pts/0 00:00:00 grep smb

動いてはない。 mount -t cifs をしたいので、まずは cifs-utils のインストール。 時間がないので、yum を使った。

[root@scarif /]# yum install cifs-utils ~snip~ Installed: cifs-utils.i686 0:4.8.1-20.el6 Dependency Installed: keyutils.i686 0:1.4-5.el6 Complete!

インストールされたので、廃棄予定のファイルサーバに対して mount -t cifs を試してみる。

[root@scarif /]# mkdir /mnt/share [root@scarif /]# mount -t cifs //192.168.1.5/share /mnt/smbmount Password:

mount がかかった。 古いファイルサーバのファイルをコピーを始める。 その間に、Samba の設定。

[root@scarif /]# cp -p /etc/samba/smb.conf /etc/samba/smb.conf.org [root@scarif /]# vi /etc/samba/smb.conf

適当に設定して、smbd と nmbd の起動をする。

[root@scarif /]# service smb start [root@scarif /]# service nmb start

しかし、アクセスできない。 考えること20秒、iptables だな。 そして、10秒後に去年同じことをした気がしてきた。 探してみると、去年の8月にやっていた。 それを見ながら iptables の設定変更と selinux の設定をした。 これでアクセスできるようになった。 メモってとっておくものだな。

■ 2月19日LinuxWindows

少し昨日なんかの続きで。 Windows の共有フォルダを mount -t cifs(mount.cifs) でマウントしてバックアップをしようと思っている。 コマンドで mount -t cifs を実行すると、パスワードが聞かれる。 このマウントを fstab に書く場合はどんな記述になるのか。 今の fstab はこんな感じになっている。

UUID=425ac255-330b-4f9b-9891-7a264530e1b7 / ext4 defaults 1 1 UUID=600a5cf3-7362-4961-ae85-3ef6349b8a88 swap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 UUID=2ae47e1f-08c0-4b4b-a584-cbc27053aecc /backup ext4 defaults 1 2

defaults とか書いてある場所がオプションだろうから、ここにつらつら書けば良さそう。 少し調べて、書き換えてみた。

UUID=425ac255-330b-4f9b-9891-7a264530e1b7 / ext4 defaults 1 1 UUID=600a5cf3-7362-4961-ae85-3ef6349b8a88 swap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 UUID=2ae47e1f-08c0-4b4b-a584-cbc27053aecc /backup ext4 defaults 1 2 //192.168.1.8/share /backup/share cifs username=toyota,password=######## 0 0

なんだか、fstab ってシンプルなものだと思っていたけど、その意識を変えなきゃいけない時期みたい。

■ 2月20日Linux

昨日、fstab を設定してふと思ったけど、自動でマウントさせるにはパスワードを書かないといけない。 しかし、fstab のパーミッションって readable になっている。

[root@scarif /]# ls -l /etc/fstab -rw-r--r--. 1 root root 1087 Feb 19 19:41 /etc/fstab

この g と o の r を落としたいけど、そのときに何か問題が起きないか少し心配。 少し web で軽く検索してみたけど、そんなことしている人いないようだし。 今度、実験環境があったら fstab のパーミッションを変えて影響を見てようかな。

■ 2月21日Linux

連日の続きで。 /var/log/messages を見ていると、こんな感じのログがだいぶ出ている。

Feb 21 11:01:26 BACKUPSV smbd[1431]: [2017/02/21 11:01:26.700463, 0] printing/print_cups.c:528(cups_async_callback) Feb 21 11:01:26 BACKUPSV smbd[1431]: failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL

smbd が cups と通信しようとしてエラーを出している感じ。 smb.conf には
load printers = No
と入っているけど、影響しないようである。 何のエラーか見てみたら、smb.conf の printing の設定が cups の時に cups と通信しようとするようで、そこでエラーが出ている。 printing は特に指定してないので、どんな値になっているか確認すると。

[root@scarif /]# testparm -v | less ~snip~ print ok = No printing = cups ~snip~

この printing には何が指定できるのか調べてみると。
Currently nine printing styles are supported. They are BSD, AIX, LPRNG, PLP, SYSV, HPUX, QNX, SOFTQ, CUPS and IPRINT.
ということで。プリンタは使わないので NONE とかで良いのだけど、無いので SYSV にしておいた。 これで cups に対するエラーログは出なくなる。

■ 2月22日NetworkWindows

仕事場で使っているデスクトップ PC なのだけど、LAN の入り口が1つしかない。 ネットワーク機器の設定をするのに、わざわざ繋ぎなおさないといけないし、その間はネットワークに接続できないので調べ物ができない。
USB-LAN の安い製品がないかなと調べていたら、Amazon で送料込みで300円以下で売っている。 どうも、レビューを見てみると、速度が出ないとかなんとか。 ネットワーク機器の設定をするため、ブラウザを開いて設定したり ssh で接続するだけなので、速度は求めていない。 動くかどうかが一番の問題だけど、値段につられて272円のものを注文してみた。 ここまでが2週間ぐらい前の話。

忘れていたころに商品が届いたので、開けてみた。 緩衝材付き封筒に入れられていただけなので、パッケージが少し凹んでいる。

USB-LAN パッケージ

商品の他に懐かしの 8cm シングル CD が付いてきた。 PC を縦置きにしてるので、読み込みできないし。

USB-LAN 附属品

だいたい、この怪しげなパンダが描かれている CD を PC に入れるのは怪しすぎて躊躇してしまう。 パンダも笑顔じゃないし。

USB-LAN 附属 CD

Windows 10 の PC に刺してみたら、自動で USB to Ethernet Adaptor として認識した。 まずは一安心だな。

デバイスマネージャー USB to Ethernet Adaptor

製造元は Corechip Semiconductor と出ている。 聞いたことがない。

デバイスマネージャー USB to Ethernet Adaptor

MAC アドレスを確認してみた。 00:02:1C から始まっている。

デバイスマネージャー USB to Ethernet Adaptor

00:02:1C から始まるのはどこの会社なのか検索してみると。

00:02:1C
Network Elements, Inc.

と、US の会社が出てきた。 本当にここの製品なのか怪しい気がする。 勝手に振ったのではと疑っている。
使ってみた感じは特に問題なく。 多分、速度が必要になる作業を行うと問題が出てくる気がするけど、今の作業ではこれで充分快適。
今度時間があったら、どのぐらい速度が出るのか測ってみようかな。

2017年3月3日追記
速度を計測してみたので、そちらも参考に。

■ 2月23日NetworkWindows

昨日の続き。 USB-LAN の製品を購入したついでに、出先でタブレット PC からネットワークの変更ができると思い、Micro USB-LAN の製品も同じ店から購入した。 こちらは247円だった。

Micro USB-LAN パッケージ

昨日の USB-LAN と比較してみた。 コネクタだけが違うと思ったが、微妙に色合いが違うし大きさも違う。

Micro USB-LAN と USB-LAN 比較

ぴったり並べてみると、LAN を刺す部分の大きさが 1mm 弱ぐらい違う。 型が違うのか、違うところで作っているのか。

Micro USB-LAN と USB-LAN 比較

手元の Windows 10 が入ったタブレット PC に接続してみた。 USB 2.0 10/100M Ethernet Adaptor と出てきたが、Wi-Fi に接続していないためか使用不可の状態。

デバイスマネージャー Micro USB-LAN

Wi-Fi に接続してドライバの自動インストールを行うと、使えるようになった。 デバイスマネージャーで製造元の確認を行う。 昨日の製品と同じ Corechip Semiconductor と出た。

デバイスマネージャー Micro USB-LAN

同じく MAC アドレスの確認をした。 やっぱり昨日と同じ 00:02:1C から始まるものだった。

デバイスマネージャー Micro USB-LAN

昨日の製品もそうだけど、送料を入れて247円だと原価は100円切ってるってことで。 一体どうやったらその値段で作っているのか、考えると使えなくなるので、あまり考えないことにした。

■ 2月24日WindowsNetwork

PostgreSQL サーバにアクセスしようとしたら、エラーが出てアクセスできなかった。

$ psql -U toyota -h 172.16.0.2 general_sys psql: FATAL: no pg_hba.conf entry for host "172.16.2.5", user "toyota", database "general_sys", SSL off

何でだろうと思ってふと気が付いた。 これまでは直接アクセスしていたが、VPN で接続しているので接続元の IP アドレスが変わってしまって、制限に引っかかってしまっているようである。

相手の PostgreSQL サーバは Windows Server なので、リモートでログインして pgAdmin を起動する。 pgAdmin の設定項目には IP アドレスでの制限に関する設定が見つからない。 直接設定ファイルを見るために、C:\Program Files\PostgreSQL 以下にある (version)\data\pg_hba.conf を開いてみた。 ファイルの最後の方を確認すると。

# IPv4 local connections: host all all 127.0.0.1/32 md5 host all all 172.16.0.2/24 trust # IPv6 local connections: #host all all ::1/128 md5

こんな感じだった。 そりゃ無理か。 ということで、このファイルに追加。

host all all 172.16.2.0/24 trust

これで PostgreSQL の再起動が必要かと思ったけど、ファイルを上書きして試してみたら接続できるようになった。 VPN の設定をしたら、ソフトウェア側の制限も確認する必要があることを忘れないようにしないと。

■ 2月25日Linux

CentOS をインストールする必要があって。 インストールに使う USB メモリを用意して、インストーラが起動するところまで確認した。 この後、手順書を書きたいので VMware Player でインストールのテストをしてみることに。 が、しかし。 VMware Player の BIOS をいじっても USB メモリから起動しようとしない。

VMware Player

色々やったり検索してみてわかったことは、VMWare では USB からのブートをサポートしていないということ。 ISO の イメージからインストールすれば良いのだけど、デバイス名が違ってきたりするので、対応して欲しかったな。

■ 2月26日Linux
19日とか20日の続き。 昨日 cifs で mount したディレクトリを、ローカルのディスクにコピーするスクリプトを書いた。 cron で夜中に走らせる設定をして昨日は帰った。
朝、バックアップできているか確認すると、全くされていない。 ログに何か残っていないか確認すると dmesg にこんなメッセージが9つほど残っていた。

INFO: task bash:1636 blocked for more than 120 seconds. Not tainted 2.6.32-642.15.1.el6.i686 #1 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. bash D c1871d48 0 1636 1632 0x00000080 f45dbaa0 00000082 00000002 c1871d48 c2e85364 00000000 00000001 c19eec40 c1931740 00000f0b bef20d67 00000f0b c0b9db40 c0b9db40 f45dbd48 c0b9db40 c0b99364 c0b9db40 f45dbd48 c2e85364 0000057b 00000000 00000000 c1871dd8 Call Trace: [] ? context_struct_compute_av+0x2d5/0x3c0 [] ? __mutex_lock_slowpath+0x78/0x1b0 [] ? mutex_lock+0x1d/0x40 [] ? cifs_reconnect_tcon+0x112/0x2d0 [cifs] [] ? cache_alloc_refill+0x1e2/0x510 [] ? smb_init+0x2b/0x70 [cifs] [] ? CIFSSMBQPathInfo+0x3f/0x280 [cifs] [] ? inode_has_perm+0x66/0xc0 [] ? cifs_get_inode_info+0x333/0x680 [cifs] [] ? build_path_from_dentry+0xc5/0x1f0 [cifs] [] ? build_path_from_dentry+0x184/0x1f0 [cifs] [] ? selinux_inode_getattr+0x60/0x90 [] ? cifs_revalidate_dentry_attr+0x134/0x200 [cifs] [] ? cifs_getattr+0x56/0x140 [cifs] [] ? vfs_getattr+0x44/0x70 [] ? cifs_getattr+0x0/0x140 [cifs] [] ? vfs_fstatat+0x52/0x90 [] ? vfs_stat+0x18/0x20 [] ? sys_stat64+0xf/0x30 [] ? audit_syscall_entry+0x1be/0x1e0 [] ? __audit_syscall_exit+0x21b/0x240 [] ? sysenter_do_call+0x12/0x28

書いてある通り、echo 0 > /proc/sys/kernel/hung_task_timeout_secs をしてバックアップできるか様子を見ることに。

■ 2月27日OtherWindows

データを持ち歩きしたかったのだけど 40GB 以上あって、ポータブルのハードディスクを買おうかどうしようか悩んでいた。 今は USB メモリも安くなってきて、64GB のものでも2000円切る価格だったため、思い切って 64GB の USB メモリを購入した。

買ったのは東芝のもの。 SANDISK 製のものも同じ値段だったけど、日本企業の東芝製をもちろん選ぶ。 最近、良い噂を聞かないし、MADE IN PHILIPPINES だけど。

東芝 USB メモリ パッケージ

特に特徴もない USB メモリで、PC のようなコネクタが密集して他が既に刺さっている場所に刺すには太いかな。

東芝 USB メモリ

蓋も無くしてしまいそうな感じのもので、蓋を入れるとカチッと音がするのだけどちょっと心配。

東芝 USB メモリ 蓋

さっそく PC に刺して容量を確認した。 58.1GB で、計算の違いでだいぶ少なくなっている。 これからデータが増えていくので、128GB 買えばよかったかも。 高いけど。

東芝 USB メモリ 容量

既にフォーマットされているし、中に変なソフトとか入っていなくて、良い感じ。

東芝 USB メモリ 中身

ということで 40GB のデータをコピーする。 途中で寝たけど、あのペースだったら3時間ぐらいかかったと思う。

■ 2月28日LinuxWindows

18日の続き。 共通のパスワードでアクセスできる共有フォルダを作って欲しいと話があった。 最近の Samba をあまり触ってなかったので少し調べてみたら security = share は非推奨になっているとかで。 じゃ security = user にしてと思っていたら、passdb backend = tdbsam になっている。 tdbsam なんてものを使っているのを今更知ったりして、すっかり時代から取り残されてしまっている。

気を取り直して、tdbsam でのユーザ作成をする。

[root@scarif /]# pdbedit -a -u operator new password: retype new password: Failed to add entry for user test.

失敗してしまう。どうも、/etc/passwd に同名ユーザが存在しないと駄目なようで。

[root@scarif /]# useradd -M operator [root@scarif /]# pdbedit -a -u operator new password: retype new password: Unix username: operator NT username: Account Flags: [U ] User SID: S-1-5-21-4071142386-823553246-5079557-1000 Primary Group SID: S-1-5-21-4071142386-823553246-5079557-513 Full Name: Home Directory: \\filesv\operator HomeDir Drive: Logon Script: Profile Path: \\filesv\operator\profile Domain: SCARIF Account desc: Workstations: Munged dial: Logon time: 0 Logoff time: never Kickoff time: never Password last set: Sat, 28 Feb 2017 19:17:25 JST Password can change: Sat, 28 Feb 2017 19:17:25 JST Password must change: never Last bad password : 0 Bad password count : 0 Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

どこかにファイルができていると思うので、探してみたら /var/lib/samba/private 以下に passdb.tdb というファイルが作られた。
これで共有フォルダの設定をしてアクセスしてみたら、ユーザ名とパスワードが聞かれる。 ユーザ名とパスワードをさっき作ったものでアクセスすると。
~に対するアクセス許可がありません。ネットワーク管理者にアクセス許可を要求してください。
また selinux か。 何度やっても忘れてしまうな。 公開するディレクトリを chcon -R -t public_content_rw_t として、アクセスできるようになった。


21st projects Tatsuyoshi Networks Prompt Works
by Tatsuyoshi since 2003