注) NASとは、Ethernet上にdiskを付けてファイルを共有するもの。
そこで、有休品であった、Intel Core duoのdisktopマシンに、Linux (CentOS 6.3) をインストールして自宅サーバに改造した。以下、その作業を報告する。
早速役に立った)
東京に一時帰国して、米国の自宅NAS(Network Attached Storage)に保存されていた昨年の年賀状・クリスマスカードの住所録をftpで転送することが出来た。早速役に立った。
関連する作業と掲載予定のblog)
- HP Data Vault奮闘記 - 今後別投稿する
- Desktopマシンの改造 - ファン交換による静音化 - 今後別投稿する
- Linuxサーバ化: 以下に記載する
Linuxサーバ化)
行った作業を列挙しておく。記事が長くなるので、それぞれの作業には、以下の項目からリンクを張ることにする。
- Desktopマシンのハードウェア構成
- Linux(ディストリビューション)とは
- CentOS 6.3 x64 isoイメージの取得
- インストールDVDの作成
- CentOSのインストールと初期設定
- yumの有効化
- daemonの設定
- automountの設定
- samba serverの有効化 NASとしてMacへのmountのさせ方
- boot sectorが壊れたので、Grubを再設定
- iptables(firewall)の設定
- sshdの設定、port番号を変更してport scan 対策
- ftpの有効化
- miniDNSとDiCEを用いたDDNS化
- mdadmを用いたsoftware RAID化(RAID1) - 一旦実施したが壊れて、再設定した
- apacheによるwebサーバ化
- ビデオ配信サーバ化 - 試行中
- squidによるproxyサーバ化
- ビデオ録画サーバ化 - 未実施
- sendmailのインストールと障害情報メイルの転送 - 未完了
- netに繋がらなくなった
- yumの修正とCentOS6.6への更新
- rsync/cronを用いた自動バックアップ
- Dropboxの更新
- RAIDの修復
- RAIDデバイス名の修正
- Keyboardタイプの変更とremount
- UPSを用いたGrace shutdownと再立ち上げの制御
- lm_sensorsを用いたFan制御 (Motherboardが対応していないため失敗)
Desktopマシンのハードウェア構成)
- CPU: Core2 duo 3GHz : LGA775 (Wolfdale E8400 45nm) FSB 1333MHz L2 6MB TDP 65W ( x86_64bitに対応したCPU )
- MB: Foxconn G31MX 46GMX
- RAM: PC2-6400 666 1GB x 2 (2slotのみ)
- SSD: corsair 60GB 2.5inch SSD SATA3
- HD1: WD2.5TB 64MB cache 3.5"HDD WD25EZRX
- HD2: Seagate Barracuda 1.5TB 7200RPM SATA HDD ST315000341AS
- Graphic: Geforce 8400 GS PCIe 256MB DDR2 HDMI DVI
Linux(ディストリビューション)とは)
DHCP Client設定: http://red.ht/1n4PL6e
無料であるばかりでは無く、GPLという改造した場合でもソース公開の義務を負うライセンス形態(copy left) で提供されており、全世界のボランティアにより、急速に進化を続けているOSS(Open Source Software)である。ここでいうFreeは、無料という意味のFree (Free as in beer: 無料のビール)の意味ではなく、自由という意味のFree (Free as in speech : 言論の自由)という意味である。http://en.wiktionary.org/wiki/free_as_in_beer
蛇足: 日本語には、折角、「無料」と「自由」という2つの単語があるのに、「フリーソフト」と安易にカタカナ訳をしてしまったのは、もったいない話しである。
Linuxでは、ベースとなるKernelに、さまざまなツールを追加して、即使える環境にしてリリースしている。これをディストリビューションという。どのディストリビューションも基本的には無料であり、ネットからダウンロードできる。
ベースカーネル)LinuxのOS (Kernel)は、2.x.yとか3.x.y の版番号を持ち、大きくなるほど最新である。この第2桁の数字xが偶数のものが安定版、奇数のものが実験版になる。現在の主流は、2.6系が多い。
ディストリビューション)
wiki : http://bit.ly/MpEdOI に比較がある。ディストリビューションによって、使えるツール環境やGUI(グラフィック・ユーザインターフェース)に違いがある。Desktopで有名なのは、Ubuntu (ウブントゥ)であるが、今回はサーバなので、商用で使われる一番メジャーなDistributionである、Red Hat Linuxの無料版CentOS(セント・オーエス)を用いることにする。2012/12月において、この最新安定版は、Kernel 2.6.32ベースの CentOS 6.3である。
(目次に戻る)
(目次に戻る)
CentOS 6.3 の画面スクリーンショット)
サーバ用といっても、立派なGUIと環境を備えている。おまけに、Macやwindowsと比べてかなり安定しているし、カスタマイズがしやすい。
CentOS 6.3 (Linux 2.6.32-276.el6.x86_64)
GNOME 2.28.2
である。
CentOS 6.3のGUI画面 |
CentOS 6.3 x64 isoイメージの取得)
ダウンロード: http://matome.naver.jp/odai/2134702905977575401 などに情報あり。
から、
の2つをダウンロード。ファイル名 サイズ 日付
CentOS-6.3-x86_64-bin-DVD1.iso 4.0 GB 7/6/12 12:00:00 AM
CentOS-6.3-x86_64-bin-DVD2.iso 1.4 GB 7/6/12 12:00:00 AM
上記にあるRikenのミラーから取得すると、40Mbps位でているCableのinternetで早朝4時頃に作業したところ、30分くらいでダウンロードされる。ダウンロードする時間や自身のエリアにあわせてミラーサイトを切り替えると良いと思う。
(Pemtium 4では) Core2よりも前の世代のx86プロセッサでは、64bit OSは走らないので、x86_64 の部分がi386 となっている32bit版のイメージをダウンロードする必要がある。
(目次に戻る)
CentOSのインストールDVDの作成)
ISOイメージを (CD|DVD) に焼く
http://blog.thingslabo.com/archives/000009.html の (Mac OS X) を参照して行った。以下の手順。
CentOS 5.5 を USBからインストールというのもある。
CentOSのインストールと初期設定)
インストールは言語設定を日本語にして行うことができる。
Hard Diskのフォーマット)
LinuxではXFS, ext4など様々なdiskフォーマットが選べる。今回は、実績のあるext4を選択した。
- Keyboad: LayoutにあるLayout optionsからCapslockとControl keyのswapなど:
メニューバーの システム→設定→キーボード→レイアウトタブ にある、「レイアウトのオプション」ボタン から設定できる。
-「Ctrlキーの位置」で、Caps LockとCtrlの位置を入れ替えた。
- MacのAlt-V(ペースト)などのキー操作がCtrl-Vとして認識されるように「Alt/Winキーの動作」でAlt(MacでのCommand key)をCtrlに2重マップした。 - Input Method: 日本語入力IMEとしての、Anthyの選択や、かな漢字変換mode on/offのキーの選択。(私は、どのマシンでもCtrl-Jを使っている):
メニューバーの システム→設定→入力メソッドから
- IMを有効
- IBusの設定から、切り替えに、Ctrl+Jを追加
(目次に戻る)
rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
をやる。ここにあるような、Riken サイトへの変更をしなくてもYumは使える。
逆に32bit版CentOSの時には、この設定では使えない。
逆に32bit版CentOSの時には、この設定では使えない。
nkfのinstall: yum -y install nkf
Yumを用いてinstallしたソフトウェアとOSを以下のように更新できる。
# yum update
(目次に戻る)
Daemonの設定)
参考リンク) http://www.aboutlinux.info/2006/04/enabling-and-disabling-services-during_01.html
を参照。起動されるdaemonのことは、サービスとも言われる。
[root@Linux01 apcupsd]# chkconfig apcupsd --add
[root@Linux01 apcupsd]# chkconfig apcupsd on
[root@Linux01 apcupsd]# chkconfig --list apcupsd
apcupsd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Daemonが起動時に立ち上がってなければ、以下のようになるし。
[root@Linux01 apcupsd]# service apcupsd restartShutting down UPS monitoring: [失敗]
Starting UPS monitoring: [ OK ]
起動時に立ち上がってれば以下のようになる。
[root@Linux01 apcupsd]# service apcupsd restart
Shutting down UPS monitoring: [ OK ]
Starting UPS monitoring: [ OK ]
chkconfig --list で、Run levelごとに立ち上がるサービスの一覧が表示される。
PC起動時のランレベルは、
/etc/inittab にかかれている。デフォルトでは以下のように5になっている。
# 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:5:initdefault:
Automountの設定)
参考リンク)
autofsを使ってsambaを自動マウント 3月 11th, 2008 Leave a comment | Trackback
http://ambiesoft.ddo.jp/blog/archives/120 の手法をつかう。すなわち、
/etc/auto.masterを編集以下の行を追加
さらに、chmod 755 /etc/auto.smb
/mnt /etc/auto.smbrootで mkdir /mntしてchmod 777 /mnt
さらに、chmod 755 /etc/auto.smb
/etc/init.d/autofs restart は、CentOSの場合、serviceコマンドを使って、
# service autofs start
sftp,scpの使い方: http://watermans-linuxtips.blogspot.com/2008/09/sftp.html
ただし、NECのAtermのDNSはnslookupに答えないので、マウントには装置名ではなく、ipadress指定が必要になる。このipアドレスを調べるのが実は大変面倒である。
たとえば、IO DataのLandiskはlandisk-01として、BBrouterに名前を与えてあるので、cd /mnt/landisk-01 とやると、NASのファイルが見える。それでは面倒なので、/home/importというdirectoryを作り、そこから /mnt/landisk-01にシンボリックリンクをはることで、どういうsambaのマウントポイントがあるのかわかりやすくした。
(目次に戻る)
samba serverの有効化)
参考リンク)
pdbeditの使い方: http://www.searchman.info/fedoracore4/sev1070.html
単にpdbeditと打つと、コマンド一覧のヘルプが出る。
# service autofs start
となる。
sftp,scpの使い方: http://watermans-linuxtips.blogspot.com/2008/09/sftp.html
ただし、NECのAtermのDNSはnslookupに答えないので、マウントには装置名ではなく、ipadress指定が必要になる。このipアドレスを調べるのが実は大変面倒である。
たとえば、IO DataのLandiskはlandisk-01として、BBrouterに名前を与えてあるので、cd /mnt/landisk-01 とやると、NASのファイルが見える。それでは面倒なので、/home/importというdirectoryを作り、そこから /mnt/landisk-01にシンボリックリンクをはることで、どういうsambaのマウントポイントがあるのかわかりやすくした。
(目次に戻る)
samba serverの有効化)
参考リンク)
- http://se-suganuma.blogspot.com/2008/05/sambasmbconf.html が一番詳しい。
- http://d.hatena.ne.jp/camellia1977/20120818/1345288125
- http://ameblo.jp/teteig/entry-10191970488.html
- smb.confの書式: http://bit.ly/1fxJWe4 -- コメントは'#'か';' で始まる行。
# /etc/rc.d/init.d/nfs startそこでSambaをインストール。実行したコマンドとスクリプトは以下。
# vi /etc/fstab
# ps -ael |grep nfs
pdbeditの使い方: http://www.searchman.info/fedoracore4/sev1070.html
単にpdbeditと打つと、コマンド一覧のヘルプが出る。
# /etc/rc.d/init.d/nfs stop
# yum -y install samba
# vi /etc/samba/smb.conf
# pdbedit -a samba
new password:
retype new password:
Unix username: samba
NT username:
Account Flags: [U ]
User SID: S-1-5-21-9..........
Primary Group SID: S-1-5-21-987........
Full Name: samba
Home Directory: \\linux01\samba
HomeDir Drive:
Logon Script:
Profile Path: \\linux01\samba\profile
Domain: LINUX01
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: 水, 06 2月 2036 07:06:39 PST
Kickoff time: 水, 06 2月 2036 07:06:39 PST
Password last set: 金, 23 11月 2012 07:31:57 PST
Password can change: 金, 23 11月 2012 07:31:57 PST
Password must change: never
Last bad password : 0Bad password count : 0Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
# service smb restart
SMB サービスを停止中: [ OK ]
SMB サービスを起動中: [ OK ]
# vi /etc/sysconfig/iptables
# service iptables restart
iptables: ファイアウォールルールを消去中: [ OK ]
iptables: チェインをポリシー ACCEPT へ設定中nat mangle filt[ OK ] iptables: モジュールを取り外し中: [ OK ]
iptables: ファイアウォールルールを適用中:
Bad argument `RH-Firewall-1-INPUT'Error occurred at line: 33
Try `iptables-restore -h' or 'iptables-restore --help' for more information. [失敗]
# vi /etc/sysconfig/iptables
# service iptables restart
iptables: ファイアウォールルールを消去中: [ OK ]
iptables: チェインをポリシー ACCEPT へ設定中filter [ OK ]
iptables: モジュールを取り外し中: [ OK ]
iptables: ファイアウォールルールを適用中: [ OK ]
iptables: 追加のモジュールを読み込み中:nf_conntrack_ftp nf_conntrack_netbios_ns nf_conntrack_tftp [ OK ]
sambaサーバのテスト方法)
http://www.samba.gr.jp/project/translation/Samba3-HOWTO/install.html にまとめがある。
http://www.ne.jp/asahi/hishidama/home/tech/unix/samba.html#smb.conf
にも設定とテストのやり方のメモがある。
http://d.hatena.ne.jp/language_and_engineering/20110820/p1 にも、まとめがある。
後者を利用してデバッグした。
smbclient -L //192.168.1.65 でマウント名一覧を表示しようとして、passwordをいれると、
3. /etc/samba/smb.confの下の方に、以下のsecurty文があったので、コメントアウトした。
Mac OS-Xにはsmbclientがないので、mount_smbfsを使う。以下に説明がある。
http://apple.stackexchange.com/questions/697/how-can-i-mount-an-smb-share-from-the-command-line
これを使って、ipアドレスでマウントするとpasswordなしでmountできた。
つまり/mntを作って、
mount_smbfs //HOME\;guest@192.168.1.65/share /mnt
でマウントできた。当然ながらリモートでのシンボリックリンクの先は見えない。これらコマンドは、ユーザ権限で実行できる。
マウントできると他のNAS同様に、desktopにアイコンが表示される。
http://centossrv.com/samba.shtml のやりかたで、smb.confを設定し、名前解決をするnmbを起動。
ないしは、Marveriks等では https://support.apple.com/ja-jp/HT5884 のやり方で接続できる、FinderのGo(移動) > Connect to Server (サーバへの接続) から、smb://< ホスト名 or IP address >でよい。
Marveriksからは、SMB2, AFPの順になり、SMBは使わないので、接続元がOS--X 以外の場合には問題がでることもあるらしい。http://news.mynavi.jp/column/osxhack/110/ にある
あとは、http://useyourloaf.com/blog/2011/01/24/using-the-mac-os-x-automounter.html
にしたがい、MacのAutomounterを設定すれば、/Volumesにmountされるのか。。
ないしは、smbがbroadcastしていないのだろうか。。
sambaの名前解決?)
http://bit.ly/1fxzvXO をみて対策した。
1. smb.confの[global] sectionで、name resolve orderにhostsを追加し、wins proxyとdns proxyの設定をyesに変えた。が、まだMacはautomountしない。
< name resolve order = wins lmhosts hosts bcast
---
> name resolve order = wins lmhosts bcast
85,86c82
< wins proxy = yes
< dns proxy = yes
---
> dns proxy = no
2. linuxの名前解決 上記1でlmhostsがあるし、/etc/resolv.confに、DNSとしてBBrouter 192.168.1.254が指定してあるので、sambaも名前解決できるはずである。
Macやlocal マシンから dig [マシンの’IPアドレス] をいれてみたが、逆引きできていない。大丈夫なのだろうか。。
3. /etc/samba/lmhosts に、以下を追加してsmbをリスタートしてみたが変わらない。
192.168.1.65 linux02
4. 少なくともMacからでもLinuxからでも、以下のようにnslookupで自マシン名が見つかるし、Macのファインダでremote desktop接続が表示されssh/tftpも動くので、Linuxとしての名前解決は問題はなそうである。
https://engineering.purdue.edu/ECN/Support/KB/Docs/MacOSXConnectingToSMB
に従い以下の手順で行った。
とりあえずこちらもやってみた。
1. smb.confの[global] sectionにwins serverのIPとしてBBrouterを設定。
wins server = 192.165.1.254
(目次に戻る)
Grubの再インストール)
停電でいきなり電源が落ちると、Linuxが立ち上がらなくなる。これは、以下の理由であった。
iptables(firewall)の設定
参考リンク)
sshdの設定、port番号を変更してport scan 対策
ping, tracerouteはSPAMやwormや踏み台になり危険なのでoffにした。
ssh: http://www.obenri.com/_ntp_sshserver/sshdconfig501.html
http://d.hatena.ne.jp/midori_kasugano/20100125/1264426486
などに解説がある。
設定して、 service sshd restart でdaemonを起動。
デフォルトのポート22だと、怪しいサイトが激しくポートスキャンしてくる。
不正アクセスはファイアウォール iptables がはき出す、/var/log/secureを見れば分かる。
対策として、
/etc/ssh/sshd_config を編集し以下を入れる。最初、このX11DisplayOffsetが入っていなくて動かなかった。
(目次に戻る)
ftpの有効化
関連リンク:
http://centossrv.com/vsftpd.shtml
設定法: http://www.aconus.com/~oyaji/ftp/vsftpd_rpm.htm (ユーザ限定、passiveなしで)
設定法にしたがって証明書をmakeしておくこと。
再起動: http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-ja-4/s1-ftp-vsftpd-start.html
passiveだとlsが利かないが、passiveにしなくても普通に動いた。入力のcompletionも利く。
vsftp.confとuser_list をbackupしておく。
外部からのアクセスに成功(以下)
miniDNSとDiCEを用いたDDNS化
Dynamic DNS (以下DDNS) を用いて、プロバイダからDHCPで提供され動的に変化するIPアドレスにたいして、ドメイン名を与えて、固定ドメイン名でアクセスできるようにする。
DDNSには無料のminiDNS http://www.minidns.net/index.php を利用した。が、2013年末時点では、ここは新規受付を終了し、従来サービスもそのうち終了とのことである。理由は、迷惑メイル業者の踏み台にされるから(以下スクリーンショット)とのことであり、スパムにも困ったものである。
CentOSへのDiCEの登録法はココに出ている: http://centos.server-manual.com/centos5_dice.html
ここにあるsetarchコマンドの意味は、http://ufuso.seesaa.net/article/139985477.html に出ている。
http://www.iwate-oss.net/modules/pico/index.php?content_id=35 を参考にinit.dを作った。
/etc/init.d/diced start で起動する。コードは以下のとおり。exec-shieldが効かないようにして起動するということらしい。
DiCEへの登録法を見た。自動登録では上手くいかないので外部スクリプト利用に変え、http://checkip.dyndns.org/ でテストするようにした。これで、IPアドレス取得実験も成功。
http://fedora.eek.jp/fed3dice2.htm もDiCEコマンドのオプションの紹介がある。
今後)
DDNSはスパムの踏み台になるので、今後サポートされなくなる方向だと思う。かといって、CableやADSLでは、IPv4が枯渇しているので、Static IPのサービスはなくDHCPが主流。対応法をいろいろ考えた。今後詳細に解説する。
mdadmを用いたsoftware RAID化(RAID1)
RAIDパーティションの作り方 (うろ覚え))
ツールでRAIDを作成: http://itneko.blogspot.com/2012/08/centos6-raid1.html
スペアパーティションとは http://www.obenri.com/_raid_create/repair_mdadm.html
2.5Tを共有するので今回は使わない。
http://www.obenri.com/_raid_create/create_mdadm.html のやり方で作る。
cat /proc/partitions で確認。
-l1 : Raid1
-n2: partition 2
パーティションを並べる
mdadm -C /dev/md0 -l1 -n2 /dev/
コマンドは直ぐに終わるがディスクユーティリティでみて再構築中になっているように、RAID1の再構築になる。
cat /proc/mdstat を見て状況を判断する。4TBのHDD 2個では、7%終わったところで、あと463分かかると言われているので、トータルで498分=8.3時間かかる。。
2015/3/23記載)
Seagateの1.5TB HDDが壊れていて縮退運転になっていた。そこで、4TBのWDのHDDを2つ(一つはRed、一つはGreenにして同時故障を避けた.. MTBFがかなり違うはずだしロットも違うはず)。
壊れていないHDDをDVD-Rにつなぎ、新たなHDDを入れてbootすると/dev/sdbと/dev/sddに4TBのドライブができた。GRUBにすると性能が落ちると言われるので、partition無しにして双方をext4でformat。
mdadm -C /dev/md1 -l1 -n2 /dev/sdb /dev/sdd で、software RAIDが/dev/md1にできる。従来は/dev/md0が消えて、md127になっているが、一応md1にしておく。
resyncが終わったら、
http://www.obenri.com/_raid_create/mount_raid.html でext4のfsを作って、fstabを変更してmount
fs作るのにちょっと待つ。慌てていじくり回すと壊れる。
fstabの設定法: http://unixlife.jp/unixlife/linux/sys-fstab.jsp
それでsmb mountできるようにする。
RAIDの復旧)
記憶デバイスの状況)
Boot Drive : SSD Corsair Force 3 SSD 60GB /dev/sdb Ext4 (ver1.0)
/dev/sdb1 LVM2
RAID用
1. ST31500341AS 1.5TB /dev/sda1
2. WD25EZRX-00AZ680 2.5TB /dev/sdc1
アプリケーション-> システムツール-> ディスクユーティリティでみると、以下のようなエラーが出ている。
RAIDの設定法は後日書く。
設定後の状態は、 RAID Array: 1.5TB RAID1 /dev/mdl27
同上のディスクユーティリティで見ると以下のようになっている。
上記メニューからファイルシステムをチェックでfsckを掛ける。エラー無し。
マウント)
suして、rootになり /etc/fstab を編集。
もともとRAIDのdevice名は/dev/md0だったが、なぜかcrashで/dev/md127になったので、以下の行を追加。
(目次に戻る)
apacheによるwebサーバ化
squidによるproxyサーバ化
sendmailのインストールと障害情報メイルの転送
http://www.samba.gr.jp/project/translation/Samba3-HOWTO/install.html にまとめがある。
http://www.ne.jp/asahi/hishidama/home/tech/unix/samba.html#smb.conf
にも設定とテストのやり方のメモがある。
http://d.hatena.ne.jp/language_and_engineering/20110820/p1 にも、まとめがある。
後者を利用してデバッグした。
smbclient -L //192.168.1.65 でマウント名一覧を表示しようとして、passwordをいれると、
Server requested LANMAN password (share-level security) but 'client lanman auth' is disabled
というエラーになる。
/etc/samba/smb.confを修正して
[global] sectionに
client lanman auth = Yes
を書き込めば治ったが、その前に以下の3つをやった。これにより、local server上でも、Macからでも、passwordに対して Control-D ないしはそのままreturnでも、機能する。すなわちpasswordなしでも動くらしいことを確認。
1. smbclientを実行すると、ログインユーザで実行されるので、
pdbedit -a hoge で、ログインユーザを作成した。-U <ユーザ名> でユーザ名を指定してもよいが。。また、guestというuserも作成した。pdbeditでは、パスワードもログインユーザと同じものをつけた。
2. そのユーザのドメインがsmb.confにかかれているドメイン HOMEと食い違うので、以下のコマンドで合わせた。
pdbedit -u hoge --domain=HOMEルータのfirewallは開けてないので、MiniDNSのドメインからはアクセスできない。
3. /etc/samba/smb.confの下の方に、以下のsecurty文があったので、コメントアウトした。
# ----------------------- Standalone Server Options --------------Mac側でのテスト)
#
# Scurity can be set to user, share(deprecated) or server(deprecated)
(コメント略)
; security = user
; passdb backend = tdbsam
Mac OS-Xにはsmbclientがないので、mount_smbfsを使う。以下に説明がある。
http://apple.stackexchange.com/questions/697/how-can-i-mount-an-smb-share-from-the-command-line
これを使って、ipアドレスでマウントするとpasswordなしでmountできた。
つまり/mntを作って、
mount_smbfs //HOME\;guest@192.168.1.65/home /mnt/shareなら以下のようになる
mount_smbfs //HOME\;guest@192.168.1.65/share /mnt
でマウントできた。当然ながらリモートでのシンボリックリンクの先は見えない。これらコマンドは、ユーザ権限で実行できる。
マウントできると他のNAS同様に、desktopにアイコンが表示される。
http://centossrv.com/samba.shtml のやりかたで、smb.confを設定し、名前解決をするnmbを起動。
ないしは、Marveriks等では https://support.apple.com/ja-jp/HT5884 のやり方で接続できる、FinderのGo(移動) > Connect to Server (サーバへの接続) から、smb://<
あとは、http://useyourloaf.com/blog/2011/01/24/using-the-mac-os-x-automounter.html
にしたがい、MacのAutomounterを設定すれば、/Volumesにmountされるのか。。
ないしは、smbがbroadcastしていないのだろうか。。
sambaの名前解決?)
http://bit.ly/1fxzvXO をみて対策した。
1. smb.confの[global] sectionで、name resolve orderにhostsを追加し、wins proxyとdns proxyの設定をyesに変えた。が、まだMacはautomountしない。
< name resolve order = wins lmhosts hosts bcast
---
> name resolve order = wins lmhosts bcast
85,86c82
< wins proxy = yes
< dns proxy = yes
---
> dns proxy = no
2. linuxの名前解決 上記1でlmhostsがあるし、/etc/resolv.confに、DNSとしてBBrouter 192.168.1.254が指定してあるので、sambaも名前解決できるはずである。
Macやlocal マシンから dig [マシンの’IPアドレス] をいれてみたが、逆引きできていない。大丈夫なのだろうか。。
3. /etc/samba/lmhosts に、以下を追加してsmbをリスタートしてみたが変わらない。
192.168.1.65 linux02
4. 少なくともMacからでもLinuxからでも、以下のようにnslookupで自マシン名が見つかるし、Macのファインダでremote desktop接続が表示されssh/tftpも動くので、Linuxとしての名前解決は問題はなそうである。
$ nslookup linux02MacのFinderで設定して上手くいった)
Server: 192.168.1.254
Address: 192.168.1.254#53
Name: linux02.gateway.2wire.net
Address: 192.168.1.65
https://engineering.purdue.edu/ECN/Support/KB/Docs/MacOSXConnectingToSMB
に従い以下の手順で行った。
- FinerのMenuバーにある、Go->Connect to Serverから、smb://linux02 を指定する。
- 2つあるマウントポイントのうちhomeを指定
- user指定かguestか聞いてくるのでguestにしてpasswordなし
- すると、Sharedとして、linux02のsambaが表示されるようになった。Macをrebootしたらどうなるのかは知らないが。。
とりあえずこちらもやってみた。
1. smb.confの[global] sectionにwins serverのIPとしてBBrouterを設定。
wins server = 192.165.1.254
2. 以下では名前解決しない。ひょっとして、自マシンがwins serverかとも思い、以下のように -U 192.168.1.65に変えてもダメ。smb.confの該当行を変えてもダメ。
$ nmblookup -U 192.164.1.65 -R 'linux02'3. うまくいかないので、smb.confにある、以下の行をコメントアウトした。
(略)
querying linux02 on 192.164.1.65
name_query failed to find name linux02
; wins server = 192.165.1.254 # BBrouter
; wins server = 192.165.1.65
; wins support = yes
; wins proxy = yes
Grubの再インストール)
停電でいきなり電源が落ちると、Linuxが立ち上がらなくなる。これは、以下の理由であった。
- 以下写真(BIOSのブートデバイス選択メニュー)のように、/bootがあるSSDがCh3 Masterであり、BIOSはCh2 Slaveを先に立ち上げようとして、MBR (Master Boot Record)が見つからず、CD ROMから立ち上げるよう、プロンプトを出していた。この状態でも、電源投入時にESCを打ち込んで、BIOSのブートデバイス選択メニューからCh3 Mを選択すれば起動する。
- 上記1をMBRが壊れたと勘違いし、Grubを設定し、逆にMBRを壊してしまった。その修正法は後述する。
BIOSのブートデバイス選択メニュー |
Grubの使い方)
- DVD-Rか上記のboot menuからlinuxを修復コマンドで立ち上げる。
DVD-Rから立ち上げた場合には、http://wiki.centos.org/TipsAndTricks/ReinstallGRUBに解説があるように、chrootが必要 - /boot/grub/grub.conf に、/boot/vmlinuxの場所が正しく記載されているか確認する。通常は壊れていないはず。
- こわれていて書き直すときには、/bootはroマウントされているので、mount コマンドでデバイス名を調べ、mount -o remount,rw /dev/sdb1 等のようにrwマウントし直す。
- http://d.hatena.ne.jp/silenvx/20120725/1343169224 にあるように、grubをインタラクティブで立ち上げて、find /boot/grub/grub.conf を実行。すると、(hd1,0)にこれがあることがわかる。ここは、/dev/sdb に相当するSSD (ch3 Master)。以後以下のようにコマンドを実行する。
- grub> find /grub/grub.conf
(hd1,0) - grub> root (hd1,0)
- grub> setup (hd1)
- grub> reboot ... これは上手くいかないので、shに戻って、sync;sync; init
iptables(firewall)の設定
参考リンク)
- iptables (firewall)の設定: http://www.turbolinux.co.jp/products/server/11s/user_guide/x9487.html
- iptablesのlogging設定: http://gr8idea.info/os/tutorials/security/iptables5.html
- iptablesの設定:http://www.nina.jp/server/redhat/iptables/iptables.html
- http://www.lifehacker.jp/2011/02/110217nevernote.html
[root@Linux01 ~]# vi /etc/sysconfig/iptables(目次に戻る)
[root@Linux01 ~]# service smb restartSMB サービスを停止中: [ OK ] SMB サービスを起動中: [ OK ][root@Linux01 ~]# service iptables restart
iptables: ファイアウォールルールを消去中: [ OK ]
iptables: チェインをポリシー ACCEPT へ設定中filter [ OK ]
iptables: モジュールを取り外し中: [ OK ]
iptables: ファイアウォールルールを適用中: [ OK ]
iptables: 追加のモジュールを読み込み中:nf_conntrack_ftp nf_conntrack_netbios_ns nf_conntrack_tftp [ OK ]
[root@Linux01 ~]#
sshdの設定、port番号を変更してport scan 対策
ping, tracerouteはSPAMやwormや踏み台になり危険なのでoffにした。
ssh: http://www.obenri.com/_ntp_sshserver/sshdconfig501.html
http://d.hatena.ne.jp/midori_kasugano/20100125/1264426486
などに解説がある。
設定して、 service sshd restart でdaemonを起動。
デフォルトのポート22だと、怪しいサイトが激しくポートスキャンしてくる。
たとえば、119.6.245.66 というipアドレス、いろいろなuser名でloginを試みている。その数、1時間の間に444回。
このipアドレスをブラウザでアクセスしてみると、「网络视频监控系统 Network Surveillance System」という中国の会社。こういう輩がいるので、BBrouterのポートを空けるときには慎重に。。
Surveillanceといいつつ、不正ログインを試みている。相変わらず中国のやることは、けしからん。。
不正アクセスはファイアウォール iptables がはき出す、/var/log/secureを見れば分かる。
対策として、
- 分かりにくいパスワードにする
- PGP鍵ペアを用いた認証にする。(つまりPGPの秘密鍵のあるマシンからしかloginできない)
- 標準のポート番号22を、違う番号に変える。
上記1, 2でも安全性は十分だろうが、ポートスキャン(login)を試みられると、余計なネットワーク負荷とCPUパワーを食われるので、上記3の対策をした。同時に冒頭に書いたように不要なポートは閉じた。
sshdで、ポート番号を変更する方法は、
loginする側でのsshの使い方は、ssh --helpで出るが、代表的なものは以下である。
- -p port : ポート番号の指定
- -v : verbose : デバッグ情報等を表示
- -l login_name : 指定したuser名でlogin
X11のforward)
XプロトコルのSSH転送をするためにはあらかじめsshdに以下の設定をしておく必要がある。
/etc/ssh/sshd_config を編集し以下を入れる。最初、このX11DisplayOffsetが入っていなくて動かなかった。を10にすると、DISPLAY変数がlocalhost:10.0 から先に設定される。
Linux側の/etc/sysconfig/iptables に以下の行を入れておかないと、起動したXのアプリへの入力がX11 Client (linux) 側に送られない。
ssh -Y -p <ポート> <ホスト名>
注意)sshd_config とssh_config を間違えて編集して、ssh clientが動かなくなった。
注意)sshd_config とssh_config を間違えて編集して、ssh clientが動かなくなった。
ftpの有効化
関連リンク:
http://centossrv.com/vsftpd.shtml
設定法: http://www.aconus.com/~oyaji/ftp/vsftpd_rpm.htm (ユーザ限定、passiveなしで)
設定法にしたがって証明書をmakeしておくこと。
再起動: http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-ja-4/s1-ftp-vsftpd-start.html
passiveだとlsが利かないが、passiveにしなくても普通に動いた。入力のcompletionも利く。
vsftp.confとuser_list をbackupしておく。
外部からのアクセスに成功(以下)
ftp> get foo.pdf(目次に戻る)
local: foo.pdf remote: foo.pdf
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for foo.pdf (1642685 bytes).
100% |****************************| 1604 KiB 179.41 KiB/s 00:00 ETA
226 Transfer complete.
1642685 bytes received in 00:08 (178.86 KiB/s)
ftp> quit
221 Goodbye.
miniDNSとDiCEを用いたDDNS化
Dynamic DNS (以下DDNS) を用いて、プロバイダからDHCPで提供され動的に変化するIPアドレスにたいして、ドメイン名を与えて、固定ドメイン名でアクセスできるようにする。
DDNSには無料のminiDNS http://www.minidns.net/index.php を利用した。が、2013年末時点では、ここは新規受付を終了し、従来サービスもそのうち終了とのことである。理由は、迷惑メイル業者の踏み台にされるから(以下スクリーンショット)とのことであり、スパムにも困ったものである。
CentOSへのDiCEの登録法はココに出ている: http://centos.server-manual.com/centos5_dice.html
ここにあるsetarchコマンドの意味は、http://ufuso.seesaa.net/article/139985477.html に出ている。
http://www.iwate-oss.net/modules/pico/index.php?content_id=35 を参考にinit.dを作った。
/etc/init.d/diced start で起動する。コードは以下のとおり。exec-shieldが効かないようにして起動するということらしい。
#!/bin/shところが) 2015/9/17に、突全リモートアクセスできなくなった。(顛末は次節にまとめる) 調べたところ、プロバイダのWANアドレスが変わったが、DDNS(Dynamic DNSのminiDNS) に登録されていなかった。まずrebootを試し、dicedも走っていた。dicedをstopしてstartしても登録は変わらなかった。このコードではだめな模様。初期登録はできていたのになにかおかしい。。
#
#chkconfig: 35 99 99 # description: DiCE
#
# diced: /usr/local/bin/DiCE/diced
diced="/usr/local/DiCE/diced"
[ -f "$diced" ] || exit 0
case "$1" in
start)
# Start daemons.
if [ ! -f /var/lock/diced ] ; then
echo "Starting DiCE."
setarch `uname -m` "$diced" -d -l > /dev/null
touch /var/lock/diced
else
echo "DiCE is Already Started."
fi
;;
stop)
# Stop daemons.
echo "Shutting down DiCE."
PID=`/bin/ps -aefw | grep "$diced" | awk '{print $2}'`
if [ ! -z "$PID" ] ; then
/bin/kill ${PID} 1> /dev/null 2>&1
fi
rm -f /var/lock/diced
;;
*)
echo "Usage: /etc/init.d/diced {start|stop}"
exit 1
esac
exit 0
DiCEへの登録法を見た。自動登録では上手くいかないので外部スクリプト利用に変え、http://checkip.dyndns.org/ でテストするようにした。これで、IPアドレス取得実験も成功。
手動でわざと変えておいたminiDNSのアドレスが更新されることを確認した。
ただし、http://centos.server-manual.com/centos5_dice.html の例のように、「IPアドレスが変更されたときのみ or 7日ごと」では、IPアドレスが変わったときにminiDNSに登録に失敗すると、7日はアドレスが登録されなくなる。そこで、:add コマンドでルール2を追加。6時間毎に起動して登録するものもactiveにし、手動で狂わせておいたminiDNSへの登録が6時間後には正しくなっており、remote loginできることを確認した。(2015/9/20 追記)
顛末) 変化したWANアドレスがDDNSに登録されていないと、ブラウザでのアクセスどころか、sshによるremote loginもできない。そこで、skypeを使って家族に頼み、remoteからデバッグすることになる。この流れが、実はさらに話を複雑にした模様。
その他解説)ただし、http://centos.server-manual.com/centos5_dice.html の例のように、「IPアドレスが変更されたときのみ or 7日ごと」では、IPアドレスが変わったときにminiDNSに登録に失敗すると、7日はアドレスが登録されなくなる。そこで、:add コマンドでルール2を追加。6時間毎に起動して登録するものもactiveにし、手動で狂わせておいたminiDNSへの登録が6時間後には正しくなっており、remote loginできることを確認した。(2015/9/20 追記)
顛末) 変化したWANアドレスがDDNSに登録されていないと、ブラウザでのアクセスどころか、sshによるremote loginもできない。そこで、skypeを使って家族に頼み、remoteからデバッグすることになる。この流れが、実はさらに話を複雑にした模様。
- DMZ(BBrouterの穴)の設定がおかしくなったかも知れないので、BBrouter系を再起動。→ やはりwebにもsshでもアクセスできず。
- サーバの電源ボタンを押して、linuxをシャットダウンしてもらい。再起動。→ 変化なし
- 再びBBrouter系を再起動
- serverにloginしてもらい、browserからWANアドレスを確認してもらおうとした。が、そもそもbrowserから外のwebが見えない。
- LANケーブルを確認。どうも、Server->LAN Switchを経由したあと、wallにはいるコネクタが緩んでいた模様。これは、コネクタの上にケーブルが重なり、次第に緩んできたと推測された。→ 修正したが、外からはwebにもsshもできず。
- WANアドレスが変わったと思われ、米国の自宅serverのhomepageを使ってWANアドレスを調べようとしたがアクセス不能。BBrouterに入ろうとしてもダメ。調べてみると、米国サーバをproxyにしていた。これを直して解決。
http://checkip.dyndns.org/ にアクセスすれば、米国サーバがproxyになっていたことは一発で分かったはず。 - WANアドレスがとれたので、webにもsshにもアクセスできるようになった。あとは、sshして不正だった日本のサーバのDiCE設定を修正し、ついでに米国サーバのDiCEも設定変更して、動作確認して終了。
http://fedora.eek.jp/fed3dice2.htm もDiCEコマンドのオプションの紹介がある。
今後)
DDNSはスパムの踏み台になるので、今後サポートされなくなる方向だと思う。かといって、CableやADSLでは、IPv4が枯渇しているので、Static IPのサービスはなくDHCPが主流。対応法をいろいろ考えた。今後詳細に解説する。
- お名前.com を利用する方法:
調べたところ)最安で、登録時は割引、1年目には1000円程度、2年目の更新には2000円程度、... 最後には5000円から1万円と年ごとに更新料が上がる仕組みらしい。ないしはレンタルサーバと併用して値下げしてもらうか... これを使うと、毎年、ドメイン名(サーバのDNS登録)を変えて、費用削減する必要がありそう。他にも格安ドメインサービスはある。
が、ドメイン名を取っても、肝心のWANのIPアドレスが、固定でなければ、DDNS等を用いて紐付けをしないとならない。ドメイン名提供元がDDNSを提供していないのであれば、固定IPアドレスサービス(実はこれが割と高い)を提供しているプロバイダを使う必要がある。だったら、次にあるレンタルサーバを使って、自分でDDNSサービスを作る手もありそう。 - サクラなどのレンタルサーバ。それも一番安いものを利用する方法
- IPv6では、基本的にNATとローカルアドレスへの変換ではなく、全機器にglobl IPアドレスを割り当てるらしいので、DHCPという概念ではなく、全てStatic IPアドレスでの運用になるのかもしれない。
mdadmを用いたsoftware RAID化(RAID1)
RAIDパーティションの作り方 (うろ覚え))
ツールでRAIDを作成: http://itneko.blogspot.com/2012/08/centos6-raid1.html
スペアパーティションとは http://www.obenri.com/_raid_create/repair_mdadm.html
2.5Tを共有するので今回は使わない。
http://www.obenri.com/_raid_create/create_mdadm.html のやり方で作る。
cat /proc/partitions で確認。
-l1 : Raid1
-n2: partition 2
パーティションを並べる
mdadm -C /dev/md0 -l1 -n2 /dev/
コマンドは直ぐに終わるがディスクユーティリティでみて再構築中になっているように、RAID1の再構築になる。
cat /proc/mdstat を見て状況を判断する。4TBのHDD 2個では、7%終わったところで、あと463分かかると言われているので、トータルで498分=8.3時間かかる。。
2015/3/23記載)
Seagateの1.5TB HDDが壊れていて縮退運転になっていた。そこで、4TBのWDのHDDを2つ(一つはRed、一つはGreenにして同時故障を避けた.. MTBFがかなり違うはずだしロットも違うはず)。
壊れていないHDDをDVD-Rにつなぎ、新たなHDDを入れてbootすると/dev/sdbと/dev/sddに4TBのドライブができた。GRUBにすると性能が落ちると言われるので、partition無しにして双方をext4でformat。
mdadm -C /dev/md1 -l1 -n2 /dev/sdb /dev/sdd で、software RAIDが/dev/md1にできる。従来は/dev/md0が消えて、md127になっているが、一応md1にしておく。
resyncが終わったら、
http://www.obenri.com/_raid_create/mount_raid.html でext4のfsを作って、fstabを変更してmount
fs作るのにちょっと待つ。慌てていじくり回すと壊れる。
fstabの設定法: http://unixlife.jp/unixlife/linux/sys-fstab.jsp
それでsmb mountできるようにする。
RAIDの復旧)
記憶デバイスの状況)
Boot Drive : SSD Corsair Force 3 SSD 60GB /dev/sdb Ext4 (ver1.0)
/dev/sdb1 LVM2
RAID用
1. ST31500341AS 1.5TB /dev/sda1
2. WD25EZRX-00AZ680 2.5TB /dev/sdc1
アプリケーション-> システムツール-> ディスクユーティリティでみると、以下のようなエラーが出ている。
RAIDの設定法は後日書く。
設定後の状態は、 RAID Array: 1.5TB RAID1 /dev/mdl27
同上のディスクユーティリティで見ると以下のようになっている。
上記メニューからファイルシステムをチェックでfsckを掛ける。エラー無し。
マウント)
suして、rootになり /etc/fstab を編集。
もともとRAIDのdevice名は/dev/md0だったが、なぜかcrashで/dev/md127になったので、以下の行を追加。
/dev/md127 /share/md0 ext4 defaults 1 2
mount -a を実行してmountで見ると、
/dev/md127 on /share/md0 type ext4 (rw)
となっており、cd /share/md0; ls でファイルが見えた。
/share は、sambaでnas の名前でmountできるようにしてあるので、NASとして利用可能である。
また、sambaでは、他のマシンをmountしたマウント・ポイントをshareとして見せている。(名前が混乱しやすいので、そのうち修正する予定)
apacheによるwebサーバ化
参考リンク)
http://dev.halhal.info/archives/11 この通りにやって完了
上記リンクがなくなった
http://centossrv.com/apache.shtml にしたがう。
つまり、以下あたりをやって、directory設定に合わせておかないとservice httpd restartが失敗する。
servernameは、miniDNSのドメイン名(fooとしておく)を用いて、
www.foo.miniDNS.net と設定しておく。ポートを標準の80番似しておけば、webからはfoo.miniDNS.net でアクセスできる。iptablesとBBrouterには最初に穴を空けておいた。
# /etc/rc.d/init.d/httpd start で起動し、
# chkconfig httpd on で、boot時起動に設定。
/var/www/html/index.html を書き換えてアクセスできることを確認したあと、
sambaにマウントしているRAID1のパーティションにコピーして、ln -s from to でシンボリックリンクしておいた。
.htaccessの設定法: http://coliss.com/articles/build-websites/operation/work/htaccess-for-all-by-sitepoint.html
パスワードをつけるためのcgi:
一覧: http://www.cgi-search.info/search/category120.html
シンプルなもの: http://www.kent-web.com/pwd/login.html
ApacheでのCGIの設定) http://www5.plala.or.jp/vaio0630/apache/apache_cgi.htm
logは、httpd.confのServerRoot で指定したdirectoryからの相対位置に作られる。
CGIが動かない。
-
HDDが壊れmdadmを作りなおした結果、/share/md0/wwwが/share/md1/wwwになった、このため、/etc/httpd/からのwwwへのsymlinkを貼り直し、/etc/httpd/conf/httpd.confの DocumentRoot "/share/md0/www/html" をmd1に書きなおす必要があった。これによりservice httpd restartに成功。
Document rootは、/share/md1/www/html である。
ビデオ配信サーバ化
html埋め込み型の HTMLストリーミング)
.m3u8 拡張子のファイルを使ったビデオストリーミングサーバも設定したが動かない。
参考URL)
配信サーバ)
Apacheをインストールすると、m3u8の拡張子設定がすでに設定されている。
これを本節冒頭参考URLにあげた「設定法」のリンクに従い、以下のように修正。
(/etc/mime.typesに追加)
(/etc/httpd/conf/httpd.confに追加)
Apacheを再起動
x-mpegURL) x-mpegURL というサポートライブラリは、CentOS6.3にはすでに搭載済で、「CentOS x-mpegurl」でググッて見つけたRPMをダウンロードして rpm install でインストールしようとしてコンフリクトでabortした。
Webの記述) htmlは以下の様な記述を入れると、Safariで再生できる。Chromeでは、再生ボタンが押せない。Firefoxでも「この形式はサポートしていない」とエラーメッセージがでる。
どうも、このビデオストリーミングは、Appleの独自仕様らしい。後日、他のやり方を考えたい。
< video
src="http://hogehoge.minidns.net/data/TestVideo.m3u8"
controls autoplay width="640" height="480">
また、mp4などのファイルに比べると、Final Cut Pro X等で生成する時間もかかるし、ファイルサイズも大きい。
パスワード認証)
2は、デフォルトでは、httpd.confで、.htaccessのoverlayを許可していないので動かなかった。設定し直して、Apacheをリスタートしたら動いた。ただし、上記の videoタグにあるように、ビデオデータm3u8へのアクセスはフルパスになる。したがって、このディレクトリにあるリンクへのアクセスを禁止することができない。つまり、パスがわかると、パスワードチェックをスルーしてしまう。
htaccessの設定方法とpassword cryptのためのスクリプトは以下:
http://www.quick-s.net/htaccess.html
この他のhtaccessの使い方は: http://www.quick-s.net/htaccess2.html
こういう問題があるので、videoタグを使った手法は、廃止することにする。
hrefにmp4ファイルを直接書く方法)
こちらは、Google Chromeではアクセス可能。スライドバーや音量、フル画面なども出る。
自宅サーバからのアップリンクが飽和しないよう、レート制御が多分必要。
https://httpd.apache.org/docs/trunk/mod/mod_ratelimit.html とかをinstallすれば良さそう。レートをいくつぐらいにするかは今後調べる。
しかし、Safariでは逆にファイル全部をダウンロードしようとしてしまうらしく、"loading"が表示されたまま固まってしまう。
(目次に戻る)
http://dev.halhal.info/archives/11 この通りにやって完了
上記リンクがなくなった
http://centossrv.com/apache.shtml にしたがう。
つまり、以下あたりをやって、directory設定に合わせておかないとservice httpd restartが失敗する。
[root@centos ~]# vi /etc/httpd/conf/httpd.conf ← httpd設定ファイル編集 #ServerName www.example.com:80 ↓ ServerName centossrv.com:80 ← サーバー名を指定
servernameは、miniDNSのドメイン名(fooとしておく)を用いて、
www.foo.miniDNS.net と設定しておく。ポートを標準の80番似しておけば、webからはfoo.miniDNS.net でアクセスできる。iptablesとBBrouterには最初に穴を空けておいた。
# /etc/rc.d/init.d/httpd start で起動し、
# chkconfig httpd on で、boot時起動に設定。
/var/www/html/index.html を書き換えてアクセスできることを確認したあと、
sambaにマウントしているRAID1のパーティションにコピーして、ln -s from to でシンボリックリンクしておいた。
.htaccessの設定法: http://coliss.com/articles/build-websites/operation/work/htaccess-for-all-by-sitepoint.html
パスワードをつけるためのcgi:
一覧: http://www.cgi-search.info/search/category120.html
シンプルなもの: http://www.kent-web.com/pwd/login.html
ApacheでのCGIの設定) http://www5.plala.or.jp/vaio0630/apache/apache_cgi.htm
logは、httpd.confのServerRoot で指定したdirectoryからの相対位置に作られる。
CGIが動かない。
-
HDDが壊れmdadmを作りなおした結果、/share/md0/wwwが/share/md1/wwwになった、このため、/etc/httpd/からのwwwへのsymlinkを貼り直し、/etc/httpd/conf/httpd.confの DocumentRoot "/share/md0/www/html" をmd1に書きなおす必要があった。これによりservice httpd restartに成功。
Document rootは、/share/md1/www/html である。
ビデオ配信サーバ化
html埋め込み型の HTMLストリーミング)
.m3u8 拡張子のファイルを使ったビデオストリーミングサーバも設定したが動かない。
参考URL)
- 設定法) http://venture-blog.blogspot.com/2012/05/http-live-streaming.html
- http://venture-blog.blogspot.com/2012/05/http-live-streaming.html
- Appleのサイト: http://bit.ly/1a85yyM
- Adobeのサイト: http://adobe.ly/1a85Aqi
配信サーバ)
Apacheをインストールすると、m3u8の拡張子設定がすでに設定されている。
これを本節冒頭参考URLにあげた「設定法」のリンクに従い、以下のように修正。
(/etc/mime.typesに追加)
application/x-mpegURL m3u8 video/MP2T ts |
(/etc/httpd/conf/httpd.confに追加)
AddType application/x-mpegURL .m3u8 AddType video/MP2T .ts |
Apacheを再起動
/etc/init.d/httpd restart |
x-mpegURL) x-mpegURL というサポートライブラリは、CentOS6.3にはすでに搭載済で、「CentOS x-mpegurl」でググッて見つけたRPMをダウンロードして rpm install でインストールしようとしてコンフリクトでabortした。
Webの記述) htmlは以下の様な記述を入れると、Safariで再生できる。Chromeでは、再生ボタンが押せない。Firefoxでも「この形式はサポートしていない」とエラーメッセージがでる。
どうも、このビデオストリーミングは、Appleの独自仕様らしい。後日、他のやり方を考えたい。
< video
src="http://hogehoge.minidns.net/data/TestVideo.m3u8"
controls autoplay width="640" height="480">
また、mp4などのファイルに比べると、Final Cut Pro X等で生成する時間もかかるし、ファイルサイズも大きい。
パスワード認証)
- CGIによるもの
- .htaccessによるもの
2は、デフォルトでは、httpd.confで、.htaccessのoverlayを許可していないので動かなかった。設定し直して、Apacheをリスタートしたら動いた。ただし、上記の videoタグにあるように、ビデオデータm3u8へのアクセスはフルパスになる。したがって、このディレクトリにあるリンクへのアクセスを禁止することができない。つまり、パスがわかると、パスワードチェックをスルーしてしまう。
htaccessの設定方法とpassword cryptのためのスクリプトは以下:
http://www.quick-s.net/htaccess.html
この他のhtaccessの使い方は: http://www.quick-s.net/htaccess2.html
こういう問題があるので、videoタグを使った手法は、廃止することにする。
hrefにmp4ファイルを直接書く方法)
こちらは、Google Chromeではアクセス可能。スライドバーや音量、フル画面なども出る。
自宅サーバからのアップリンクが飽和しないよう、レート制御が多分必要。
https://httpd.apache.org/docs/trunk/mod/mod_ratelimit.html とかをinstallすれば良さそう。レートをいくつぐらいにするかは今後調べる。
しかし、Safariでは逆にファイル全部をダウンロードしようとしてしまうらしく、"loading"が表示されたまま固まってしまう。
(目次に戻る)
squidによるproxyサーバ化
BBrouterには3128の穴を開けた。port scanを避けるため違うポートにしたほうが良いかもしれない。。
Squid: http://centossrv.com/squid.shtml
設定法: http://d.hatena.ne.jp/hidde/20090521/1242883305
詳しい設定法とauthのインストール: http://tech.ckme.co.jp/proxy.shtml
ユーザ認証: http://www.ylw.mmtr.or.jp/~nago/comp/unix/squid-auth.txt
Faq: http://squid.robata.org/faq_19.html
NCSA_AUTH: http://squid.robata.org/faq_19.html
上記”設定法”にしたがい、yum -y install squid で, Squidをインストール。
squid x86_64 7:3.1.10-19.el6_4
であった。
次にhtpasswd -c /etc/squid/passwd ユーザ名
でパスワードを設定。
ncsa_authがない。。http://www.squid-cache.org/Versions/v3/3.4/
からsquidのソースを持ってきて、
http://www.ylw.mmtr.or.jp/~nago/comp/unix/squid-auth.txt にしたがって、
ncsc_authをコンパイル。
helpers/basic_auth/NCSA
helpersにcd ../.. してroot でmake installすると、/usr/local/lib/libexecに実行イメージ basic_ncsa_auth がインストールされる。若干、ディレクトリなどが違うのだが。。
http://squid.robata.org/faq_19.html にしたがい、以下のコマンドでパスワードファイルを作成。
設定法: http://d.hatena.ne.jp/hidde/20090521/1242883305 にしたがい。
# htpasswd -c /usr/local/squid/etc/passwd username
以下のコマンドをタイプし、
# /usr/local/squid/libexec/basic_ncsa_auth /usr/local/squid/etc/passwd
hogehoge passwd
OK
と認証できることを確認。
あとは、「設定法」にしたがいsquid.confを設定。
# service squid start
squid を起動中: . [ OK ]
# chkconfig squid on
(目次に戻る)
Squid: http://centossrv.com/squid.shtml
設定法: http://d.hatena.ne.jp/hidde/20090521/1242883305
詳しい設定法とauthのインストール: http://tech.ckme.co.jp/proxy.shtml
ユーザ認証: http://www.ylw.mmtr.or.jp/~nago/comp/unix/squid-auth.txt
Faq: http://squid.robata.org/faq_19.html
NCSA_AUTH: http://squid.robata.org/faq_19.html
上記”設定法”にしたがい、yum -y install squid で, Squidをインストール。
squid x86_64 7:3.1.10-19.el6_4
であった。
次にhtpasswd -c /etc/squid/passwd ユーザ名
でパスワードを設定。
ncsa_authがない。。http://www.squid-cache.org/Versions/v3/3.4/
からsquidのソースを持ってきて、
http://www.ylw.mmtr.or.jp/~nago/comp/unix/squid-auth.txt にしたがって、
ncsc_authをコンパイル。
helpers/basic_auth/NCSA
にソースがあったので、そこにcd してコンパイル。
helpersにcd ../.. してroot でmake installすると、/usr/local/lib/libexecに実行イメージ basic_ncsa_auth がインストールされる。若干、ディレクトリなどが違うのだが。。
http://squid.robata.org/faq_19.html にしたがい、以下のコマンドでパスワードファイルを作成。
設定法: http://d.hatena.ne.jp/hidde/20090521/1242883305 にしたがい。
# htpasswd -c /usr/local/squid/etc/passwd username
以下のコマンドをタイプし、
# /usr/local/squid/libexec/basic_ncsa_auth /usr/local/squid/etc/passwd
hogehoge passwd
OK
と認証できることを確認。
あとは、「設定法」にしたがいsquid.confを設定。
# service squid start
squid を起動中: . [ OK ]
# chkconfig squid on
でsquidが起動された。
/etc/sysconfig/iptables を修正しiptablesに穴をあけて、 /var/log/sequreのログを調べてアクセスできているか確認。
当然ながら、HTTP, HTTPS, SOCKS, FTPの全てに対してproxyを効かさないと、上手く表示できないページがある。loginを表示し、設定したpasswordを入力。
職場からproxyをここに設定して、アクセス元ipアドレスチェックのcgiでアクセス元がproxyのipアドレスになっているかを確認し、Proxyが効いていることを確認した。
/etc/sysconfig/iptables を修正しiptablesに穴をあけて、 /var/log/sequreのログを調べてアクセスできているか確認。
当然ながら、HTTP, HTTPS, SOCKS, FTPの全てに対してproxyを効かさないと、上手く表示できないページがある。loginを表示し、設定したpasswordを入力。
(目次に戻る)
sendmailのインストールと障害情報メイルの転送
# yum install sendmail
# chkconfig sendmail on
# service sendmail start
- Edit /etc/aliases and setup and alias for root, perferably an in internal and external user ex.
root: local_user,gmail_user@gmail.com
これだけでは、上手くいかない。sendmail.cfを設定する必要がある。以下に紹介がある。http://dev.halhal.info/archives/11
(目次に戻る)
Netに繋がらなくなった
システムが落ちなくなったので、強制シャットダウンしたところ、linuxの中からも、外からもネットワークにつながらなくなった。オンボードのeth0のネットワークカードが壊れたらしく、PCIeのネットワークカードを追加したら直った。
が、壊れているeth0があると邪魔であるし、iptables, smb.conf等のeth0の記述をeth1に書き換えないとならなくて面倒なので、eth0をoffにして、追加したデバイスをeth0とすることにした。
これは、BIOSからonboardのEthernetインターフェースを無効化すれば完了。iptablesの設定は、eth0に対してやられているので、これで変更は不要。
一応、centOSのシステムツールのnetworkの設定で使わないeth1のドライバを外したが、これが有効だったのかは不明。(これが入っていると、LAN cableが繋がっているときにbootが途中でハングっていた可能性もある。LANケーブルを抜かないとbootしなかった。)
DMZ( 【 DeMilitarized Zone 】 非武装地帯 / 非武装セグメント http://e-words.jp/w/DMZ.html ) を設定してSambaを有効化する方法)
以下は上手くいかなかったやり方)
eth1でなくeth0にする方法)
http://yamavar.wordpress.com/2011/10/11/ude/ に説明がある。/etc/sysconficg/network-scripts/ifcfg-eth0 とifcfg-eth1 と言うファイルを作成。壊れていたeth0をeth1に移し、ついでにonbootをoffにした。
さらに、/etc/udev/rules.d/70-persistent-net.rules を何か別な名前にrenameしてrebootすれば良いようである。
IPアドレス固定割り付けで問題)
古いipアドレスのDHCP固定割り付けをoffにして、しばらくしたら、新しいMac Addressのほうに古いホスト名が割り着いた。このIPアドレスを smb.confに設定し、linuxをrebootしたら、sambaで繋がるようになった。
また、miniDNSへもマシンのglobal ipアドレスは正しく伝わっている。
だが、依然、次の2つがおかしい。。
DHCPが固定割り付けでも自動割り付けでもなく、Static割り付けになっている。
DMZは相変わらず剥こう。
やはり内部的には、古いMacアドレスで認識しており、なんらかの不具合がおきている模様。AT&Tのルータであるし、米国ではどうせ聞いても詳しい人などいないので、対策は、多分、ひとつしかない。
linuxのホスト名をつけ替えて、設定を全部やりなおすのだろう。。今後試す。
Netに繋がらなくなった
システムが落ちなくなったので、強制シャットダウンしたところ、linuxの中からも、外からもネットワークにつながらなくなった。オンボードのeth0のネットワークカードが壊れたらしく、PCIeのネットワークカードを追加したら直った。
が、壊れているeth0があると邪魔であるし、iptables, smb.conf等のeth0の記述をeth1に書き換えないとならなくて面倒なので、eth0をoffにして、追加したデバイスをeth0とすることにした。
これは、BIOSからonboardのEthernetインターフェースを無効化すれば完了。iptablesの設定は、eth0に対してやられているので、これで変更は不要。
一応、centOSのシステムツールのnetworkの設定で使わないeth1のドライバを外したが、これが有効だったのかは不明。(これが入っていると、LAN cableが繋がっているときにbootが途中でハングっていた可能性もある。LANケーブルを抜かないとbootしなかった。)
DMZ( 【 DeMilitarized Zone 】 非武装地帯 / 非武装セグメント http://e-words.jp/w/DMZ.html ) を設定してSambaを有効化する方法)
- BBrouterのリース期限(デフォルト24時間)を1時間にする
- host名を新しくする:DHCP Client設定: http://red.ht/1n4PL6e や
http://d.hatena.ne.jp/WhatAmILookingFor/20110828/1314542775 参照 - Linuxを落とす
- しばらくして立ち上げると、BBrouterのDHCPが、新しいHost名でIPアドレスを割り付けているので、これを固定割り付けにする
- BBrouterのDMZの設定に行き、古いマシンに割り付けたDMZを開放する。(1つのポートは、一つのマシンにしかDMZは割り付けられない)
- 新しいホスト名に、DMZのポートを設定していく。
- /etc/samba/smb.confはipアドレスが直に指定されているので、これを、BBrouterが新たに割り付けたipアドレスに直す。
- BBrouterのリース期間をデフォルトに戻す。
- pdbedit -a samba でuser sambaを再設定
- service smb restart する。これでsambaも復活
以上で、httpd, samba, squidが完全に復活した。
eth1でなくeth0にする方法)
http://yamavar.wordpress.com/2011/10/11/ude/ に説明がある。/etc/sysconficg/network-scripts/ifcfg-eth0 とifcfg-eth1 と言うファイルを作成。壊れていたeth0をeth1に移し、ついでにonbootをoffにした。
さらに、/etc/udev/rules.d/70-persistent-net.rules を何か別な名前にrenameしてrebootすれば良いようである。
IPアドレス固定割り付けで問題)
自宅外から、Linuxサーバに繋ぐためのDMZの設定は、ホスト名(ipアドレス)で行われる。また、Sambaの設定もipアドレスに対して行われる。。
ipアドレスの割り付けはBBrouter (自宅の場合はAT&T UverseのBBrouter)のDHCPが行う。
ところが、このDHCPは、Macアドレスに対してipアドレスを固定割り付けしており、このMacアドレスをつけかえる機能がない。。。
一方で、違うMacアドレスのデバイスが、同じホスト名で接続要求をするので、DHCPリストの表示も狂っている。いろいろやり方が考えられるが、ホスト名をつけかえて、新たなipアドレスで設定しなおすのが良さそうである。他の方法は、
- BBrouterをfactory resetして、Linuxサーバだけを繋ぎ、空いている今までのipアドレスに対して固定割り付けにする。この場合にも、DMZの再設定は必要。
- AT&Tのカスタマーサポートに連絡する(話が通じず、無駄手間になる可能性が極めて高い)
古いipアドレスのDHCP固定割り付けをoffにして、しばらくしたら、新しいMac Addressのほうに古いホスト名が割り着いた。このIPアドレスを smb.confに設定し、linuxをrebootしたら、sambaで繋がるようになった。
また、miniDNSへもマシンのglobal ipアドレスは正しく伝わっている。
だが、依然、次の2つがおかしい。。
DHCPが固定割り付けでも自動割り付けでもなく、Static割り付けになっている。
DMZは相変わらず剥こう。
やはり内部的には、古いMacアドレスで認識しており、なんらかの不具合がおきている模様。AT&Tのルータであるし、米国ではどうせ聞いても詳しい人などいないので、対策は、多分、ひとつしかない。
linuxのホスト名をつけ替えて、設定を全部やりなおすのだろう。。今後試す。
(目次に戻る)
yumの修正とCentOS 6.6へ
6. yumの有効化 で参照した、
http://ftp.riken.jp/Linux/caos/centos/ が
http://ftp.riken.jp/Linux/centos/ に変わっていて、ここにRPM-GPG-KEY-CentOS-6がある。
# rpm --import http:://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
エラー: http:://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6: インポート読み込みに失敗しました(2)。
となるので、
# wget http://ftp.riken.jp/Linux/centos/RPM-GPG-KEY-CentOS-6
2015-03-23 15:58:26 (267 MB/s) - `RPM-GPG-KEY-CentOS-6' へ保存完了 [1706/1706]
と成功して、
# rpm --import ./RPM-GPG-KEY-CentOS-6
が成功するが、yum updateはepelのためにエラーになる..(以下)
# yum update
読み込んだプラグイン:fastestmirror, refresh-packagekit, security
更新処理の設定をしています
Loading mirror speeds from cached hostfile
エラー: Cannot retrieve metalink for repository: epel. Please verify its path and try again
#
https://community.hpcloud.com/article/centos-63-instance-giving-cannot-retrieve-metalink-repository-epel-error のやり方で直った。
すなわち、/etc/yum.repos.d/epel.repo の httpsを全てhttpに書き直せば良い。
とりあえず、/etc/yum.repos.d/dropbox.repo
rsyncとcronを用いた自動バックアップ
/root/scriptsに、nasbackup.sh, bkup_cron.shという2つのコマンドを作った。/etc/crontabを修正してbkup_cron.shを定期的に呼ぶことで、nasbackup.shから呼ばれるrsyncコマンドが、重要なファイルだけをnasないしはRAIDパーティションにバックアップをする。
crontabの書き方, cronの使い方: http://www.server-memo.net/tips/crontab.html
nasbackup.sh
yumの修正とCentOS 6.6へ
6. yumの有効化 で参照した、
http://ftp.riken.jp/Linux/caos/centos/ が
http://ftp.riken.jp/Linux/centos/ に変わっていて、ここにRPM-GPG-KEY-CentOS-6がある。
# rpm --import http:://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
エラー: http:://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6: インポート読み込みに失敗しました(2)。
となるので、
# wget http://ftp.riken.jp/Linux/centos/RPM-GPG-KEY-CentOS-6
2015-03-23 15:58:26 (267 MB/s) - `RPM-GPG-KEY-CentOS-6' へ保存完了 [1706/1706]
# rpm --import ./RPM-GPG-KEY-CentOS-6
が成功するが、yum updateはepelのためにエラーになる..(以下)
# yum update
読み込んだプラグイン:fastestmirror, refresh-packagekit, security
更新処理の設定をしています
Loading mirror speeds from cached hostfile
エラー: Cannot retrieve metalink for repository: epel. Please verify its path and try again
#
https://community.hpcloud.com/article/centos-63-instance-giving-cannot-retrieve-metalink-repository-epel-error のやり方で直った。
すなわち、/etc/yum.repos.d/epel.repo の httpsを全てhttpに書き直せば良い。
# yum -y update読み込んだプラグイン:fastestmirror, refresh-packagekit, security更新処理の設定をしていますLoading mirror speeds from cached hostfileepel/metalink | 15 kB 00:00 * epel: linux.mirrors.es.net * ius: mirror.symnds.com * remi: mirror.cedia.org.echttp://linux.dropbox.com/fedora/6/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"他のミラーを試します。エラー: Cannot retrieve repository metadata (repomd.xml) for repository: Dropbox. Please verify its path and try again#となり、dropboxのrepoがエラー。
とりあえず、/etc/yum.repos.d/dropbox.repo
を他の場所に移動させ、yum -y update を実行。
google-chrome/filelists | 1.7 kB 00:00http://dl.google.com/linux/chrome/rpm/stable/x86_64/repodata/filelists.xml.gz: [Errno -1] Metadata file does not match checksum他のミラーを試します。エラー: failure: repodata/filelists.xml.gz from google-chrome: [Errno 256] No more mirrors to try.#
と、今度はchromeのupdateで失敗するので、/etc/yum.repos.d/google-chrome.repo も移動..
するとyumは1GBのダウンロードまで行きそこでエラー。
CentOS6.6 : Linux 2.6.32_504.12.2_el6.x86_64
(目次に戻る)
するとyumは1GBのダウンロードまで行きそこでエラー。
トランザクションの要約http://mirror.centos.org/centos/6/os/x86_64/Packages/ をブラウザでアクセスすると、gnutls-devel-2.8.5-14.el6_5.x86_64.rpm は存在する。mirrorないしはnet (videoをみていたし...) 側が重たかったようで、しばらく経ってから試したら、成功した。1773個のパッケージが更新された。
================================================================================
インストール 55 パッケージ
アップグレード 856 パッケージ
総ダウンロード容量: 1.0 G
パッケージをダウンロードしています:
http://mirror.centos.org/centos/6/os/x86_64/Packages/gnutls-devel-2.8.5-14.el6_5.x86_64.rpm: [Errno 12] Timeout on http://mirror.centos.org/centos/6/os/x86_64/Packages/gnutls-devel-2.8.5-14.el6_5.x86_64.rpm: (28, 'Operation too slow. Less than 1 bytes/sec transfered the last 30 seconds')
他のミラーを試します。
パッケージのダウンロードでエラー:
gnutls-devel-2.8.5-14.el6_5.x86_64: failure: Packages/gnutls-devel-2.8.5-14.el6_5.x86_64.rpm from base: [Errno 256] No more mirrors to try.
rebootすると、CentOS 6.3から、CentOS6.6に上がっていて無事rebootできた。
Verifying : plymouth-theme-rings-0.8.3-24.el6.cento 1771/1773
Verifying : openssh-server-5.3p1-81.el6_3.x86_64 1772/1773
Verifying : ricci-0.16.2-55.el6.x86_64 1773/1773
<中略>
libreoffice-presenter-screen.x86_64 1:3.4.5.2-16.1.el6_3
openchange.x86_64 0:0.9-7.el6
samba4-libs.x86_64 0:4.0.0-23.alpha11.el6
完了しました!
CentOS6.6 : Linux 2.6.32_504.12.2_el6.x86_64
(目次に戻る)
rsyncとcronを用いた自動バックアップ
/root/scriptsに、nasbackup.sh, bkup_cron.shという2つのコマンドを作った。/etc/crontabを修正してbkup_cron.shを定期的に呼ぶことで、nasbackup.shから呼ばれるrsyncコマンドが、重要なファイルだけをnasないしはRAIDパーティションにバックアップをする。
crontabの書き方, cronの使い方: http://www.server-memo.net/tips/crontab.html
#crontab -l
30 3 * * 2 /root/scripts/bkup_cron.sh
nasbackup.sh
#! /bin/sh -fbkup_cron.sh
echo
echo '----------------'
echo "-=-=-=-=- backup to NAS on `date` -=-=-=-=-"
HOME=/root
OPT="-auLptHv --delete $@"
# OPT="-avn --delete" # for debugging -- dry run. --> -n option with this scripts force dry
run.
EXCL=--exclude-from=$HOME/scripts/rsync_exclude.list
SRCF=$HOME/scripts/rsync_backup.list
TARG=/home/backup/Linux02/root
echo once chd to $TARG # in order to mount NAS with automounter
pushd $TARG
popd
while read f; do
tdir=${TARG}`dirname $f`
cmd="mkdir -p $tdir"
echo Running : $cmd
$cmd
cmd="rsync $OPT $EXCL $f $tdir"
echo Running : $cmd
$cmd
done < $SRCF
#! /bin/sh -f
HOME=/root
LOG=$HOME/scripts/nasbackup.log
LOGSV=${LOG}.old
CMD=$HOME/scripts/nasbackup.sh
MVSIZ=20000000
if [ -f $LOG ]
then
fsize=`wc -c $LOG | awk '{print $1}'`
# echo $fsize
if [ $fsize -gt $MVSIZ ]
then
mv -f $LOG $LOGSV
echo "$LOG is bigger than $MVSIZ. Now moved to $LOGSV" > $LOG
fi
# echo "$CMD >> $LOG"
$CMD >> $LOG
fi
(目次に戻る)
Dropboxの更新
CentOS 6.5以降ではdropboxが動かない。ホームにある .dropbox等のファイルを消去しても動かない。futexをとろうとしてエラーになっている。
http://bit.ly/1BiwiGA
にあるやり方をしたら、dropboxをダウンロードし始めた。rootのパスワードを聞いてきたあと、メニューバーに一旦dropboxのアイコンが出たところで止まったが、一度、アイコン右クリックからdropboxを落として、再度立ち上げたら同期が始まり、正しく動いている模様。
変更は、chown -R user:group dir1 dir2 のようにして、所定のdirectoryの下に対して、userとgroupの変更を一気にできる。
参考: chownの使い方: http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230729/
こういう症状はLinuxならでは....
(目次に戻る)
Dropboxの更新
CentOS 6.5以降ではdropboxが動かない。ホームにある .dropbox等のファイルを消去しても動かない。futexをとろうとしてエラーになっている。
http://bit.ly/1BiwiGA
にあるやり方をしたら、dropboxをダウンロードし始めた。rootのパスワードを聞いてきたあと、メニューバーに一旦dropboxのアイコンが出たところで止まったが、一度、アイコン右クリックからdropboxを落として、再度立ち上げたら同期が始まり、正しく動いている模様。
It is possible to stop the autoupdate by installing Dropbox in a non-user directory where only root has access, e.g. /opt/dropbox. Move the content of the (not updated) ~/.dropbox-dist/versionnumber/ to /opt/dropbox, create a symlink from /opt/dropbox/dropboxd to /usr/bin/dropboxd by # ln -s /opt/dropbox/dropboxd /usr/bin/ in order to start dropbox normaly by the dropboxd command.Be sure /opt/dropbox is owned by root. Now you have a dropbox installation out of your userdirectory, but that is not enough. You have to be sure, dropbox is not written again in ~/.dropbox-dist.You can do this by rm -rf ~/.dropbox-distinstall -dm0 ~/.dropbox-distThat way, nothing can be written in the ~/.dropbox-dist directory.いつまでたっても同期が終わらないファイルがあり、~/Dropbox のdirectoryに、いつまで経っても、同期中のマークが消えない。これは、所有者がrootで、自分が書き込み権限がなかったため。ownerを自分に変えたら、同期が完了した。
変更は、chown -R user:group dir1 dir2 のようにして、所定のdirectoryの下に対して、userとgroupの変更を一気にできる。
参考: chownの使い方: http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230729/
こういう症状はLinuxならでは....
(目次に戻る)
RAIDの修復
mdadmを用いたsoftware RAID化(RAID1) - にも書いたが、Seagate のHDD 1.5TB HDDが壊れRAID1で縮退運転になっていたので、4TBのHDDを2つ用いて、mdadmで新たなRAIDを構築した。
構築後、SATAポートが全部なくなったのでPCIeのeSATA/SATAカード(2ポートを購入し)外部接続boxにeSATAでつないで、生き残ったRAID1の2.5TBのHDDを再利用した。
eSATA/SATAカード (2ポートをショートプラグで内外 切り替える) |
秋葉原のドスパラで買ってきた、外部HDDボックス 2.5インチ/3.5インチのSATA HDD両対応、eSATA/USB両対応 |
取り付けた様子 |
片肺のRAIDも正しく認識されるが、HDDを付け替えるとデバイスの番号が変わる。
Linuxでは、windowやMacと違い、デバイス名が変わってしまうと、起動時のfsckが通らず立ち上がらない。そこで、緊急修復のsingle userモードに入り
# mount -o rw, remount /でroot filesystemを再度マウントし直し、/etc/fstabで、つながっていないdriveのマウント情報をコメントアウトする作業が必要になった。sync; sync してinit 6でrebootする。
参考) 書き込み権限を変えたりして再マウント: http://www.atmarkit.co.jp/flinux/rensai/linuxtips/390remount.html
Single Userモードで修復している画面 (CentOS 6.5) |
故障したHDD |
デグレード状態のRAID (HDD追加前) |
追加前のHDD (RAIDコンポーネントではない方の /dev/sdc2 を/homeにマウントしていた)
|
UPSを用いたGrace shutdownと再立ち上げの制御UPSを用いたGrace shutdownと再立ち上げの制御
APCのUPS Pro700を用いている。
停電時にはLinuxシャットダウン後、一旦UPSをシャットダウンし、停電復旧後UPSが自動立ちあげし、PCの電源が入ったことで、PCは自動再起動するようにBIOSを設定する。
非常時のために、wake-on-lanも設定し、BBrouterにTCPかUDPの穴を空けておく。(これは、電源を投入することしかできないので、セキュリティ上問題はないと思われる)
設定法)
- CentOSでのUPS信号を用いたshutdown)
http://thehelpfulhacker.net/2012/11/02/graceful-ups-shutdowns-for-your-esxi-server-with-centos/ を参照し以下を実行。
% su
# yum install usbutils
UPSのUSBケーブルを接続
# lsusb
Bus 004 Device 002: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
# rpm -Uvh http://ftp.osuosl.org/pub/fedora-epel/6/i386/epel-release-6-7.noarch.rpm--- 上記サイトは存在しない。browserで調べると以下が最新これは成功。# rpm -Uvh http://ftp.osuosl.org/pub/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm# yum install apcupsd
-- 成功。ただし、 rpm -Uvh http://ftp.osuosl.org/pub/fedora-epel/6/x86_64/apcupsd-3.14.10-1.el6.x86_64.rpm でもいけそう。
# chkconfig apcupsd on - 1の冒頭にしたがい。
# vi /etc/apcupsd/apcupsd.conf
# service apcupsd start
# apcaccess
これで以下の画面が表示される。 - VMwareツールは今回は不要。
root mailの転送を設定してあれば、
# /etc/apcupsd/changeme で、メイルが配送されるはず。
# vi /etc/apcupsd/apccontrol で、shutdown -iの行を確認 - テスト) UPSのコンセントを抜くと、停電の旨のメッセージはでるが5分待っても落ちない。apccontrol を見ると、バッテリーがいよいよなくなるとUPSからステータスが飛んで落ちるらしいが、このthresholdを変更する。
http://dev.halhal.info/archives/11 に紹介がある。
# vi /etc/apcupsd/apcupsd.conf をして、2番に戻る。BATTERYLEVEL 30 // shutdownに入る残りバッテリー残量 (%) MINUTS 6 // shutdownに入るときの、残りバックアップ可能時間(min) TIMEOUT 120 // shutdownに入るまでのタイマー(sec)
注意) ただし、以下のKILLDELAY を設定すると、停電かどうかにかかわらず、USBを繋ぐと一定時間(以下の設定だと120秒)で、UPSが落ちるようになり、困ったことになった。USBのHWか、Linuxのドライバにバグがあり、UPSに対してシャットダウンのコマンドを送り続けている可能性がある。(RebootしてBIOS設定の画面でも起きているのが不可解だが、以下を除去して、service apsupsd restartを発行したら治ったので、USB通信の問題には間違いがなさそうである。 KILLDELAY 120 // shutdownを行ってから、UPSが落ちるまでの時間(sec)
- Daemonの設定から、起動時にapcupsdがdaemonとして立ち上がるように設定をしておく。
- 参考リンクにある「コマンドラインからのハイバネート(休止状態)」が便利なので、
/etc/apcupsd/apccontrol を編集して、doshutdown) の行を以下に書き換えておいた。(rootのshellからこのコマンドを打つとハイバネートするコトは確認したが、apcupsdとしての動作は未確認)
echo "UPS ${2} initiated Hibernate Sequence" | ${WALL}
echo disk > /sys/power/state - おまけ)webベースのUPS状況報告ツールのインストール
# yum install apcupsd-cgi
# chkconfig httpd on
# service httpd start
apacheが入っていないので、まだ動かない。。
PCのBIOSから、電源再投入時の自動起動の設定をする。私のMother boardの場合には以下の三つがあったので、以下の写真のようにpower failure前の動作状態に持って行く。を選んだ。
BIOSのPower 再投入時の動作設定 |
他にも電源に関する機能がある |
APC UPS PRO700の仕様)
http://www.apc.com/resource/include/techspec_index.cfm?base_sku=BR700G&tab=features
同Smart Commandの一覧)
http://homepage1.nifty.com/Que/plamo/apc-ups/manual/upsbible.html
USBに対する指示)
https://sturgeon.apcc.com/kbase.nsf/0/4efe298bbb38ad4f49256fc4002ad2e7?OpenDocument
コマンドラインからのハイバネートとsleep)
http://www.zedt.eu/tech/linux/console-commands-to-hibernate-and-standby-on-centos/
USBからUPSのシャットダウン)
http://www.omron.co.jp/ese/ups/support/faq/soft/a_upssoft_030507b.html
Wake on Lan)
http://ja.wikipedia.org/wiki/Wake-on-LAN