Linuxユーザの立場から、役立つ情報や困ったときの解決方法を分かりやすく、かつ簡潔に記事にまとめています。主に、Ubuntu 8.04(→9.04)やCentOS 5.2(→5.3)で確認したことですが、他のディストリビューションでも応用できると思います。内容は(1)設定ファイルの書き方(2)役立つソフトウェア紹介やインストール方法(3)便利なコマンドの使い方や活用例(4)困ったときの解決方法です。このページの末尾にキーワード別で記事を分類してあります。また、真上の「ブログ検索」フォームからブログ内の記事を検索できます。

2008年11月25日火曜日

複数のアカウントからメールを一括で収集する このエントリーを含むはてなブックマーク

本記事では、複数のメールアカウントからメールを一括で収集するツールであるfetchmailの使い方についてまとめる。

まず、fetchmailをインストールする。

$ sudo apt-get install fetchmail

次に、ホームディレクトリに設定ファイル.fetchmailrcを作成する。この設定は、gmailだけからメールを取得する設定になっている。追加でサーバがあれば、同じような書式で末尾に書き込めばよい。

(注意)gmailでPOP接続する場合は、事前にgmailの設定でPOP接続ができるように変更しておくこと。

これで、fetchmailを実行する。

$ fetchmail -v
(vオプションは、結果の詳細表示。必要なければ省いてよい) うまくいけば、次のファイル
/var/mail/Ubuntuのユーザ名
にmbox形式でメールが格納される。

ちなみに、procmailを用いて適当な場所に配送した場合に、mbox形式ではなく Maildir形式で配送された。Thunderbirdはmbox形式に対応しているので、うまく いかなかった。

fetchmailをバックグランドで走らせて、定期的にサーバにポーリングさせるモード (デーモンモード)ができるが、私は必要なときに手動で実行している。

2008年11月23日日曜日

壁紙をランダムに変更するスクリプト このエントリーを含むはてなブックマーク

本記事では、Ubuntuで壁紙をランダムに変更するスクリプトを紹介する。

このスクリプトは、Ubuntuでなくても、gnomeをウィンドウマネージャとして使っているならば利用できる(Ubuntuでgnomeを使っていなかったら使えない)。

設定

スクリプトを実行する前に、画像ファイルを置くためのディレクトリの作成が必要です。 ~/picsにジャンル別に画像ファイルを入れるディレクトリを作成しておきます。下の例では、cat, nature, airplane, carの4つのディレクトリを作成しています。それらのディレクトリの下にさらにサブディレクトリを作成してもOKです。ディレクトリの名前は任意です。

$ cd ~/pics
$ ls
cat  nature  airplane  car
$ cd nature
$ ls
liver mountain sea foreast
ちなみに、~/picsを別のディレクトリにしたいときは、下のスクリプトの$dirを編集すればOKです。

処理内容

スクリプトを実行すると、~/pics以下のディレクトリをランダムに下って行き、jpg形式の画像ファイルをランダムに選んで壁紙に設定します。

使用方法

スクリプトファイルの名称(任意に指定して良い)をchwpaper.plにするとき、まず実行可能ファイルにする。

$ chmod u+x chwpaper.pl

そして、実行する。

$ ./chwpaper.pl

背景画像を指定したいときは、スクリプトを実行する場所からの相対PATHあるいは絶対PATHで画像ファイルを指定します。

$ ./chwpaper.pl   goo/foo/boo/hoge.jpg

gcongtool-2の説明

壁紙の設定は、gconftool-2で行っている。2つ目のgconftool-2では、壁紙の貼り付け方を設定している。貼り付け方は、

  • scaled(等幅サイズ変更)、
  • stretched(フルスクリーン)、
  • centered(中央に配置)、
  • wallpaper(サイズ均等、並べて表示)
の4通りから選べる。

#!/usr/bin/perl -w
#Usage: $ chwpaper.pl
use strict;
use Cwd;

my $wd=Cwd::getcwd();
my $dir = "$ENV{HOME}/pics";
$dir=$1 if $dir =~ m!(.+)\/$!;
chdir $dir or die "cannot chdir $dir: $!";

while (1) {
        my @dirlist;
        foreach (<*>) {
                push @dirlist, $_  if -d $_;
        }
        last unless $#dirlist >= 0;

    # Note:     
        # 0 <= rand($#dirlist) <= $#dirlist
        # $#dirlist = the length -1
        $dir = "$dir" . "/" . "$dirlist[int(rand($#dirlist))]";
        chdir $dir or die "cannot chdir $dir: $!";
}

my @imglist=<*.jpg>;
die "picture not found: $!" unless ($#imglist >= 0);
my $img=$imglist[int(rand($#imglist))];
my $path_img=$dir . "/" . $img;
# Overwrite selected_img if specified.
if ($#ARGV == 0) {
        $_=$ARGV[0];
        unless (-e $_) {
                $_ = $wd . "/" . $ARGV[0];
                die "File not found: $ARGV[0]" unless -e $_;
        }

         $path_img=$_;
         $img=$1 if m!([^\/]*)$!;
}

print "\n$img\n";
system "gconftool-2 --type string --set '/desktop/gnome/background/picture_filename'  \"$path_img\" ";
system "gconftool-2 --type string --set '/desktop/gnome/background/picture_options' stretched";

チップス

~/.bashrcにこのスクリプトを記述しておくと、端末を起動する度にこの壁紙をランダムに変更することができる。 例えば、/usr/local/binにこのスクリプトを置いておくとすると、次の1行を~/.bashrcの末尾に挿入すれば良い。
/usr/local/bin/chwpaper.pl
また、fortuneをインストールし、同じように~/.bashrcに記述すると、端末を起動する度に気の利いた言葉がランダムに表示されるようになる。
# apt-get install fortune-mod  <---インストール

次のように.bashrcに記述する。

/usr/games/fortune
/usr/local/bin/chwpaper.pl

はてなブックマーク、はてなスターを追加する このエントリーを含むはてなブックマーク

本記事では、「はてなブックマーク」と「はてなスター」アイコンを投稿記事タイトルの横に追加する方法をまとめる。

どちらもはてなの提供するサービスで、「はてなブックマーク」:ソーシャルブックマークの一種。ネット上でブックマークを整理して、人気のブックマークをチェックする。「はてなスター」:ブログに星マークを設置しておいて、気に入ってくれた読者にクリックしてもらう。

bloggerは、以前にテンプレートを記述するコードの書式が変わったらしい。したがって、変更前を旧blogger、変更後を新bloggerなどと ネット上で言われているようだ。今回追加する機能は、テンプレートにコードを埋め込むことで実現されるのだが、旧blogger対応の埋め込み方の情報が 多くて、新blogger対応の方法があまりなかった。

以下では、「はてなブックマーク」ボタンの追加方法を簡単にまとめる。ちなみに、「はてなスター」の方は、「はてなスター」→「ヘルプ」でbloggerの対処法の通りにすれば出来たので、ここでは説明しない。

  • bloggerの管理画面で「レイアウト」→「HTMLの編集」に移動する。
  • 「ウィジェットのテンプレートを展開する」をクリックする。
  • h3タグを探す(下図)。

(注意)私の使用しているテンプレートでは、h3タグが投稿記事のタイトル(post-title)に対応するタグになっているが、他のテンプレートでは異なるかもしれない。。。

  • h3タグの中にはてなブックマークのコードを挿入する(上および下図)。

2008年11月22日土曜日

bloggerにトラックバック機能を追加 このエントリーを含むはてなブックマーク

本記事では、ブログにトラックバック機能を追加する方法をまとめる。

トラックバックとは、お気に入りのブログの記事をリンクするときに、リンクしたことをブログに通知する機能のことである。ブログは、この通知(トラックバックピング)を受け取り、リンク一覧をブログに表示する。

bloggerには、トラックバック機能がついてないので、haloscanというサービスを使ってトラックバック機能を追加する。今回は合わせてrating機能とコメント機能も一緒に追加する。コメント機能は、記事を読んだ人がコメントを書き込む機能で、rating機能は、記事 を星の数で評価する機能です。この記事を読んで良かったら、下のrating・コメント・トラックバック機能など使って見てください。

それでは説明します。haloscan.comに行ってサインインする(ユーザ登録が必要)。

「Install」タブを選択すると、下の図のような画面になる。

  1. 利用しているブログサービスを選択する。
  2. Nextをクリックする。

以下の手順で、現在bloggerで使っているテンプレートをhaloscanにアップロードする。 

  1. 「Click here to login your Blogger account」というところをクリックして、bloggerにログインする。
  2. トラックバック機能を追加したいブログの管理画面で「レイアウト」タブをクリックする。
  3. 「HTMLの編集」を選択する。
  4. 「テンプレートをすべてダウンロード」をクリックして、適当な場所にダウンロードする。
  5. 下の図の「Upload your Blogger template here:」という欄の「参照」をクリックして、先ほどダウンロードしたテンプレートを選択する。
  6. 「Upload Bloger Template」をクリックすると、次の画面に進む。

アップロード

以下の手順に従い、先ほどアップロードしたテンプレートに新機能がインストールされたものをダウンロードして、それをbloggerにアップロードする。

  1. 「Download New Template」をクリックして、適当な場所に(機能の追加された)テンプレートをダウンロードする。
  2. bloggerの管理画面の「レイアウト」の「HTMLの編集」を選択する。
  3. 「次のハードドライブにあるファイルから、テンプレートをアップロードします」という欄にある、「参照」をクリックして、先ほどダウンロードしたテンプレートを選択して、「アップロード」をクリックする。これで、トラックバック機能を追加できました。次に、いくつか設定をします。

設定

時刻の設定: 「Setting」タブをクリックして、下の図の「Time Zone」欄で「(GMT+9:00 hours)Osaka, Sapporo, Seoul, Tokyo」を選択する(あなたが日本の時刻帯にいるのなら)。

文字コードの設定

「Character Encoding」欄で「UTF-8」を選択する。 これで設定は終わりました。

トラックバックピングの送信

上の手順で、自分のブログの記事に、(それを読んだ読者が)トラックバックをすることができます。ここでは、その逆に他者のブログの記事に自分がトラックバックする方法を説明します。そのためには、その他者のブログに「自分がリンクしているよ」ということを通知する必要があります。その通知はトラックバックピングと言われるものです。トラックバックピングは、先ほどのhaloscanの管理画面から送信することができます。その手順を以下で説明します。

  1. haloscanにサインインする。
  2. 「Manage Trackback」を選択する。
  3. 「Send a TrackbackPing」を選択する。すると、下の図の画面になる。
  4. 各項目に必要事項を入力する(すべて入力しなければならない)。各項目の意味は以下の通りである。

(注意)日本語を入力する場合は文字コードをUTF-8に指定する必要がある。そのために、あなたの使用しているブラウザのメニューバーで「文字エンコーディング」などという場所から文字コードを指定できると思う。

Your Blog Name
あなたのブログの名前
Your Blog Post Adress(Permaling URL)
最初はあなたのブログのトップページのURLが入力されていますが、 ここにはあなたの記事の個別ページのURLを入力します。つまり、他者のブログの記事(トラックバック先)と関連がある自分の記事(トラックバック元)のURLを入力します。
Your Blog Post Title
あたたの記事のタイトル
Your Blog Post Excerpt
あなたの記事の要約(簡潔に)
URL(s) to Ping
トラックバックピングの送信先URLの一覧。複数ある場合は、各行に1つのURLを入力する。

「Send Pings」をクリックする。

以上で、トラックバックピングの送信ができました。

2008年11月21日金曜日

一括で更新pingを打つスクリプト このエントリーを含むはてなブックマーク

本記事は、複数のpingサーバに一括で更新pingを打つスクリプトを紹介する。

ブログに記事を投稿した際に、それをpingサーバにping送信を行うことでブログの更新を知らせる。bloggerでは、pingの送り先はWeblogs.comだけなので、他のpingサーバに更新pingを送ることができない。そこで、更新pingを送るスクリプトをperlで作りました。

スクリプトの紹介

他の多くのサイトで同様のスクリプトが公開されていますが、私はプロキシ経由でネットに接続しているので、プロキシの指定が別途必要になります。といっても、大したことは何もしないのですが、プロキシ指定をしたスクリプトは次のようになります。

このように、「あなたの使用しているプロキシ」のところにプロキシを指定します。そして、@pingserverに更新pingを送りたいサーバを列挙します。ここでは、例としてpingooとかblogpeopleなどいくつかのpingサーバを書いてあります。そして、「あなたのブログの名前」と「あなたのブログのURL」をそれぞれ指定します。これで、スクリプトは完成です。

ちなみに、プロキシを使わない場合のスクリプトは次のようになります。

XMLRPC::Liteモジュールのインストール

上で紹介したスクリプトでは、XMLRPC::Liteモジュールを使用しています。このモジュールをインストールするには、以前の記事「CPANの設定」に従ってCPANの初期設定を行います。そして、次の手順でモジュールをインストールします。

cpanを起動します。

$ cpan

XMLRPC::Liteをインストールします。

cpan> install XMLRPC::Lite

cpanを終了します。

cpan> quit

スクリプトの実行

上で紹介したスクリプトをテキストファイルに書きます。そのファイル名を簡単のためblgping.plとして、ホームディレクトリの下のbinに置いておきます。

$ mv ~/bin
$ ls
blgping.pl
$ chmod u+x blgping.pl ←ファイルの所有者に実行可能権限を与えます。

以上で、blgping.plを実行できるようになります。ちなみに、~/binにPATHを通しておけば、どこからでもそのスクリプトファイルを実行できるようになるので、便利です。

無料のウィルス対策ソフトを導入 このエントリーを含むはてなブックマーク

本記事では、Ubuntuへの無料のウィルス対策ソフトの導入と、使い方を簡単にまとめます。

今回、導入した対策ソフトは

の2つです。

ライセンスキー

Webサイトからユーザ登録をして、ライセンスキーを取得します。

パッケージ

AVGはここから、パッケージ(avg75fld-r51-a1243.i386.deb)をダウンロードする。 avast!はここから、パッケージ(avast4workstation_1.0.8-2_i386.deb)をダウンロードする。

インストール

AVGのインストール

$ dpkg -i   avg75fld-r51-a1243.i386.deb
avast!のインストール
$ dpkg -i   avast4workstation_1.0.8-2_i386.deb

実行

コマンドラインでも実行できるようですが、ここではguiで起動してみる。 root権限で実行する必要があるので、gksudoを使う。なければ、synapticでインストールする。 (注:ubuntuではrootでログインできない) AVGの起動

$ gksudo avggui &
avast!の起動
$ gksudo avastgui &

所感

データベースのアップデートに時間がかかる(といっても数分だが)。最初、アップデートできないのかと勘違いしていたが放置しているとアップデートできたので、早とちりしないように!

2008年11月18日火曜日

CPANの設定 このエントリーを含むはてなブックマーク

本記事では、Perlのモジュールなどが集められているCPANを利用するための設定についてまとめる。

CPANを次のコマンドではじめて起動したときは、初期設定を行うモードになる。

$ perl -MCPAN -e shell

対話的に設定を行うのだが、通常ほとんどはデフォルトのままでよい。ちなみに、この設定はConfig.pmに書き込まれる。ただ、プロキシを経由してインターネットに接続している場合は、そのプロキシサーバを設定しなければならない。このとき、ftp_proxyとhttp_proxyを聞かれるが、どちらもhttp_proxyとして設定した。そうしないと設定に失敗してしまったから(原因不明)。

あと、初期設定のときに gzip, tar, unzip, make, lynx, wget, ncftpget ,ftp ,less, bash のパスを聞かれるので、あらかじめインストールしておく。

一通りの設定が済むと、

cpan>
というプロンプトが表示される。ここから、CPANにあるモジュールを簡単にインストールできる。
cpan> install SOAP::Lite
などとすれば良い。

一旦初期設定を行うと、次からはいきなりcpan>というプロンプトから始まる。再設定をしたいときは、一旦cpanを起動してから

cpan> o conf init
とすると良い。

2008年11月17日月曜日

パスワードでコンピュータを保護する。 このエントリーを含むはてなブックマーク

本記事では、BIOSとブートローダのパスワードを設定することの意味についてまとめる。

BIOSとはコンピュータの電源を投入したときに、最初に立ち上がる小さなシステムです。BIOSが立ち上がると、各種デバイス・周辺機器を初期化して利用可能な状態にする。そして、OSを起動するためのソフトであるブートローダに処理が渡されます。

ブートローダパスワード

OSの立ち上げを行うプログラムがブートローダである。ブートローダにはパラメータを与えることで、例えばシングルユーザモードでシステムを立ち上げることができる。このモードではパワードなしでrootにログインできる。したがって、ブートローダの設定を行えないようにパスワードで保護する必要がある。

BIOSパスワード

デフォルトでは、BIOSはHDDにあるOSを起動するが、設定することでCD-ROM、FDDなどにあるシステムを起 動することもできる。すなわち、デバイスの優先順位を設定により変更できる。こういった設定を誰でもできないようにパスワードで保護することが必要であ る。なぜなら、外部デバイスから起動して、システムにレスキューモードやシングルモードで入り込まれる危険性があるからである。

注意: BIOSパスワードは、内臓バックアップ電池を取り外して数日放置しておけば解除されるようです。ですから、最終的にはハードウェアを容易に触られないように保管することが肝心です。

参考:「Red Hat Enterprise Linux4:セキュリティガイド

パーティション分割 このエントリーを含むはてなブックマーク

本記事では、linuxをインストールするときのパーティション分割についてまとめる。

パーティションとは、物理的なハードディスクをいくつかの仮想的なドライブに分割することをいう。システム領域とユーザ領域を異なるパーティションに格納するなどのように、領域の用途に応じてパーティションを使い分けることが多い。

パーティションを使い分ける利点は、バックアップをとる際にユーザ領域などのあるパーティションだけをバックアップをとれば良いように分けておくと便利である。また、カーネルを格納するシステム起動用のパーティションを単独で用意しておくと、システム領域などに障害が起きても最悪起動して復旧することができる。

[サーバ用途でのパーティション分割例]
/boot       100MB                起動用
/usr          8GB    アプリケーション用
/var          6GB        ログファイル、サーバなど用
/           300MB            システム用  <--- 少ないので数百MB増やす。
/opt          7GB                  予備
swap        256MB              スワップ
/home  残りすべて              ユーザ用 

漢字コードと改行コード このエントリーを含むはてなブックマーク

本記事では、漢字コードを変換するツールnkfの使い方についてまとめる。

コンピュータでは、文字は数値として内部で処理されている。日本語の漢字やひらがな、カタカナなど全角文字の数値表現は、jisコード、EUCコード、Shift-jisコード、UTFコードなど複数の種類の表現方法がある。したがって、たとえばEUCコードで文字を扱っているシステムで、UTFコードで書かれたテキストファイルを読もうとすると文字化けが起きて、ただしく表示されないことがある。ゆえに、システムで扱っている漢字コードと異なるコードで表現されたテキストファイルを読むためには、適切な漢字コードに変換する必要がある。

通常のテキストファイルは、文字の並び(文字列)として表現される。この文字としては、漢字やひらがななどの目に見える文字だけでなく、空白文字やタブ文字、改行文字などが含まれる。改行文字は、「その文字が置かれた位置から、改行して表示せよ」という意味を持った文字である。この改行文字は漢字コードのときと同じようにいくつかの種類がある。それらは、Unix改行形式、Windows改行形式、macintosh改行形式である。したがって、windows改行形式で書かれたテキストファイルをunixで読むために、unix改行形式に変換しなければならないことがある。

以下に、nkfコマンドの書式、オプションの一覧、使用例をまとめる。

[書式]
$ nkf オプション ファイル名 > 出力ファイル名

[オプション]
次のオプションで漢字コードを指定する。
j       Jis(ISO-2022-JP)コード
e     EUCコード
s     Shift-jisコード
w    UTF-8コード

次のオプションで改行コードを変換する。
Lu    Unix改行形式(LF)に変換
Lw   Windows改行形式(CR/LF)に変換
Lm    Macintosh改行形式(CR)に変換

その他
g    どの漢字コードで表現されたテキストファイルか推測する。

[使用例]
(1)漢字コードを推測する。
$ nkf -g  input.txt

(2)EUCコードに変換する。
$ nkf -e  before.txt   > after.txt

(3)UTFコード、unix改行形式に変換する。
$ nkf -w -Lu before.txt  > after.txt

キーワード

キーワード別に記事を分類してあります。クリックすると各キーワードに該当する記事たちが表示されます。

筆者について

自分の写真
趣味はコンピュータ、音楽、写真などです。