- blogs:
- cles::blog
multitailで複数のログを追いかける
ターミナルでログを追いかける際には tail -f を使う人が多いと思います。僕もよく使っています。これまでtailの引数に渡せるファイルは1つだけだと思っていたのですが、実は複数のファイルを指定することもできるようです。ただ、後述のように出力がSTDOUTに統合されてしまうので、双方のファイルに頻繁にログが出力されるような場合にはあまり見やすくありません。
そんなことをtwitterで呟いていたら「@hsur multitailのほうがお勧めですw」と@kon_clが教えてくれたので、早速インストールしてみました。
MultiTail lets you view one or multiple files like the original tail program. The difference is that it creates multiple windows on your console (with ncurses). It can also monitor wildcards: if another file matching the wildcard has a more recent modification date, it will automatically switch to that file. That way you can, for example, monitor a complete directory of files. Merging of 2 or even more logfiles is possible. It can also use colors while displaying the logfiles (through regular expressions), for faster recognition of what is important and what not. It can also filter lines (again with regular expressions). It has interactive menus for editing given regular expressions and deleting and adding windows. One can also have windows with the output of shell scripts and other software. When viewing the output of external software, MultiTail can mimic the functionality of tools like 'watch' and such.
el5系のRPMについてはDAG: multitail RPM packages for Red Hat, CentOS and Fedoraにあるので、下記の要領でサクッとインストール。使い方も簡単です。
[続きを読む...]ProFTPDでFTPSを使えるようにする
折角なのでサーバにインストールしてあるProFTPDもFTPS対応にしておくことにします。
とりあえず「FTPS(FTP over SSL)環境構築」の解説を参考に設定ファイルを下記のように変更して、デーモンの再起動しました。
ココまではスムーズでした。
+++ proftpd.conf 2010-01-31 18:59:33.000000000 +0900
@@ -52,6 +52,7 @@
LoadModule mod_sql_mysql.c
LoadModule mod_quotatab.c
LoadModule mod_quotatab_sql.c
+LoadModule mod_tls.c
SQLAuthenticate on
SQLEngine on
@@ -141,3 +142,24 @@
# DenyAll
# </Limit>
#</Anonymous>
+
+<IfModule mod_tls.c>
+ TLSEngine on
+ TLSLog /var/log/proftpd/tls.log
+ TLSProtocol TLSv1
+ TLSRenegotiate required off
+
+ # Are clients required to use FTP over TLS when talking to this server?
+ TLSRequired off
+
+ # Server's certificate
+ TLSRSACertificateFile /etc/pki/proftpd/certs/server.crt
+ TLSRSACertificateKeyFile /etc/pki/proftpd/private/server.key
+
+ # CA the server trusts
+ #TLSCACertificateFile /etc/ftpd/root.cert.pem
+
+ # Authenticate clients that want to use FTP over TLS?
+ TLSVerifyClient off
+</IfModule>
ところが、FileZillaから接続しようとすると "GnuTLS error -9: A TLS packet with unexpected length was received." と言われてコケてしまいます。どうやらFileZillaの実装の問題のようで、ProFTPDでも最新のバーションであればfixされているという情報を見つけたので、ProFTPDのアップデートをしたところ正常に接続できるようになりました。
[続きを読む...]incronでファイルやディレクトリが変更されたときに任意のコマンドを実行する
以前、簡易にディレクトリの同期を行う方法としてlsyncdを使った方法を調べましたが、単純にrsyncするだけではなくてもうちょっと手の込んだ事がやりたくなってきたのでlsyncdと同じinotifyベースで動作するincronをというソフトウェアを試してみました。
ファイル/ディレクトリの変更に応じて任意のジョブを実行するincron - SourceForge.JP Magazine
こうした伝統的なcronで行えるのが時刻指定型のジョブ実行であるのに対して、ファイルシステムの変更を検出して指定のコマンドを実行させるというコンセプトで作られたcronクローンの一種に incron というツールが存在する(正式名称はinotify cron)。incronを使用するための設定としては、どのようなファイル/ディレクトリの変更を監視対象とするかおよび、そこでの変更発生時に実行すべきジョブの登録が必要となる。
以下は作業メモ。
† インストール
ソースからインストールしなければならないかと思いきや、CentOS 5.4ではyumでいけました。
# /etc/init.d/incrond start
再起動時に一度だけ実行されるcron定義
先日のcrontab -r とやってしまった時の対処法のアクセスが意外と多くてかなり驚きました。ちなみに僕はクーロンと読む派です。それはそうと、これを機にちゃんとcrontabのmanを読んでみたら、日次の定義に@rebootと書くと再起動時に一度だけ実行されるcron定義がかける事が判明。CentOS 5.3では、日本語のmanにはこの部分が記載されていませんでした。
$ man 5 crontab
These special time specification "nicknames" are supported, which replace the 5 initial time and date fields, and are prefixed by the '@' character:
@reboot : Run once, at startup.
@yearly : Run once a year, ie. "0 0 1 1 *".
@annually : Run once a year, ie. "0 0 1 1 *".
@monthly : Run once a month, ie. "0 0 1 * *".
@weekly : Run once a week, ie. "0 0 * * 0".
@daily : Run once a day, ie. "0 0 * * *".
@hourly : Run once an hour, ie. "0 * * * *".
自分の開発用のLinuxマシンで再起動する度にRoRのアプリを起動し直すのがちょっと面倒だったんですが、crontabにこう書いておくと勝手に起動できるようになっていい感じです。
管理が面倒になりそうなので、乱発は避けたいところですが、例えばroot権限がなくてinit.dにスクリプトが仕込めない場合に使うと便利そうです。
crontab -r とやってしまった時の対処法
cronの設定を変えようと crontab -e と打とうとして、間違って crontab -r と打ってしまい、cronの設定が根こそぎぶっ飛んで参りました。
「eとrは隣同士だから不慮の事故ですよ!」という他人の言い訳は以前から良く聞いていて、心の中で「そんなことあるかよ!」と思っていましたが、まさか自分がやってしまうとは思いませんでした。まったく言い訳できません。
仕方が無いので、/var/log/cronの実行ログからcrontabをサルベージするスクリプトを書いてみました。本当は時刻の設定とかも復元できるようにしようかと思ったのですが、まぁそんなにお世話になることもないのでそのあたりは手動で実施するということにします。いちおうリストアップされるようにしました。ユニークに出力しますが、*/5みたいに綺麗に畳んだりできないので出力は結構冗長です。
Usage: cron_salvage [options]
-f, --file CRONLOG cron log file (default: /var/log/cron)
-u, --user USER cron user (default: root)
こんな感じで、対象のログファイルとユーザーが指定できるようにしてみました。
/var/log/cronが読める必要があるので、基本的にはrootユーザーで実行する必要があります。
* * * * * /usr/lib/sa/sa1 1 1
* * * * * ionice -c3 nice -n 19 /opt/apache/htdocs/admin/AWStats69t_Jpn/wwwroot/cgi-bin/awstats.cron > /dev/null 2>&1
* * * * * run-parts /etc/cron.daily
* * * * * run-parts /etc/cron.hourly
* * * * * run-parts /etc/cron.weekly
こんな感じで、crontabが復元されるので、cron.(daily|hourly|weekly)に設定されている部分など、不必要な部分を除いてやればよいと思います。まぁ、対象がrootでなければ余計なものはあまり出てこないと思いますが。
[続きを読む...]shスクリプト内で安全に相対パスを使う
シェルスクリプトでバッチを書いたものの、いざcronに仕掛けたらうまく動かないというパターンはバッチを作った人であれば一度は経験があると思います。基本的には環境変数がセットされていなくて、PATHが通ってなかったというパターンなんかが多いと思いますが、その次に多いのが、スクリプトの内部で相対パスを使っているために、自分でも予期しないうちにカレントディレクトリに依存したスクリプトになってしまっていたというのがあります。いちいち外部のプログラムを絶対PATHで書いていってもいいのですが、それも結構鬱陶しいので、僕はスクリプトの行頭に下記のような2行を追加するようにしています。
scriptdir.sh
SCRIPT_DIR=`dirname $0`
cd $SCRIPT_DIR
# これ以下に処理を書く
pwd
こうするとカレントディレクトリが何処であっても、スクリプトの置いてあるディレクトリをカレントディレクトリとしてスクリプトを実行できるようになります。ちょっとしたスクリプトにも必ず書いておくようにすると、他人にスクリプトを実行してもらうときも、「###にcdしてから・・・」という説明を省く事ができるので意外と便利です。
/tmp/test
$ ./scriptdir.sh
/tmp/test
$ cd ..
$ pwd
/tmp
$ ./test/scriptdir.sh
$ cd ~
$ pwd
/home/hsur
$ /tmp/test/scriptdir.sh
/tmp/test
iptablesでポートマッピング
久しぶりにiptablesでNATの設定をしたらハマってしまったので、忘れないうちにメモ。
こんなネットワークがあり、ServerAの8080で待ち受けているサービスを、Clientから使いたいという状況でした。
│ ServerA │
│ 192.168.200.2:8080 │
└───────────┘
│
│192.168.200.0/24
│
┌eth1(192.168.200.1) ─┐
│ServerB │
└eth0(192.168.100.1) ─┘
│
│192.168.100.0/24
│
┌───────────┐
│Client │
│ 192.168.100.0/24 │
└───────────┘
以下、作業メモ
[続きを読む...]VMWare向けRHEL
VMWare ESXiが無償化されてからすっかり仮想化もメジャーになり、僕は最近ではリアルサーバをセットアップするということもだいぶ少なくなってきました。ちょっと昔なら、ホストとかSuperdomeみたいなものを使わないとパーティショニングはできないという感じだったことを考えると隔世の感があります。そんな中、VMWareのRHELがリリースされるようです。
レッドハット、VMware向けサブスクリプション「RHEL for VMware」提供開始 | エンタープライズ | マイコミジャーナル
RHEL for VMwareは、VMwareの仮想化環境に対応するかたちで、ライセンス体系やサポートポリシーを整備したサブスクリプション。最大のメリットは導入時コストが抑制できる点で、4仮想マシンの同時実行を従来のRHELサブスクリプション単体の1.7倍の価格でサポートする。
VM4つで価格は1.7倍ということなので、価格的にはちょっと微妙でしょうかね。
sambaでもシャドーコピーはできる
ファイルサーバの増設をやっているんですが、Windows ServerではなくてLinuxで代替機を作りたいなと思ったのですが、人為的なミス対策用に施しているシャドーコピーをsambaでも導入したいという話になったので、ちょっと調べて見たところ意外と前からシャドーコピーについては対応されているようです。
ミラクル・リナックスMIRACLE LINUX V3.0におけるボリュームシャドーコピー機能
◎Sambaサーバ側の要件
* Samba 3.0.4以降を利用すること。
* 共有のディレクトリがXFS + LVMで構成されていること
ネックになるのはファイルシステムがXFSではないといけない点でしょうか。ウチで標準にしているCentOSではインストール時にはXFSが選択できないので、LVMで未使用の領域をVGに残しておいて、xfs関連のプロダクトをインストールした後でXFSのLVを作るという形になりそうです。
試しにちょっとやってみましたが、上記のサイトのスクリプトを使って、問題なくシャドウコピーの内容が取り出せることは確認できました*1。LVMはスナップショット取得時に容量を指定しないといけないので、そのあたりの運用の負荷が大きいのは気になります。素直にWindows Server使った方が良いかもしれません。
無料で読めるサーバー構築の教科書
昨年の9月にLinux標準教科書が出ていましたが、今度はLinuxサーバー構築標準教科書が発表されています。前回はLinuxの基本的な使い方を解説した感じでしたが、今度はDNS,Web,Mailなどのデーモンを設定してサーバを作るという内容のようです。ライセンスはクリエイティブコモンズのBY-NC-NDになっています。
授業に使える「Linuxサーバー構築標準教科書」,LPI-JapanがPDFで無償公開:ITpro
「Linuxサーバー構築標準教科書」は120ページ。Linuxをインストールしサーバーを構築,DNS,Webサーバー,メール・サーバーを設定し動作させる実習を行う。想定学習時間は12時間で,6時間2日または90分間8コマ。LinuxディストリビューションとしてはCentOSを使用している。
こういうのも実際作ろうと思うと膨大に手間がかかるので、すばらしいプロジェクトだと思います。
sp-20100313022551644595553@cles.net
- 息 白い 温度
- 目安にしてください。
- Yahoo! - 10/03/13 02:25:13
- Multiple_IE
- いろんなバージョンのIEをインストールする「Multiple_IE」
- Google - 10/03/13 02:23:08
- 息 白い 温度
- 目安にしてください。
- Yahoo! - 10/03/13 02:22:44
- 死体 画像
- 水死体。
- bing - 10/03/13 02:22:38
- ファイアーエムブレム ワザポンコード
- Yahoo! - 10/03/13 02:21:30
- Multiple_IE
- いろんなバージョンのIEをインストールする「Multiple_IE」
- Google - 10/03/13 02:20:30
- ネクタイリング つけ方
- ネクタイの結び方
- Yahoo! - 10/03/13 02:20:18
- ドラゴンクエスト6 回避 バイナリ
- Yahoo! - 10/03/13 02:19:52
- ネクタイリング つけ方
- ネクタイの結び方
- Yahoo! - 10/03/13 02:19:20
- 小学生 画像掲示板
- Yahoo! - 10/03/13 02:16:55
・検索ワードランキングはこちら
- SourceForge.JPのSubversion... (5)
- 夏合宿 1日目 (4)
- 時間がたっても変わらないもの (4)
- おめでとうございます (4)
- コインランドリー (4)
- Bistro Bourgogne (3)
- 散髪しました (3)
- 知恵の輪 サターン編 (3)
- 大雪でした (3)
- やっと髪をきりました (3)
2 . やっぱりあった!パクれる読書感想文! [7003x]
3 . Echofon for Firefox [6023x]
4 . 急性胃腸炎 [5473x]
5 . 芸能人の本名。 [5361x]
- CD-ROM起動で、HDDを完全消去
- NP_Moblog v1.16
- pinzoro 01/15
- hsur 12/29
- and more...
- 耳がおかしいと思ったら突発..
- baca 01/13
- hsur 01/13
- and more...
★はてな認証APIをつかってログインすることができます。




