BLOGTIMES
» ArchiveList
Home (Tag for "linux")
«Prev || 1 · 2 · 3 · 4 · 5 · | Next»
2010/03/07
[ by hsur at 15:20]

multitailで複数のログを追いかける

 
multitail

ターミナルでログを追いかける際には tail -f を使う人が多いと思います。僕もよく使っています。これまでtailの引数に渡せるファイルは1つだけだと思っていたのですが、実は複数のファイルを指定することもできるようです。ただ、後述のように出力がSTDOUTに統合されてしまうので、双方のファイルに頻繁にログが出力されるような場合にはあまり見やすくありません。

そんなことをtwitterで呟いていたら「@hsur multitailのほうがお勧めですw」と@kon_clが教えてくれたので、早速インストールしてみました。

MultiTail

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にあるので、下記の要領でサクッとインストール。使い方も簡単です。

 [続きを読む...]
Category: Software | | Comment(0) | TrackBack(0) | Permalink |
2010/01/31
[ by hsur at 19:10]

ProFTPDでFTPSを使えるようにする

 

折角なのでサーバにインストールしてあるProFTPDもFTPS対応にしておくことにします。
とりあえず「FTPS(FTP over SSL)環境構築」の解説を参考に設定ファイルを下記のように変更して、デーモンの再起動しました。
ココまではスムーズでした。

--- proftpd.conf.bak    2008-12-28 23:40:45.000000000 +0900
+++ 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のアップデートをしたところ正常に接続できるようになりました。

 [続きを読む...]
Category: Tips | / / | Comment(0) | TrackBack(0) | Permalink |
2009/12/05
[ by hsur at 20:32]

incronでファイルやディレクトリが変更されたときに任意のコマンドを実行する

 

以前、簡易にディレクトリの同期を行う方法としてlsyncdを使った方法を調べましたが、単純にrsyncするだけではなくてもうちょっと手の込んだ事がやりたくなってきたのでlsyncdと同じinotifyベースで動作するincronをというソフトウェアを試してみました。

ファイル/ディレクトリの変更に応じて任意のジョブを実行するincron - SourceForge.JP Magazine

こうした伝統的なcronで行えるのが時刻指定型のジョブ実行であるのに対して、ファイルシステムの変更を検出して指定のコマンドを実行させるというコンセプトで作られたcronクローンの一種に incron というツールが存在する(正式名称はinotify cron)。incronを使用するための設定としては、どのようなファイル/ディレクトリの変更を監視対象とするかおよび、そこでの変更発生時に実行すべきジョブの登録が必要となる。

以下は作業メモ。

インストール

ソースからインストールしなければならないかと思いきや、CentOS 5.4ではyumでいけました。

# yum install incron
# /etc/init.d/incrond start
 [続きを読む...]
Category: Software | / | Comment(0) | TrackBack(0) | Permalink |
2009/11/24
[ by hsur at 23:12]

再起動時に一度だけ実行される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にこう書いておくと勝手に起動できるようになっていい感じです。

@reboot (cd /path/to/rails && ruby script/server -d)  >/dev/null 2>/dev/null

管理が面倒になりそうなので、乱発は避けたいところですが、例えばroot権限がなくてinit.dにスクリプトが仕込めない場合に使うと便利そうです。

Category: Tips | | Comment(0) | TrackBack(0) | Permalink |
2009/11/21
[ by hsur at 20:27]

crontab -r とやってしまった時の対処法

 

cronの設定を変えようと crontab -e と打とうとして、間違って crontab -r と打ってしまい、cronの設定が根こそぎぶっ飛んで参りました。
「eとrは隣同士だから不慮の事故ですよ!」という他人の言い訳は以前から良く聞いていて、心の中で「そんなことあるかよ!」と思っていましたが、まさか自分がやってしまうとは思いませんでした。まったく言い訳できません。

仕方が無いので、/var/log/cronの実行ログからcrontabをサルベージするスクリプトを書いてみました。本当は時刻の設定とかも復元できるようにしようかと思ったのですが、まぁそんなにお世話になることもないのでそのあたりは手動で実施するということにします。いちおうリストアップされるようにしました。ユニークに出力しますが、*/5みたいに綺麗に畳んだりできないので出力は結構冗長です。

$ ./cron_salvage.rb --help
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ユーザーで実行する必要があります。

$ ./cron_salvage.rb
 * * * * * /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でなければ余計なものはあまり出てこないと思いますが。

 [続きを読む...]
Category: Tips | / / | Comment(0) | TrackBack(0) | Permalink |
2009/10/13
[ by hsur at 12:34]

shスクリプト内で安全に相対パスを使う

 

シェルスクリプトでバッチを書いたものの、いざcronに仕掛けたらうまく動かないというパターンはバッチを作った人であれば一度は経験があると思います。基本的には環境変数がセットされていなくて、PATHが通ってなかったというパターンなんかが多いと思いますが、その次に多いのが、スクリプトの内部で相対パスを使っているために、自分でも予期しないうちにカレントディレクトリに依存したスクリプトになってしまっていたというのがあります。いちいち外部のプログラムを絶対PATHで書いていってもいいのですが、それも結構鬱陶しいので、僕はスクリプトの行頭に下記のような2行を追加するようにしています。

scriptdir.sh

#!/bin/bash
SCRIPT_DIR=`dirname $0`
cd $SCRIPT_DIR

# これ以下に処理を書く
pwd

こうするとカレントディレクトリが何処であっても、スクリプトの置いてあるディレクトリをカレントディレクトリとしてスクリプトを実行できるようになります。ちょっとしたスクリプトにも必ず書いておくようにすると、他人にスクリプトを実行してもらうときも、「###にcdしてから・・・」という説明を省く事ができるので意外と便利です。

$ pwd
/tmp/test
$ ./scriptdir.sh
/tmp/test
$ cd ..
$ pwd
/tmp
$ ./test/scriptdir.sh
$ cd ~
$ pwd
/home/hsur
$ /tmp/test/scriptdir.sh
/tmp/test
Category: Tips | / | Comment(0) | TrackBack(0) | Permalink |
2009/08/21
[ by hsur at 22:04]

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    │
└───────────┘

以下、作業メモ

 [続きを読む...]
Category: Tips | | Comment(0) | TrackBack(0) | Permalink |
2009/07/28
[ by hsur at 23:55]

VMWare向けRHEL

 

VMWare ESXiが無償化されてからすっかり仮想化もメジャーになり、僕は最近ではリアルサーバをセットアップするということもだいぶ少なくなってきました。ちょっと昔なら、ホストとかSuperdomeみたいなものを使わないとパーティショニングはできないという感じだったことを考えると隔世の感があります。そんな中、VMWareのRHELがリリースされるようです。

レッドハット、VMware向けサブスクリプション「RHEL for VMware」提供開始 | エンタープライズ | マイコミジャーナル

RHEL for VMwareは、VMwareの仮想化環境に対応するかたちで、ライセンス体系やサポートポリシーを整備したサブスクリプション。最大のメリットは導入時コストが抑制できる点で、4仮想マシンの同時実行を従来のRHELサブスクリプション単体の1.7倍の価格でサポートする。

VM4つで価格は1.7倍ということなので、価格的にはちょっと微妙でしょうかね。

Category: IT | | Comment(0) | TrackBack(0) | Permalink |
2009/07/18
[ by hsur at 21:21]

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使った方が良いかもしれません。

 [続きを読む...]
Category: Tips | / | Comment(0) | TrackBack(0) | Permalink |
2009/06/20
[ by hsur at 22:12]

無料で読めるサーバー構築の教科書

 

昨年の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を使用している。

こういうのも実際作ろうと思うと膨大に手間がかかるので、すばらしいプロジェクトだと思います。

Category: IT | / | Comment(0) | TrackBack(0) | Permalink |
«Prev || 1 · 2 · 3 · 4 · 5 · | Next»
» ArchiveList
Home (Tag for "linux")