事象の水平線

個人的ブックマーク代わりなメモ書きブログ。 地球は丸いよ。↓このへん。

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PageTop
バックアップテストをしてたら、なんだか知らないけど隠しファイルがたまに増殖してることがあるので、何事かと思ったら gEditがデフォルトでバックアップファイルを作っていたでござる。

あまりGUIではいじらないけど、たまーにgEditでいじったりするので、次インストールしたときにも忘れないようにメモメモ。

gEditの『編集』>『設定』で

エディタ』タブ の『保存する前にバックアップを生成する』 のチェックをはずす。

おわり。

スポンサーサイト

PageTop
Windows2000機にpingを送ると、返答がない。
で、調べてみるとフリーのFirewallのOutpost 2009が原因のようなのでPingを返すようにするメモ

設定』>『ネットワーク ルール』>『ICMP 設定

0番』の『Echo Reply』と
8番』の『Echo Request』の両方のIn Outにチェックを入れる
outpost-icmp.png

ちなみにデフォルトの設定はこちら
outpost-icmp-default.png

PageTop
数年前にVivotek製のPZ6112を\19,800で買ったのだけど、最近は使わずに押し入れにしまっておいた。
CentOSサーバー機をリモートで操作するのに、外付けHDDの電源状態などを知りたくなり、久しぶりに箱から出してネットワークにぶら下げてみたら接続はするものの映像が写らない。
で、いじってみるとアバスト6が邪魔をしているようで、その対処方法

アバストのインターフェースを開き
リアルタイムシールド』>『ウェブシールド』をクリック
avast1.png

詳細な設定』をクリック
avast2.png

開いたウィンドウの『検査からの除外』をクリック
avast3.png

除外するURL』の項目にPZ6112のアドレスを入力して『OK』を押して終了
avast4.png

PageTop
CentOS6.0マシンはNAS的なホームサーバーとして使うので、全自動でバックアップをしてほしい。

ということで、余っている(といっても、以前のWin2kの2号機のシステムディスクMaxtor“6V250F0”250GB)があるので、それを外付けHDDとして使えるように、HDDケースをPCデポで購入。
ものは、玄人志向のGW3.5AA-SUP/MB
内蔵にしてもよかったんだけど、利便性と使っていないときに電源が切れる機能があるということで、このHDDケースを選択。
2011年10月現在で個人的に調べた結果、SATAのHDDで3TiB対応で電源連動機能のあるUSB外付けHDDケースで最安。
USB2.0しか無いけど、妥協しました。
で、PCデポだと近場のお店の店頭価格があまり安くなくても、Webで買って店頭受け取りが出来るらしい。
店頭受け取りを使うと、Web通販の送料がかからないということで、それを使って\1,800でお買い上げ。しかも、価格コムで最安。

話が脱線するけど、このケースに入れてCrystalDiskMarkでベンチを取ってみたら20MB/s位しかでない。
明らかにUSB2.0がボトルネックに・・・理論値では480Mb/sなのでバイト換算だと60MB/s、少なくとも40MB/s位でるかなぁ~と思っていたのに・・・こんなもんか・・・・まぁ、、USB2.0がそれほど速くないってのは何年も前から言われてるので今更だけど。
でも、マシンのM/BがUSB2.0しかないしまぁいいでしょう。
それと、Windowsマシンにぶら下げて1時間くらい使っていたらS.M.A.R.Tで50度になっていた。びっくり。
アルミシェルだけど密閉なので結構熱くなります。触るといい具合にほっかいろ状態。
また、電源連動でHDDの電気が切れてランプも切れてもワットチェッカーで見たら3W位食ってます。
これって、昨今のWDのGreenとか省電力HDDのアイドルと大して変わらないこと無い?だとしたら電源が切れるから買ったのにちょっと残念な感じ・・・

とまぁ、HDDケースの雑感はどうでもいいとして・・・・


データのバックアップソフトとか色々調べてみると、どうやら、ソフトなど使わずとも『rsync』というのがそこそこ使えそうな感じ。
で、『rsync』関連の参考にしたHPが
『Homeserver on Vine Linux』さんの『rsyncで自動バックアップ
『maruko2 Note』さんの『rsync でディレクトリの同期(バックアップ)
『サーバの実験室 Slackware』さんの『rsync-2.6.3
こんなところ。

HPを見てると、同期するような使い方の説明が多いみたい。
個人的に、昔マカー(今マカーって言わないよね・・昔はMac使いは・・・)でバックアップソフト(レトロスペクト懐かしいなぁ)でデータをテープドライブ(Hi8)にバックアップしていた頃は、テープドライブということもアリ、当然更新前のデータも残る訳で、バックアップを取った時点なら好きな時のデータに後からアクセスできる。
インクリメントバックアップ?ていうの?
で、バックアップといったらそれが当然と思い込んでいるので、こんなスクリプトでテストをしてみました。


#!/bin/sh

declare log=/home/backuptest/BackUp.log
declare src=/home/share/
declare dest=/home/backuptest/share/
declare datestr=`date +"%Y-%m-%d_%H%M%S"`

echo "########## BackUp "$datestr" ##########" >>$log

rsync -abv --stats --exclude=exclude --suffix=.$datestr~ $src $dest >>$log

echo "" >>$log


<< 説明 >>
log はログファイル
src はバックアップ元のディレクトリ
dest はバックアップ先のディレクトリ
datestr はログでバックアップが行われた日時を記録するための変数
 『date』コマンドに『+"%Y-%m-%d_%H%M%S"』とすることで、『2011-10-29_102345』2011年10月29日10時23分45秒というフォーマットにしてバッククォート『`』で囲むことで変数として与えられます。
 『覚書』さんの『シェル 日付を シェル変数に格納』を参考にしました。

rsync はオプションで『-abv』とし、bオプションをつけることで、バックアップ元でファイルの更新があった場合、バックアップ先の古いファイルが--suffix=で指定した日付の入ったファイル名に書き換えられます。
実際には、hoge.txtというファイルがバックアップ元とバップアップ先の両方にあって、バックアップ元が更新された後にバックアップを行った場合、
バックアップ先ではhoge.txt.2011-10-29_102345~という名前の古いファイルとhoge.txtという最新のファイルが出来ることになります。
それが、バックアップのたびに行われるのでファイルが更新されると、その都度1つ古いファイルに日付が付いてファイルが増えていきます。
更に、末尾にチルダ『~』を入れているので、CentOSのデスクトップ上からは『隠しファイル』扱いとなって『表示>隠しファイルを表示する』にチェックを入れなければ見えません。

本当は、バックアップを取った日時でなく、その1つ古いファイルの最終更新日がファイルネームに追加できればベストなのですが、まぁ、面倒なのでこれで良しとします。というか、どうやるかいいアイデアが思いつかない orz

また、バックアップしたくないファイルをexcludeディレクトリに入れておけばバックアップされません。


rsyncのオプションの説明 『rsync の man ページ』より抜粋
-v, --verbose 転送情報を詳しく表示
-q, --quiet 転送情報を表示しない
-c, --checksum 常にチェックサムを行う
-a, --archive アーカイブモード(-rlptgoD オプションと同義)
-r, --recursive ディレクトリで再帰的に実行する
-R, --relative 相対パス名を使う
-b, --backup バックアップを作成する (デフォルトで ~ が付く)
--suffix=SUFFIX バックアップのサフィックスを変更

-u, --update アップデートのみ許可 (上書き禁止)
-l, --links ソフトリンクを維持する
-L, --copy-links ファイルのようにソフトリンクを扱う
--copy-unsafe-links 送信側ツリー外のリンクをコピー
--safe-links 受信側ツリー外のリンクを無視
-H, --hard-links ハードリンクを維持する
-p, --perms パーミッションを維持する
-o, --owner オーナーを維持する (root のみ)
-g, --group グループを維持する
-D, --devices デバイスを維持する (root のみ)
-t, --times タイムスタンプを維持する
-S, --sparse 密度の低いファイルを効率的に扱う
-n, --dry-run 実行時の動作だけを表示
-W, --whole-file rsync アルゴリズムを使わない
-x, --one-file-system 再帰的に実行された時にファイルシステムの境界を横断しない
-B, --block-size=SIZE rsync アルゴリズムのチェックサムブロックサイズの制御(default 700)
-e, --rsh=COMMAND rsh の代替を指定
--rsync-path=PATH リモートのマシーンで rsync のコピーへのパスを指定
-C, --cvs-exclude システム間で転送したくない広範囲のファイルを除外(CVSの方法と同じ)
--delete 送信側にないファイルを削除
--delete-excluded 受信側にある exclud ファイルも削除
--partial 転送途中のファイルを保存します
--force ディレクトリが空でなくても削除
--numeric-ids ユーザとグループの id 番号を転送して、転送後にマッピング
--timeout=TIME IO タイムアウトを設定(秒)
-I, --ignore-times タイムスタンプとファイルサイズのチェックをしない
--size-only タイムスタンプのチェックをしないで、ファイルサイズのチェックだけをする
-T --temp-dir=DIR tmp ファイルのディレクトリを指定
--compare-dest=DIR 受信側のファイルと比較するための追加ディレクトリ
-z, --compress 受信ファイルを圧縮compress file data
--exclude=PATTERN パターン一致するファイルを除外
--exclude-from=FILE ファイルに記述されたパターンと一致するファイルを除外
--include=PATTERN パターン一致するファイルを除外しない
--include-from=FILE ファイルに記述されたパターンと一致するファイルを除外しない
--version rsync のバージョンを表示する
--daemon rsync をデーモンとして走らせる
--config=FILE 別の rsyncd.conf ファイルを指定
--port=PORT 別の rsync ポート番号を指定
--stats rsync アルゴリズムの転送効率を表示
--progress 転送中の情報を表示



さて、これで、このスクリプトをcrontabで週1回くらい実行するように設定すればいいかな。
と思うが、24時間稼動でないシステムを想定しているので、普通にバックアップを逃しそうである。
で、1週間前にバックアップが実行されてるかを判断してバックアップを走らせるスクリプトを書こうと思ったら、cron以外にもanacronというものがあるらしい。
なにやら、これがまさしくcronが実行されなかったときに後から遅延で実行をしてくれるというなんとも素敵な仕組みが元から備わってるようで、調べてみるが、なんだかよくわからない orz
ちなみにそのとき参考にしたHP
『Red Hat Linux 9』さんの『Anacron』RedHat公式らしい
『Cyberam Documents Project』さんの『anacron

で更に調べると、どうやらCentOS6というかRedHat6から仕様が変わったようで、crontab -eで設定したものは後から追いかけてanacronでは実行してくれないみたい。たぶん・・

というか『sa-sa-ki.jpのblog』さんの『Scientific Linux 6で自宅サーバー構築 番外編その1 Scientific Linux 6のcronについて』がとても詳しいので役に立ちました。(詳しくはそっち見た方がいい;;)

で、どうやら、crontab -eではなく/etc/cron.weeklyにスクリプトファイルを入れておくと、週に一度どこかで勝手に実行してくれて、また次に電源の入ってるときに1週間たっていると勝手に実行してくれる。ということになるらしい。
時間の指定とか出来ないけど、まぁ、、、、バックアップだしいいかな・・・
ちなみに、その1週間を判断するのに/var/spool/anacron/cron.weeklyに、実行したときの日付が書き出されてそこからの差分で判断してるらしい。
日毎、月毎もweeklydaily monthlyになるだけで、要は同じこと

ちなみに/etc/anacrontabを見てみると

[root@NAS ~]# cat /etc/anacrontab
# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22

#period in days delay in minutes job-identifier command
1 5 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly


となっていました。
3時~22時の間で、
dailyのものは /var/spool/anacron/cron.dailyから1日経過していれば 5分(0~)45分の遅延で実行
weeklyのものは /var/spool/anacron/cron.weeklyから7日経過していれば 25分(0~)45分の遅延で実行
monthlyのものは /var/spool/anacron/cron.monthlyから一ヶ月経過していれば 45分(0~)45分の遅延で実行
ということになるらしいです。

実際にweeklyで試したところ起動から74分後にバックアップが実行されたログが残っていました。


ちなみに、参考にしたHPのScientific Linuxとはなんぞ?と思って調べてみたら、フェルミ加速器研究所とCERNが作ったパッケージらしい。す、すげー。
→wikipedia:Scientific Linux



最後に個人的結論メモ

[root@NAS ~]# vi /etc/cron.weekly/backup.sh
#!/bin/sh

declare log=/home/backuptest/BackUp.log
declare src=/home/share/
declare dest=/home/backuptest/share/
declare datestr=`date +"%Y-%m-%d_%H%M%S"`

echo "########## BackUp "$datestr" ##########" >>$log

rsync -abv --stats --exclude=exclude --suffix=.$datestr~ $src $dest >>$log

echo "" >>$log



<<追記>>
その2があります。→CentOS6.0 自動バックアップ その2

PageTop
Ubuntuの時はNTFSフォーマットのHDDは何もせずにそのままマウントできたけれど、CentOSでは認識はしてもマウントできないようです。
で、調べてみるとHPによってやり方が何種類か書かれているけど、EPEL(いーぺる:Extra Packages for Enterprise Linux)とかいうパッケージを導入する方法でやってみました。

参考にしたのは『ぷろぐらっ!』さんの『[CentOS6]NTFSファイルシステムの読込
『ALL about Linux』さんの『CentOS 6 で ntfs をマウントする

まずパッケージのダウンロード →URL:http://fedoraproject.org/wiki/EPEL/ja
[root@NAS ~]# wget http://download.fedora.redhat.com/pub/epel/6/i386/epel-release-6-5.noarch.rpm
http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm (32bit-2013/8/25現在有効)
http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm (64bit-2013/8/25現在有効)

--2011-10-12 22:38:30-- http://download.fedora.redhat.com/pub/epel/6/i386/epel-release-6-5.noarch.rpm
download.fedora.redhat.com をDNSに問いあわせています... 209.132.181.23, 209.132.181.24, 209.132.181.25, ...
download.fedora.redhat.com|209.132.181.23|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 14064 (14K) [application/x-rpm]
`epel-release-6-5.noarch.rpm' に保存中

100%[======================================>] 14,064 43.6K/s 時間 0.3s

2011-10-12 22:38:31 (43.6 KB/s) - `epel-release-6-5.noarch.rpm' へ保存完了 [14064/14064]


rpmパッケージのインストール
[root@NAS ~]# rpm -ivh epel-release-6-5.noarch.rpm
警告: epel-release-6-5.noarch.rpm: ヘッダ V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
準備中... ########################################### [100%]
1:epel-release ########################################### [100%]


epelパッケージのインストールでデフォルトのものが読み込まれないように書き換える らしい
[root@NAS ~]# vi /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled = 0 1を0へ
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

[epel-debuginfo]
name=Extra Packages for Enterprise Linux 6 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch/debug
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1

[epel-source]
name=Extra Packages for Enterprise Linux 6 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/6/SRPMS
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1


epelパッケージのインストール
[root@NAS ~]# yum install -y ntfs-3g --enablerepo=epel
Loaded plugins: fastestmirror, refresh-packagekit
Loading mirror speeds from cached hostfile
epel/metalink | 6.7 kB 00:00
* base: rsync.atworks.co.jp
* epel: ftp.iij.ad.jp
* extras: rsync.atworks.co.jp
* updates: rsync.atworks.co.jp
epel | 4.3 kB 00:00
epel/primary_db | 3.4 MB 00:04
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package ntfs-3g.i686 2:2011.4.12-5.el6 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
ntfs-3g i686 2:2011.4.12-5.el6 epel 284 k

Transaction Summary
================================================================================
Install 1 Package(s)
Upgrade 0 Package(s)

Total download size: 284 k
Installed size: 648 k
Downloading Packages:
ntfs-3g-2011.4.12-5.el6.i686.rpm | 284 kB 00:00
警告: rpmts_HdrFromFdno: ヘッダ V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
epel/gpgkey | 3.2 kB 00:00 ...
Importing GPG key 0x0608B895 "EPEL (6) " from /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
Installing : 2:ntfs-3g-2011.4.12-5.el6.i686 1/1

Installed:
ntfs-3g.i686 2:2011.4.12-5.el6

Complete!


ひとまず終了。

で、マウントします。
[root@NAS ~]# mount -t ntfs /dev/sdb /media
NTFS signature is missing.
Failed to mount '/dev/sdb': 無効な引数です
The device '/dev/sdb' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?
[root@NAS ~]#

あら、おこられた。
パーティションが切ってあったので、『sdb』ではダメだった見たいです。
『sdb1』とかにするんでしょう。たぶん。
ちなみに、SATAのHDDだと『sd*』で*にaから順番らしい。
PATAだと『hd*』とか色々あるらしいです。
でも、めんどくさいんでGUIで『場所』メニューからマウントしました。
『GUI』からやると 『/media/』にマウントされるみたいです。

PageTop
CentOS6.0 WOL』でWOLは出来るようになり、24時間稼動から開放されたものの、いまだ電源OFFはsshでShutdownコマンドを打っている。
出来れば使わなくなったら自動で電源が切れてもらいたい。
で、使わなくなったことをどう評価するかだけど、SambaにはSmbstatusコマンドがあるのでそれが使えるかと思ったが、どうも、SambaにつなげたWindowsをShutdownやSuspendしても、つながったままだと表示されたりすることがままある。
それに、minidlnaは接続状況を知るコマンドが無いっぽい。

と、言うことで、ちょっとダサいけど、ルーターが割り当ててるIPアドレスを全部pingでチェックしてサーバーにアクセスするような端末の電源がすべて落ちていたら電源を切るスクリプトを組んでみた。(タブが表現されないので見辛いですが・・)

[root@NAS ~]# vi /usr/local/bin/shutdown.sh
#!/bin/sh

declare -i ip_start=2
declare -i ip_end=98 #192.168.0.99 is own #192.168.0.100 is airmac
declare ip_prefix="192.168.0."

declare logdir=/home/share/log
declare log=/shutdown.log

declare -i zombicount=0

mkdir $logdir 2>/dev/null

echo "<<<<<<<<<< "$(date +"%Y/%m/%d %p %I:%M:%S")" >>>>>>>>>>" > $logdir$log

while [ $ip_start -le $ip_end ];
do
declare ping_res=$(ping -c3 $ip_prefix$ip_start)

echo "------------"$ip_start"/"$ip_end"------------"$(date +"%Y/%m/%d %p %I:%M:%S")"------------" >> $logdir$log
echo $ping_res >> $logdir$log

if echo $ping_res | grep -sq ", 0% packet loss"
then
echo "############ alive ############" >> $logdir$log
exit

elif echo $ping_res | grep -sq "100% packet loss"
then
echo "== dead ==" >> $logdir$log
let ++ip_start

else
if [ $zombicount -gt 2 ];
then
echo "-- zombi exit --"$zombicount >> $logdir$log
exit;
else
let ++zombicount
echo "-- zombi --"$zombicount >> $logdir$log
fi
fi
done

/sbin/shutdown -h +1 " 約1分後にサーバーの電源が切れます。キャンセルコマンドは『shutdown -c』"

#キャンセルされてもDone shutdownメッセージが残るか・・・
echo "<<<<<<<<<<<<<< "$(date +"%Y/%m/%d %p %I:%M:%S")" Done Shutdown >>>>>>>>>>>>" >> $logdir$log


パーミッションあげときます。
[root@NAS ~]# chmod 755 /usr/local/bin/shutdown.sh

ルーターからの割り当てIPアドレス範囲は 192.168.0.2~192.168.0.100
無線親機のAirmacは 192.168.0.100 に固定
サーバー本体は 192.168.0.99 に固定
それ以外は、基本的にDHCPによる自動割当

192.168.0.2から順番に、一つのIPに対しピングを3回打っていて、0% packet lossなら電源の入っている端末があるということで、スクリプトは何もせずに終了。
逆に、100% packet lossならそのIPの端末は電源が切れているのでIP番号をインクリメントして次の端末を確認。
もしpacket lossが33%とかなら、3セットまでは、ピングを打ち続け、4セット目にはあきらめて何もせずスクリプト終了。
で、192.168.0.98まで以上を繰り返し、すべてのIPで100% packet lossなら1分後に電源を切る

といった感じ。
なぜピングが3回かというと、応答がないときは1秒間隔でピングを打つので3回だと3秒。なのに何故か4回になると12秒くらいかかるから・・・何故かは知らない;;

それと、『echo ほにゃらら >> $logdir$log』となっている箇所は、スクリプトの動作確認のためにログを書き出しているのだけれど、不要ならコメントアウトするなりしていいでしょう。
($zombicountを0に戻す仕組みが無いのは解ってるけど、まぁ、細かいことは気にしません。orz)

1つのIPに対し約3秒かかるのを約100個確認するので、約300秒=約5分
5分+電源が切れる猶予に1分で合計6分かかるので、10分おきにcronで実行することに。

[root@NAS ~]# crontab -e
4,9,14,19,24,29,34,39,44,49,54,59 * * * * /usr/local/bin/hddtemp.sh
*/10 * * * * /usr/local/bin/shutdown.sh


分に4と9の付くタイミングで実行しているのはmrtg関連のスクリプト

これで、サーバーにアクセスするような端末の電源がすべて切れると長くても約10分後にはサーバーの電源が切れることになります。
毎日夜中の何時になったら電源を切って~とかよりもより細かく電源が切れるので省エネになるのではないかと。
でもHDDのためには24時間稼動の方がやさしいのかなぁ~??



<<追記>>

続編があります→続 CentOS6.0 自動電源OFF

PageTop
CentOS6.0 OpenSSH インストール』で、リモートから作業が出来るようになったけれど、FireWallの設定とか、それ以外にもコマンドもほとんど知らないので、GUIで触りたくなる。

で、VNCってのを使うとリモートでGUI操作が出来るらしい。

参考にしたのは
『はじめての自宅サーバ構築 - Fedora/CentOS -』さんの『リモートデスクトップ接続(VNC)
『rderaログ』さんの『CentOS5.2にVNCサーバ環境を構築した。
その他・・・・
大しててこずってはいないけど、参考にしたHPに書いてある通りではなく、どうやったか記憶が定かではないので多少間違ってるかもかも;;;ログ見ながら書くけど・・

サーバーのインストール
[root@NAS ~]# yum -y install vnc-server

が、これまた入ってました。


設定ファイルの編集
[root@NAS ~]# vi /etc/sysconfig/vncservers
# The VNCSERVERS variable is a list of display:user pairs.
#
# Uncomment the lines below to start a VNC server on display :2
# as my 'myusername' (adjust this to your own). You will also
# need to set a VNC password; run 'man vncpasswd' to see how
# to do that.
#
# DO NOT RUN THIS SERVICE if your local area network is
# untrusted! For a secure way of using VNC, see this URL:
# http://kbase.redhat.com/faq/docs/DOC-7028

# Use "-nolisten tcp" to prevent X connections to your VNC server via TCP.

# Use "-localhost" to prevent remote VNC clients connecting except when
# doing so through a secure tunnel. See the "-via" option in the
# `man vncviewer' manual page.

VNCSERVERS="1:root"    rootにしちゃったよ、まずいんかな?
VNCSERVERARGS[1]="-geometry 800x600 -nolisten tcp"



VNCサーバーを起動します。   rootでやっちゃいました。
[root@NAS ~]# vncserver
You will require a password to access your desktops.

Password:     おすきなぱすわーど
Verify:     おすきなぱすわーど

New 'NAS.localdomain:1 (linux)' desktop is NAS.localdomain:1

Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/NAS.localdomain:1.log

どうせCUIで電源を切るときはroot権限で無いと出来ないので、Puttyでssh接続するとすぐにsuでrootに切り替えてしまうので、VNCもrootでやってしまったけど、理想的ではないのかな。
はっきり言ってよく理解してません。今はまだWan側からアクセスする気が無いので、動きゃいいくらいの勢いです・・・


また、参考にしたHPには、『/root/.vnc/xstartup』の最終行を編集するように書いてあるけど、編集せずに見慣れたGnomeがリモートで立ち上がりました。なんでかな・・・?ただ、『/root/.vnc/xstartup』の記述内容が全く違うようだけど・・・デフォルトのままでもOKになったのかな?スクリプト見てもよくわかりませんが;;

次に、ファイアウォールの設定をしておきます。

ポート番号はディスプレイ番号?とか言うのに対応してるらしく、先ほどの設定で
VNCSERVERS="1:root"
とした部分の『1』が対応するみたいで、VNCの『5900』に『1』を足した『5901』がポート番号になるらしいです。
なので、『5901』のTCPを開けます。
SS-VNC-FW.png
ちなみに『8200』はminidlnaです。

以上で、サーバー側(Linux側)の設定は終了。


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

お次は、リモート側(Windows側)です。

参考にしたのは、『アイティメディア株式会社』さんの『UltraVNCでコンピュータをリモート制御する(クライアント編)

クライアントソフトは『UltraVNC』を使います。

UltraVNCの『ダウンロードページ』から適当に頂いてきます。
XPに入れたので何も考えず最新をもらいました。
ちなみに、@ITで日本語版と紹介されてるページは既にないみたいです。

インストールとかは、まぁ、普通のwindowsアプリなんで・・・・問題ないかと・・

『UltraVNC Viewer』を立ち上げます。
SS-UltraVNC-Conect.png
VNC Server: の欄に サーバーのIPアドレスとそれに続いてポート番号を『:』でつなげて入れます。

うちのサーバーはルーターの設定で、DHCPによる自動ではなく『192.168.0.99』にIPを固定しているので『192.168.0.99:5901』になります。

で、『Connect』を押すとパスワードを要求されます。

SS-UltraVNC-pass.png

で、サーバーの設定で入力したパスワードを入れると立ち上がったウィンドウの中にCentOSのGUI画面が出てきました。

めでたしめでたし。

常に使う訳でもないので、chkconfig vncserver on はしてません。セキュリティ的にも・・
なので、使うたびに一度Puttyでログインしてから
[root@NAS ~]# vncserver
としてVNCサーバーを立ち上げて使ってます。

ちなみにvncserverを終了させるコマンドは
[root@NAS ~]# vncserver -kill :1
Killing Xvnc process ID 1872

最後の数字『1』はディスプレー番号らしいです。
いつも、-killと:の間にスペースを忘れて怒られます。
まぁ、VNC使った後はたいがいShutdownかRebootするので、あまり-killすることは無いです。

PageTop
CPUの冷却具合もさることながら、サーバーたるものHDDの加熱具合が非常に気になる。
ということで、HDDの温度を監視しようと調べてみると、MRTGというのが使える子らしい。

参考にしたHP
『アイティメディア株式会社』さんの『MRTGでハードディスクの温度変化をグラフ化するには
『memorandum』さんの『MRTGで温度監視
『Crimson Snow 』さんの『「smartmontools」によるハードディスクの監視
『server-memo.net』さんの『MRTGインストール

はい、いってみましょー

[root@NAS ~]# yum install mrtg
Loaded plugins: fastestmirror, refresh-packagekit
Loading mirror speeds from cached hostfile
* base: ftp.nara.wide.ad.jp
* extras: ftp.nara.wide.ad.jp
* updates: ftp.nara.wide.ad.jp
base | 3.7 kB 00:00
extras | 3.0 kB 00:00
updates | 3.5 kB 00:00
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package mrtg.i686 0:2.16.2-5.el6 set to be updated
--> Processing Dependency: mrtg-libs = 2.16.2-5.el6 for package: mrtg-2.16.2-5.el6.i686
--> Processing Dependency: perl-IO-Socket-INET6 for package: mrtg-2.16.2-5.el6.i686
--> Processing Dependency: perl-Socket6 for package: mrtg-2.16.2-5.el6.i686
--> Processing Dependency: gd for package: mrtg-2.16.2-5.el6.i686
--> Processing Dependency: perl(locales_mrtg) for package: mrtg-2.16.2-5.el6.i686
--> Processing Dependency: perl(MRTG_lib) for package: mrtg-2.16.2-5.el6.i686
--> Processing Dependency: libgd.so.2 for package: mrtg-2.16.2-5.el6.i686
--> Running transaction check
---> Package gd.i686 0:2.0.35-10.el6 set to be updated
---> Package mrtg-libs.i686 0:2.16.2-5.el6 set to be updated
--> Processing Dependency: perl(SNMP_Session) for package: mrtg-libs-2.16.2-5.el6.i686
--> Processing Dependency: perl(BER) for package: mrtg-libs-2.16.2-5.el6.i686
---> Package perl-IO-Socket-INET6.noarch 0:2.56-4.el6 set to be updated
---> Package perl-Socket6.i686 0:0.23-3.el6 set to be updated
--> Running transaction check
---> Package perl-SNMP_Session.noarch 0:1.12-4.el6 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
mrtg i686 2.16.2-5.el6 base 694 k
Installing for dependencies:
gd i686 2.0.35-10.el6 base 141 k
mrtg-libs i686 2.16.2-5.el6 base 95 k
perl-IO-Socket-INET6 noarch 2.56-4.el6 base 17 k
perl-SNMP_Session noarch 1.12-4.el6 base 67 k
perl-Socket6 i686 0.23-3.el6 base 23 k

Transaction Summary
================================================================================
Install 6 Package(s)
Upgrade 0 Package(s)

Total download size: 1.0 M
Installed size: 3.2 M
Is this ok [y/N]: y
Downloading Packages:

(1/6): gd-2.0.35-10.el6.i686.rpm | 141 kB 00:00
(2/6): mrtg-2.16.2-5.el6.i686.rpm | 694 kB 00:00
(3/6): mrtg-libs-2.16.2-5.el6.i686.rpm | 95 kB 00:00
(4/6): perl-IO-Socket-INET6-2.56-4.el6.noarch.rpm | 17 kB 00:00
(5/6): perl-SNMP_Session-1.12-4.el6.noarch.rpm | 67 kB 00:00
(6/6): perl-Socket6-0.23-3.el6.i686.rpm | 23 kB 00:00
--------------------------------------------------------------------------------
Total 534 kB/s | 1.0 MB 00:01
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : perl-Socket6-0.23-3.el6.i686 1/6
Installing : gd-2.0.35-10.el6.i686 2/6
Installing : perl-IO-Socket-INET6-2.56-4.el6.noarch 3/6
Installing : perl-SNMP_Session-1.12-4.el6.noarch 4/6
Installing : mrtg-libs-2.16.2-5.el6.i686 5/6
Installing : mrtg-2.16.2-5.el6.i686 6/6

Installed:
mrtg.i686 0:2.16.2-5.el6

Dependency Installed:
gd.i686 0:2.0.35-10.el6
mrtg-libs.i686 0:2.16.2-5.el6
perl-IO-Socket-INET6.noarch 0:2.56-4.el6
perl-SNMP_Session.noarch 0:1.12-4.el6
perl-Socket6.i686 0:0.23-3.el6

Complete!


HDDの温度はhddtempというのをUbuntuで試しに入れたので、今回も使えるかとインストールを試みるがパッケージが無いだのなんだので、インストールできず、で、調べると、smartmontools? コマンド『smartctl』というのが元から入ってるらしい。
で、それを使うことに。

ちなみに、ターミナル(端末)からS.M.A.R.Tを見るには、
[root@NAS ~]# smartctl -A /dev/sda
てな感じ。
『-A』オプションでデータが見れるらしい。
/dev/sdaでデータを見るHDDを特定します。sd~はSATAらしい。
デスクトップの『アプリケーション』>『システムツール』>『ディスク・ユーティリティ』でディスクをクリックすると『デバイス』の部分に書いてあります。


S.M.A.R.TからHDD温度のみ抽出するスクリプト(こういうのってどこのディレクトリにおくべきなんやろか・・)
[root@NAS ~]# vi /usr/local/bin/hddtemp.sh  ←新規作成
#!/bin/sh
/usr/sbin/smartctl -A /dev/sda | grep Temperature | awk '{print $10}{print $10}' > /usr/local/bin/hddtemp

参考にしたHP通りにはいかず、CentOSが6だからか、色々あって(後述)一度ファイルに書き出してます。

パーミッションを設定
[root@NAS ~]# chmod 755 /usr/local/bin/hddtemp.sh

[root@NAS ~]# /usr/local/bin/hddtemp.sh
パーミッションを設定
[root@NAS ~]# chmod 755 /usr/local/bin/hddtemp

ちなみに、CPU温度なんかも取れるようにlm_sensorsもインストール
[root@NAS ~]# yum -y install lm_sensors
   ~省略~

端末で『sensors』コマンドで 色々と表示されます。
表示される情報は環境によって違うので色々試してください。
『CPU Temp』なんて項目がある場合もありますが、正しくない場合が多いのでベンチマークなんかを走らせてCPU負荷をかけて温度変動が大きいのがおそらくCPUの温度です。
自分の環境では『temp2』がCPUの温度のようです。

lm_sensorsからCPU温度のみ抽出するスクリプト
[root@NAS ~]# vi /usr/local/bin/cputemp.sh  ←新規作成
#!/bin/sh
sensors | grep temp2 | awk '{print $2}{print $2}' | tr -d +°C


パーミッションを設定
[root@NAS ~]# chmod 755 /usr/local/bin/cputemp.sh


MRTGの設定ファイルを編集
EUC-JPで保存する必要があるのでgEditなりGUI上でやったほうが楽かも。
nkfインストールして端末上でやったけどいちいちめんどくさい・・・・(viだとUTF-8で保存される)
/etc/mrtg/mrtg.cfg  ※EUC-JPで保存すること
######################################################################
# Multi Router Traffic Grapher -- Example Configuration File
######################################################################
# This file is for use with mrtg-2.0
#
# Note:
#
# * Keywords must start at the begin of a line.
#
# * Lines which follow a keyword line which do start
# with a blank are appended to the keyword line
#
# * Empty Lines are ignored
#
# * Lines starting with a # sign are comments.

# Where should the logfiles, and webpages be created?

# Minimal mrtg.cfg
#--------------------

Language: EUC-JP

HtmlDir: /var/www/mrtg
ImageDir: /var/www/mrtg
LogDir: /var/lib/mrtg
ThreshDir: /var/lib/mrtg
#Target[r1]: 2:public@myrouter.somplace.edu
#MaxBytes[r1]: 1250000
#Title[r1]: Traffic Analysis
#PageTop[r1]: <H1>Stats for our Ethernet</H1>



##### HDD Temperature #####
Target[hddtemp]: `cat /usr/local/bin/hddtemp`
ThreshMaxI[hddtemp]: 51
ThreshMaxO[hddtemp]: 51
MaxBytes[hddtemp]: 65
Unscaled[hddtemp]: dwmy
Options[hddtemp]: gauge,growright,noinfo,nopercent,unknaszero
Title[hddtemp]: HDD Temperature
PageTop[hddtemp]: <H1>HDD 温度</H1>
ShortLegend[hddtemp]: ℃
YLegend[hddtemp]: HDD Temperature (Celsius)
LegendI[hddtemp]: sda
LegendO[hddtemp]:
Legend1[hddtemp]: sda


##### CPU Temperature #####
Target[cputemp]: `/usr/local/bin/cputemp.sh`
ThreshMaxI[cputemp]: 65
ThreshMaxO[cputemp]: 65
MaxBytes[cputemp]: 70
Unscaled[cputemp]: dwmy
Options[cputemp]: gauge,growright,noinfo,nopercent,unknaszero
Title[cputemp]: CPU Temperature
PageTop[cputemp]: <H1>CPU 温度</H1>
ShortLegend[cputemp]: ℃
YLegend[cputemp]: CPU Temperature (Celsius)
LegendI[cputemp]: CPU
LegendO[cputemp]:
Legend1[cputemp]: CPU



mrtgの起動(実行)
ログが無い間はエラーが出るらしい。
自分は違う原因でエラーが出てて、何度もやり直した。原因が何か忘れた・・・おそらくパーミッション
程なくして気付いて何とかなったから、次も大丈夫だろう;;;
[root@NAS ~]# mrtg /etc/mrtg/mrtg.cfg
-----------------------------------------------------------------------
ERROR: Mrtg will most likely not work properly when the environment
variable LANG is set to UTF-8. Please run mrtg in an environment
where this is not the case. Try the following command to start:

env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg

-----------------------------------------------------------------------
[root@NAS ~]# env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg ←言われたんでやる
[root@NAS ~]#


ひとまず、起動までこぎつけた。
説明も後回しに先に進める。
[root@NAS ~]# find / -name indexmaker  ←バージョンでディレクトリが違うようなので探します
/usr/bin/indexmaker
[root@NAS ~]# vi /usr/bin/indexmaker 長いので端折るです
<meta http-equiv="content-type" content="text/html; charset=iso-8859-15" >
                 ↓ 変更
<meta http-equiv="content-type" content="text/html; charset=euc-jp" >


インデックスページを作るです。
[root@NAS ~]# indexmaker --columns=1 /etc/mrtg/mrtg.cfg > /var/www/mrtg/index.html

えー。よく理解せずにここまで来たけど、MRTGというのはHTMLベースでグラフが見れるらしい。
すなわち、HTMLサーバーが必要。
という訳で、当初サーバーにはSambaとminidlnaでいいやと思っていたのに、早くもApacheの登場となりました。

でインストール
参考にしたのは『はじめての自宅サーバ構築 - Fedora/CentOS -』さんの『Webサーバの構築(apache)

[root@NAS ~]# yum -y install httpd
Loaded plugins: fastestmirror, refresh-packagekit
Loading mirror speeds from cached hostfile
* base: ftp.nara.wide.ad.jp
* extras: ftp.nara.wide.ad.jp
* updates: ftp.nara.wide.ad.jp
base | 3.7 kB 00:00
extras | 3.0 kB 00:00
updates | 3.5 kB 00:00
Setting up Install Process
Package httpd-2.2.15-5.el6.centos.i686 already installed and latest version
Nothing to do


なんと、最初っからはいっとるやんけ・・・・
ここまで来といてなんなんですが、Apacheは先に入れたほうがいいかもです。
たまたま入ってたんで、無かったらどんな不具合があったか解らないですけど、Apache関連のディレクトリの中にMRTGのファイルが出来てくるんで、もしかしたらApacheが先で無いとこけるかも?
でも、たぶん、デフォルトで入ってるんでしょうね・・・・知らなかっただけで・・・・
で、もしかしてphpも?とおもいつつ、インストールします。

[root@NAS ~]# yum -y install php
Loaded plugins: fastestmirror, refresh-packagekit
Loading mirror speeds from cached hostfile
* base: ftp.nara.wide.ad.jp
* extras: ftp.nara.wide.ad.jp
* updates: ftp.nara.wide.ad.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package php.i686 0:5.3.2-6.el6_0.1 set to be updated
--> Processing Dependency: php-cli = 5.3.2-6.el6_0.1 for package: php-5.3.2-6.el6_0.1.i686
--> Processing Dependency: php-common = 5.3.2-6.el6_0.1 for package: php-5.3.2-6.el6_0.1.i686
--> Running transaction check
---> Package php-cli.i686 0:5.3.2-6.el6_0.1 set to be updated
---> Package php-common.i686 0:5.3.2-6.el6_0.1 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
php i686 5.3.2-6.el6_0.1 updates 1.1 M
Installing for dependencies:
php-cli i686 5.3.2-6.el6_0.1 updates 2.2 M
php-common i686 5.3.2-6.el6_0.1 updates 516 k

Transaction Summary
================================================================================
Install 3 Package(s)
Upgrade 0 Package(s)

Total download size: 3.8 M
Installed size: 12 M
Downloading Packages:
(1/3): php-5.3.2-6.el6_0.1.i686.rpm | 1.1 MB 00:01
(2/3): php-cli-5.3.2-6.el6_0.1.i686.rpm | 2.2 MB 00:03
(3/3): php-common-5.3.2-6.el6_0.1.i686.rpm | 516 kB 00:00
--------------------------------------------------------------------------------
Total 673 kB/s | 3.8 MB 00:05
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : php-common-5.3.2-6.el6_0.1.i686 1/3
Installing : php-cli-5.3.2-6.el6_0.1.i686 2/3
Installing : php-5.3.2-6.el6_0.1.i686 3/3

Installed:
php.i686 0:5.3.2-6.el6_0.1

Dependency Installed:
php-cli.i686 0:5.3.2-6.el6_0.1 php-common.i686 0:5.3.2-6.el6_0.1

Complete!

こっちは入ってませんでした。

Apacheの設定ファイルの編集 (ながい・・いじってないところ省略)
[root@NAS ~]# vi /etc/httpd/conf/httpd.conf
~省略~

# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
Options Includes ExecCGI FollowSymLinks

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride All

~省略~

# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
# The index.html.var file (a type-map) is used to deliver content-
# negotiated documents. The MultiViews Option can be used for the
# same purpose, but it is much slower.
#
DirectoryIndex index.shtml index.html index.htm index.html.var

~省略~

#
#CustomLog logs/access_log common
SetEnvIf Request_URI "default\.ida" no_log
SetEnvIf Request_URI "cmd\.exe" no_log
SetEnvIf Request_URI "root\.exe" no_log
SetEnvIf Request_URI "Admin\.dll" no_log
SetEnvIf Request_URI "NULL\.IDA" no_log
SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(ico)$" no_log
SetEnvIf Remote_Addr 192.168. no_log
CustomLog logs/access_log combined env=!no_log



#
# If you would like to have separate agent and referer logfiles, uncomment
# the following directives.

~省略~

#
# ScriptAlias: This controls which directories contain server scripts.
# ScriptAliases are essentially the same as Aliases, except that
# documents in the realname directory are treated as applications and
# run by the server when requested rather than as documents sent to the client.
# The same rules about trailing "/" apply to ScriptAlias directives as to
# Alias.
#
#ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

#
# "/var/www/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
#<Directory "/var/www/cgi-bin">
# AllowOverride None
# Options None
# Order allow,deny
# Allow from all
#</Directory>


~省略~

#
# LanguagePriority allows you to give precedence to some languages
# in case of a tie during content negotiation.
#
# Just list the languages in decreasing order of preference. We have
# more or less alphabetized them here. You probably want to change this.
#
LanguagePriority ja en ca cs da de el eo es et fr he hr it ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW

#
# ForceLanguagePriority allows you to serve a result page rather than
# MULTIPLE CHOICES (Prefer) [in case of a tie] or NOT ACCEPTABLE (Fallback)
# [in case no accepted languages matched the available variants]
#
ForceLanguagePriority Prefer Fallback

#
# Specify a default charset for all content served; this enables
# interpretation of all content as UTF-8 by default. To use the
# default browser choice (ISO-8859-1), or to allow the META tags
# in HTML content to override this choice, comment out this
# directive:
#
AddDefaultCharset Off


~省略~

#
# AddHandler allows you to map certain file extensions to "handlers":
# actions unrelated to filetype. These can be either built into the server
# or added with the Action directive (see below)
#
# To use CGI scripts outside of ScriptAliased directories:
# (You will also need to add "ExecCGI" to the "Options" directive.)
#
AddHandler cgi-script .cgi

~省略~
 終わり


CGIを実行するPerlのシンボリックリンクを貼る
[root@NAS ~]# which perl ←確認のため
/usr/bin/perl
[root@NAS ~]# ln -s /usr/bin/perl /usr/local/bin/perl
[root@NAS ~]# which perl ←確認のため
/usr/local/bin/perl
   ←貼れました

ゆーざーろーかるびんぱーる なんてめっちゃ懐かしい響き・・・・
perlでCGIいじってたのっていつの時代やろー・・・・

Apache起動です
[root@NAS ~]# /etc/rc.d/init.d/httpd start
httpd を起動中: [ OK ]


Apacheの自動起動の登録です
[root@NAS ~]# chkconfig --list httpd ←確認のため
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@NAS ~]# chkconfig httpd on
[root@NAS ~]# chkconfig --list httpd ←確認のため
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off


あーっと、ファイアウォールを設定しますか。
GUIでやります。iptableうんぬんとかよくわからないんで・・・
SS-httpd-FW.png

クライアントから『http://サーバのアドレス/』で確認
Apaheのなんかページが見れればOK

HTMLの確認
[root@NAS ~]# vi /var/www/html/index.html  ←新規作成
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>テストページ</title>
</head>
<body>
HTML(html)表示テスト
</body>
</html>

[root@NAS ~]# chown apache:apache /var/www/html/index.html

同様にクライアントから確認する

SHTMLの確認
[root@NAS ~]# vi /var/www/html/index.shtml  ←新規作成
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>テストページ</title>
</head>
<body>
SHTML(SSI)表示テスト<br>
<!--#echo var="DATE_LOCAL" -->
</body>
</html>

[root@NAS ~]# chown apache:apache /var/www/html/index.shtml

同様にクライアントから確認する
時刻が表示されるはず

CGIの確認
[root@NAS ~]# vi /var/www/html/test.cgi  ←新規作成
#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
print "<html>\n";
print "<head>\n";
print "<META http-equiv=\"Content-Type\" content=\"text/html; charset=EUC-JP\">";
print "<title>テストページ</title>\n";
print "</head>\n";
print "<body>\n";
print "CGI表示テスト\n";
print "</body>\n";
print "</html>\n";

[root@NAS ~]# chown apache:apache /var/www/html/test.cgi
[root@NAS ~]# chmod 750 /var/www/html/test.cgi

同様にクライアントから『http://サーバのアドレス/test.cgi』に接続し確認する

PHPの確認
[root@NAS ~]# vi /var/www/html/test.php  ←新規作成
<?php
phpinfo();
?>

[root@NAS ~]# chown apache:apache /var/www/html/test.php

同様にクライアントから『http://サーバのアドレス/test.php』に接続し確認する
PHPのInfo画面が出ればOK

で、Apacheの設定は終了

さて、まだ終わらない。
まだこれでは、MRTGはクライアントから繋がらない

[root@NAS ~]# vi /etc/httpd/conf.d/mrtg.conf
#
# This configuration file maps the mrtg output (generated daily)
# into the URL space. By default these results are only accessible
# from the local host.
#
Alias /mrtg /var/www/mrtg

<Location /mrtg>
Order deny,allow
Deny from all
Allow from 127.0.0.1
Allow from 192.168.0
Allow from ::1
# Allow from .example.com
</Location>


[root@NAS ~]# crontab -e
4-59/5 * * * * /usr/local/bin/hddtemp.sh

crontab: installing new crontab

面倒なんで再起動しとこう
[root@NAS ~]# shutdown -r now

HDDの温度取得がなぜこんなダサいことになっているのか について
MRTGは通常ユーザーで動いてるらしい?(所有者はrootだがそういうことではないのか・・・)
しかし、『smartctl』はroot権限で無いと『Permission Denied』になる

で、『Yunacci-Wiki 』さんの『FreeBSD/MRTG』によると『operator権限なのでmrtgユーザをoperatorグループに追加する。』らしいが、そもそもoperatorグループが存在しない orz

で、グループ関係を色々いじるもダメ
『BIG-server.com』さんの『第161日目:SSDサーバーで、とある数値の計測を始めました』も参考にしたがダメ

仕方ないんで、root権限でcronでファイルを書き出しそれを読むようにしたのが今回の解決策。
もっといい方法あったら誰か教えて。orz


そして、途中説明をすっ飛ばしたindexmakerのソースの書き換えについて、
まず、文字化けの対策をしている箇所が3箇所あって、その1つがApacheの設定で
AddDefaultCharset Off

LanguagePriority ja en ca cs da de el eo es et fr he hr it ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
の箇所
前述のAddDefaultCharset で UTF-8(CentOS6.0のデフォルト?)等に設定してもそれが有効にならずにiso-8859-15(西洋コード 別名: Latin-9)になってしまい、metaタグが正しく出力されない。 らしい。
ので、Offにし、更に、日本語のコードを優先するためにjaのプライオリティをあげる。 らしい。

そして、indexmakerでは書き換えた部分のメタタグがそのまま使われる訳だけど、MRTG自体がindex.html以外のHTMLを書き出すときに使う文字コードが、一応/etc/mrtg/mrtg.cfgの設定ファイルで指定できるのだが、その指定できるコードが公式の『リファレンス』を読むと、
Language
出力フォーマットを選択した言語に切り換えます(どの言語がサポートされているかは translateディレクトリをチェックしてください。このディレクトリには新しい翻訳をどのように作ればいいかの指示もあります)。
現在、次の言語がサポートされています:
big5 brazilian bulgarian catalan chinese croatian czech danish dutch eucjp french galician gb gb2312 german greek hungarian icelandic indonesia iso2022jp italian korean lithuanian malay norwegian polish portuguese romanian russian russian1251 serbian slovak slovenian spanish swedish turkish ukrainian

と、日本語はEUCかJISしかなくUTF-8がサポートされていない様子。
で、実際に言語指定もせずUTF-8でmrtg.cfgファイルを書き出すと日本語部分が完璧に文字化ける。
当然無理にUTF-8と指定してもだめなので、やむなく、EUC-JPを選択し、mrtg.cfgのEUC-JPで書き出すことに・・
なので、それにあわせて、indexmakerもEUC-JPにしました。

文字化け関連は『gihyo.jp … 技術評論社』さんの『MRTGを使ったネットワーク監視技法:第8回 indexmakerを使う
『Linuxで自宅サーバ構築(新森からの雑記)』さんの『MRTGでハードディスクの温度をグラフ化する方法』にも記述がありました。

まぁ、一応これで動くと思うんだけど、何せ後から書いてるんで何か抜け落ちてるかもしれません。o..rz


<<追記>>

時によってPATAのHDDを増設して起動したりするので、その時もきっちりとメインのHDDの温度を追いかけてもらいたい。
/dev/sdaとかだとHDDの構成でどれがsdaになるか変わってくるので。
ということで、『/usr/local/bin/hddtemp.sh』を一部変更しました。

#!/bin/sh

#HDDの名前(ファイルシステムの名前を自分で設定しておく)
declare HDDlabel=Maxtor250GB

/usr/sbin/smartctl -A `/sbin/findfs LABEL=$HDDlabel` | grep Temperature | awk '{print $10}{print $10}' > /usr/local/bin/hddtemp

PageTop
OpenSSHをインストールし、ローカルのGUIを使わなくなってきたので、ログインシステムを変更してみた。

『お便利サーバー.com』さんの『◇ログインシステムの変更(CentOS6)◇』と『◇ランレベルについて◇』を参考にしました。


[linux@NAS ~]# su
パスワード:
[root@NAS ~]# vi /etc/inittab

Ins

# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:


:w 『Enter
:q 『Enter

少しはCPU軽くなるといいけど・・・消費電力的にも・・・


<< 追記 >>
何故かその後Puttyからのリモート操作でシャットダウンに失敗するのでランレベルを5に戻しました。

PageTop
WOL出来るようになり、電源を自動で切る仕組みはまだ考え中だけれども、必要なときだけ稼動するようにすると、いつどれだけ稼動していたか知りたくなる。

CentOSにも何かログを残す機能はあるだろうけど、まぁ、よく知らないので;;;;
なんかスクリプトで出来るんだろうと、テキトーにやってみました。

/etc/rc.d/init.d/ の中に RecordUptime.sh という名前で以下の内容のファイルを作りました。

#!/bin/sh

declare logdir=/home/share/log
declare log=/uptime.log

mkdir $logdir >/dev/null 2>&1

cat /proc/uptime | tr -d '\n' >> $logdir$log
printf ' ' >> $logdir$log
date >> $logdir$log


このスクリプトを実行するとこんな感じ
   437.03 385.67 Wed Sep 28 17:59:28 JST 2011
   スペース区切りで 前から
   稼働時間アイドル時間現在時間(曜日、月、日、時間、日本標準時、年)

超テキトーな説明 (コマンド少し覚えてきたょ)
1行目2行目
   ログのディレクトリとファイル名を変数に格納
3行目
   /home/share ディレクトリはある前提で。
   /home/share/log ディレクトリはSambaクライアントのWindowsで間違って消すかもしれないのでmkdir。
   >/dev/null 2>&1 はエラーメッセージ抑制。
4行目
   cat /proc/uptime で uptime(稼働時間)とアイドル時間を秒単位で取得し表示
   | tr -d '\n' は /proc/uptime からの出力の改行を削除
   >> $logdir$log で 表示先を/home/share/log/uptime.logに変更して追記で書き出し
5行目
   スペースを書き出し
6行目
   日付を書き出し


パーミッション変更
chmod 755 /etc/rc.d/init.d/RecordUptime.sh



/etc/rc.d/rc.local を変更  (起動時に実行されるらしい)

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

/sbin/ethtool -s eth0 wol g

touch /var/lock/subsys/RecordUptime
ln -s /etc/init.d/RecordUptime.sh /etc/rc0.d/K00RecordUptime
ln -s /etc/init.d/RecordUptime.sh /etc/rc6.d/K00RecordUptime


は デフォルト
ピンクは WOLの為のコマンド
が ShutdownとRebootのときに実行されるように今回追加した部分

超テキトーな説明
touch はファイルの更新時間を更新するらしい ファイルがないとファイルを作成
/var/lock/subsys/ 下に スクリプト名のファイルがないとShutdown時に実行しないらしい

ln -s はシンボリックリンクの作成
エイリアス(Mac)、ショートカット(Win)見たいなもんらしい
これで、/etc/rc[06].d/ 下に K??スクリプト名(??は数字) というシンボリックを作る
/etc/rc0.d 、 /etc/rc6.d はそれぞれのrunlevelで起動するスクリプトが入ってるらしい
で、runlevel0がShutdown runlevel6がRebootらしい
で、頭文字KとSがあって killとstartなのかな?
その後の二桁の数字はその数字の順番に実行されるらしい


残念ながらうまくいかなかった方法 → 『disklessfun’s Wiki*』さんの『Tips: (Linuxで)コンピュータの終了時にコマンドを実行する

とても参考になったよありがとう → 『Just another WordPress.com site』さんの『shutdown時のコマンド実行

<<訂正>>
エラーメッセージ抑止の方法を見直し

PageTop
結局のところ、CentOSもデスクトップがGNOMEで、Ubuntuと大差ないか逆に重いくらいなので、ローカルでセットアップをするのが微妙につらい。
特にFireFoxが重い。
ので、リモートで作業が出来るように、Telnetを試したがうまく繋がらないので、OpenSSHを試すことに。
Windwosのコマンドプロンプトから気軽につなごうと思っていたけど、まぁ、OpenSSHの方がセキュアだしいっか。
参考にしたのは『はじめての自宅サーバ構築 - Fedora/CentOS』さんの『SSHサーバの構築(OpenSSH)
まんまですけど・・・・

OpenSSHサーバー編 (@CentOS6.0)
ユーザー名linuxのアカウントを想定してます。

[linux@NAS ~]$ su
パスワード:
[root@NAS linux]# yum -y install openssh-server
Loaded plugins: fastestmirror, refresh-packagekit
Loading mirror speeds from cached hostfile
* base: ftp.nara.wide.ad.jp
* extras: ftp.nara.wide.ad.jp
* updates: ftp.nara.wide.ad.jp
Setting up Install Process
Package openssh-server-5.3p1-20.el6_0.3.i686 already installed and latest version
Nothing to do


なんとまたもや入ってました。

設定します。
[root@NAS linux]# vi /etc/ssh/sshd_config

# $OpenBSD: sshd_config,v 1.80 2008/07/02 02:24:18 djm Exp $

# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/bin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options change a
# default value.

#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

# Disable legacy (protocol version 1) support in the server for new
# installations. In future the default will change to require explicit
# activation of protocol 1
Protocol 2

# HostKey for protocol version 1
#HostKey /etc/ssh/ssh_host_key
# HostKeys for protocol version 2
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key

# Lifetime and size of ephemeral version 1 server key
#KeyRegenerationInterval 1h
#ServerKeyBits 1024

# Logging
# obsoletes QuietMode and FascistLogging
#SyslogFacility AUTH
SyslogFacility AUTHPRIV
#LogLevel INFO

# Authentication:

#LoginGraceTime 2m
PermitRootLogin no
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys
#AuthorizedKeysCommand none
#AuthorizedKeysCommandRunAs nobody

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#RhostsRSAAuthentication no
# similar for protocol version 2
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
PermitEmptyPasswords no
PasswordAuthentication no


# Change to no to disable s/key passwords
#ChallengeResponseAuthentication yes
ChallengeResponseAuthentication no

# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no

# GSSAPI options
#GSSAPIAuthentication no
GSSAPIAuthentication yes
#GSSAPICleanupCredentials yes
GSSAPICleanupCredentials yes
#GSSAPIStrictAcceptorCheck yes
#GSSAPIKeyExchange no

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
#UsePAM no
UsePAM yes

# Accept locale-related environment variables
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS

#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
#X11Forwarding no
X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#UsePrivilegeSeparation yes
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#ShowPatchLevel no
#UseDNS yes
#PidFile /var/run/sshd.pid
#MaxStartups 10
#PermitTunnel no
#ChrootDirectory none

# no default banner path
#Banner none

# override default of no subsystems
Subsystem sftp /usr/libexec/openssh/sftp-server

# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# ForceCommand cvs server

OpenSSH再起動 (起動してなかったけど・・)
[root@NAS linux]# /etc/rc.d/init.d/sshd restart
sshd を停止中: [失敗]
SSH1 RSA ホストキーを生成中: [ OK ]
SSH2 RSA ホストキーを生成中: [ OK ]
SSH2 DSAホストキーを生成中: [ OK ]
sshd を起動中: [ OK ]

ユーザーlinuxで鍵を作ります。
[root@NAS linux]# su - linux
[linux@NAS ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/linux/.ssh/id_rsa): Enter
Created directory '/home/linux/.ssh'.
Enter passphrase (empty for no passphrase):   おすきなぱすわーど
Enter same passphrase again:           おすきなぱすわーど
Your identification has been saved in /home/linux/.ssh/id_rsa.
Your public key has been saved in /home/linux/.ssh/id_rsa.pub.
The key fingerprint is:
2c:d3:c5:b1:a6:fe:51:60:23:54:b3:cc:43:45:45:d1 linux@NAS.localdomain

[linux@NAS ~]$ ls -la /home/linux/.ssh  ←確認のため
合計 16
drwx------. 2 linux linux 4096 10月 1日 16:23 2011 .
drwx------. 25 linux linux 4096 10月 1日 16:22 2011 ..
-rw-------. 1 linux linux 1743 10月 1日 16:23 2011 id_rsa   ←秘密鍵
-rw-r--r--. 1 linux linux 402 10月 1日 16:23 2011 id_rsa.pub  ←公開鍵

[linux@NAS ~]$ cat /home/linux/.ssh/id_rsa.pub >> /home/linux/.ssh/authorized_keys
[linux@NAS ~]$ chmod 600 /home/linux/.ssh/authorized_keys
[linux@NAS ~]$ rm -f /home/linux/.ssh/id_rsa.pub
[linux@NAS ~]$ ls -la /home/linux/.ssh/  ←確認のため
合計 16
drwx------. 2 linux linux 4096 10月 1日 16:26 2011 .
drwx------. 25 linux linux 4096 10月 1日 16:22 2011 ..
-rw-------. 1 linux linux 402 10月 1日 16:25 2011 authorized_keys ←公開鍵
-rw-------. 1 linux linux 1743 10月 1日 16:23 2011 id_rsa      ←秘密鍵


面倒なんでSamba経由で秘密鍵を渡しちゃいます。 あかんかな?
[linux@NAS ~]$ su
パスワード:
[root@NAS linux]# mkdir /home/share/id_rsa   ←Sambaのフォルダ下に渡すためのフォルダを作ります
[root@NAS linux]# chmod 777 /home/share/id_rsa ←パーミッション無いとクライアントが読めません
[root@NAS linux]# mv /home/linux/.ssh/id_rsa /home/share/id_rsa/ ←移動
[root@NAS linux]# chmod 777 /home/share/id_rsa/id_rsa ←パーミッション設定

自動起動の設定
[root@NAS linux]# chkconfig sshd on
[root@NAS linux]# chkconfig --list sshd   ←確認だけ
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off


サーバー側(CentOS)の設定は以上です。
ちなみに、SSHのポート22番は最初からファイアウォールが開いてました。
のでそのままで大丈夫でした。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~
OpenSSHクライアントPuTTY編 (@WinXP)

続いて、WindowsXPにクライアントソフトをダウンロードして設定です。
こちらも同じく『はじめての自宅サーバ構築 - Fedora/CentOS』さんの『PuTTY によるサーバリモート接続』を参考にしました。
まぁ、まんまです。

『hdk の自作ソフトの紹介』さんの『最新版ダウンロード』からputty-0.60-jp20070603.zipをダウンロードします。

Puttyで使うために秘密鍵の変換が必要です。
puttygen.exe を起動します。

Load ボタンを押して、サーバーで作った秘密鍵を開きます。秘密鍵のファイルには拡張子が付いてないので、ファイルの種類はAll Files(*.*)で開きます。

鍵を作ったときのパスワードを入力して、ぷっちーのかぎにしないといけないよ。と言われるので、

Save privte key を押してユーザー名のlinuxでもなんでも、好きな名前で保存します。


次にクライアントソフトの起動です。
puttyjp.exe を起動します。

[セッション]カテゴリ ホスト名 にサーバーのIPを入れます。
ポート 22
接続タイプ  SSH


[接続]カテゴリの[データ] 自動ログインのユーザー名 を linux
[接続]カテゴリの[SSH]の[認証] 認証のためのプライベートキーファイル に先ほどの作ったlinux.ppkのファイルを指定します。

[ウィンドウ]カテゴリの[変換] 文字コードの設定 を UTF-8/Auto-Detect Japanese あたりにしときます。

まあ、この程度で基本問題ないですが、

[セッション]カテゴリの[ログ] セッションのログ 印字可能な出力 (全セッションだと制御文字が入って文字化け化けになります)

[セッション]カテゴリの[ログ] ログファイルがすでに存在する場合何をすべきか を 常にその最後に追記
まぁ、ログ見られると何したかばれちゃいますけどね;;

[ウィンドウ]カテゴリ スクロールバックの行数 適当に桁増やしときますか

あとは、フォントとか、色とかお好きにどうぞ。 14ポ位が見やすくていいかな。

こんなところでしょうか。

[セッション]カテゴリ セッション一覧の空欄に覚えやすい名前を入れて保存を押すと設定を保存しておけます。

あとは『開く』を押せば つながります。

一番最初は何か言われますが、『Yes』です。公開鍵がなんてろで、なりすましかもしらんよ??見たいな内容だったと思います・・・まぁ、英語ですけど読めば解るでしょう・・・・

PageTop
以前の『Ubuntu WOLで遠隔起動 省電力の夢を見る』と同様WOLを試しました。

[root@CentOS ~]# yum -y install ethtool
Loaded plugins: fastestmirror, refresh-packagekit
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* extras: ftp.iij.ad.jp
* updates: ftp.iij.ad.jp
Setting up Install Process
Package 2:ethtool-2.6.33-0.3.el6.i686 already installed and latest version
Nothing to do
[root@CentOS ~]# /usr/sbin/ethtool -s eth0 wol g


が、Ubuntuの時と違い、一回こっきりで、WOLが効かなくなってしまいました。
で、前回調べた時も『/usr/sbin/ethtool -s eth0 wol g』のコマンドだけでは一回こっきりだよという記述は目にしていたのですが、何故かそれだけで何度も動いていたのでこれだけでいいんかなと、いいように解釈していたのですが、やはりそうではないようで、『メモ捨て場』さんの『Wake up on LAN』や『DesktopなLinuxの設定とか』さんの『Wake on LANを設定する【その2】』を参考にし


/etc/sysconfig/network-scriptsのディレクトリにifcfg-eth0が存在しなかったので
ifcfg-eth0をつくり

ETHTOOL="wol g" と一行入力して試すもダメ

それではと、
ETHTOOL_OPTS="wol g" もダメ


しかたなく、『DesktopなLinuxの設定とか』さんの『Wake on LANを設定する』を参考に

/etc/rc.local
 を
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
/sbin/ethtool -s eth0 wol g


とすることでWOLするようになりました。


なんで、ifcfg-eth0 ではだめなのかなぁ~・・・
というかそもそもファイルが無いんだけどなぜやろかーちゃんとeth0でつながってるんだけどなぁ・・・・

PageTop
以前Ubuntuにminidlnaをインストールしたので、同じ方法でインストールしようと、コンパイルを試みるが『ターゲットが指定されておらず, makefile も見つかりません. 中止.』と言われる。
/var/cvs/minidlna/ をみると 『Makefile.am』はあるけど他にmakefileと名の付くものが見当たらない。
で、ためしに、Ubuntuを入れた予備のHDDに切り替えて同様にminidlnaをインストールしようとすると、以前はあっさり通ったコンパイルが同様のエラーで通らない。
以前うまくいった時のソースファイルはもう残っていないので、何か変化があったのかは解らないけど、とりあえずだめなのであきらめて、以前も参考にした『kn_ishi』さんの『CentOS5.5+PT2にminiDLNAを入れて、.TSファイルをBRAVIAで見られる様にする。』の『バイナリファイルのインストール方法』を見ながらインストールをすることにしました。

ちなみに、Ubuntuにminidlnaのインストールはこちら→『Ubuntu + minidlna = Woooでファイル再生 minidlnaをインストール

ルート権限で行ってます。

バイナリファイルのダウンロード
wget http://sourceforge.net/projects/minidlna/files/minidlna/1.0.18/minidlna_1.0.18_static.tar.gz/download

ダウンロードファイルの解凍
tar -zxvf minidlna_1.0.18_static.tar.gz
etc/minidlna.conf
usr/share/locale/de/LC_MESSAGES/minidlna.mo
usr/sbin/minidlna

↑青文字は解凍結果

viで設定ファイルの編集
(vi で開いたら、『Ins』キーで文字のインサートモード『Esc』コマンドモード=インサートモードから離脱、コマンドモードで:wでファイルの保存、コマンドモードで:qでviの終了、コマンドモードで:q!で変更せず終了 これだけ学習しました。)
vi etc/minidlna.conf

media_dir=/opt を
media_dir=A,/home/share/Music
media_dir=V,/home/share/video
media_dir=P,/home/share/Picture



friendly_name=miniDLNA
に (画面で表示される名前 お好きにどうぞ)

notify_interval=2

『通知間隔。これを適当に短く(数秒に)しておかないと、MiniDLNA を再起動しない限り、何時まで経っても Woooリンクで使えるようにならない。』らしいです→参考『Resetting Linux ( and DeleGate + Postfix )』さんの『Vine Linux 5.x で DLNA サーバーを立ててみる

パーミッションを設定します。
chmod 644 etc/minidlna.conf
chmod 644 usr/share/locale/de/LC_MESSAGES/minidlna.mo
chmod 755 usr/sbin/minidlna

ファイルを移動します。
mv etc/minidlna.conf /etc
mv usr/share/locale/de/LC_MESSAGES/minidlna.mo /usr/share/locale/de/LC_MESSAGES
mv usr/sbin/minidlna /usr/sbin


ライブラリの追加
yum install sqlite-devel
yum install flac-devel
yum install libvorbis-devel
yum install libexif-devel
yum install libjpeg-devel
yum --enablerepo=rpmforge install ffmpeg-devel
yum --enablerepo=rpmforge install libid3tag-devel


した二つは無いと言われましたけど、大丈夫でした。(一応やったほうがいいのかな?)
<<追記>>
Linuxがまったくわかっていなかった(今でも)だけで、した二つはrpmforgeからインストールするもの。
方法はグーグル先生が詳しいです。そもそもrpmってなんぞ?yumってなんぞ?もグーグル先生に・・・



自動起動の為のスクリプトを用意しないといけないみたいですが、『CentOS5.5+PT2にminiDLNAを入れて、.TSファイルをBRAVIAで見られる様にする。』の中ほどからファイルがダウンロードできるのでありがたく頂戴いたします。
それを/etc/rc.d/init.dの中に解凍して入れるようです。

ちなみに、ファイルの中身のスクリプトも転載しておきます。(まるしーとかないけど、いいのかな?いいよね?)
#!/bin/sh

# chkconfig: 345 99 10
# description: MiniDLNA is server software with the aim of being fully compliant with DLNA/UPnP-AV clients.

MINIDLNA=/usr/sbin/minidlna
ARGS='-f /etc/minidlna.conf'
PIDFILE=/var/run/minidlna.pid
LOCKFILE=/var/lock/subsys/minidlna

test -f $MINIDLNA || exit 0

. /etc/rc.d/init.d/functions

start(){
echo -n "Starting minidlna : "
daemon --pidfile $PIDFILE $MINIDLNA $ARGS
RETVAL=$?
[ $RETVAL -ne 0 ] && failure
[ $RETVAL -eq 0 ] && touch $LOCKFILE && success
echo
return $RETVAL
}
stop(){
echo -n "Stopping minidlna : "
killproc -p $PIDFILE $MINIDLNA
RETVAL=$?
[ $RETVAL -ne 0 ] && failure
[ $RETVAL -eq 0 ] && rm -f $LOCKFILE && success
echo
return $RETVAL
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
stop
start
;;
status)
status $MINIDLNA
;;
*)
echo "Usage: $0 {start|stop|restart|reload|status}"
exit 1
esac

exit 0



自動起動スクリプトのパーミッション設定
chmod 755 /etc/rc.d/init.d/minidlna
minidlnaをデーモンに登録
chkconfig --add minidlna
minidlna 0:off 1:off 2:on 3:on 4:on 5:on 6:off
minidlnaを起動
/sbin/service minidlna start
Starting minidlna :               [ OK ]


ファイアーウォールを設定します。
ポート8200とminidlna.confに書いてあるので、とりあえず8200番のTCPを追加します。
ss-minidlna-firewall.png

で、終わりなのですが、実際のインストール中はWoooからファイルが無いといわれて調べたところ/tmp/minidlna下のfiles.dbを削除して再起動したらあっさり見れました。
そのとき調べたHP→『KazHatブログ』さんの『miniDLNAを使う   大成功だ~
確かにそれによって大成功だ~~ そんなの普通には気付かないっす。


コンパイルが出来なくなってつまづいていたときは、新しい更新があるまでだめかなぁ・・・なんてあきらめ気味だったのが、バイナリからのインストールに切り替えてからは意外とあっさり行ったのでよかったです。
とはいえ、ファイアウォールとnotify_interval、/temp/minidlna/files.dbにはぶち当たったけどそれでも1時間以内で動作確認まで出来ました。
めでたしめでたし。

PageTop
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。