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を通しておけば、どこからでもそのスクリプトファイルを実行できるようになるので、便利です。

キーワード

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

過去の記事

筆者について

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