Posts Tagged ‘knoppix6.2’

KNOPPIX6.2でFbTerm

Monday, August 16th, 2010

フレームバッファ用端末エミューレータFbTermで、日本語の表示と入力、マウスのコピー&ペースト

環境

Thinkpad X40 2371-KJ1
Intel 82852/82855 GM/GME Graphics Controller
KNOPPIX 6.2 (X40 2ndHDD)
lang=ja vga=791 (/boot/grub/menu.lst)
LANG=”ja_JP.UTF-8″
LANGUAGE=”ja”
LC_MESSAGES=”ja_JP.UTF-8″ (/etc/environment, /etc/default/locale)

fbterm 1.1-1
uim-fep 1:1.5.3-1
uim-anthy 1:1.5.3-1
xfonts-unifont 1:5.1.20080914-1 PCF version of the GNU Unifont
gpm 1.20.4-3.1

条件

フレームバッファ
ffbtermにはフレームバッファが必要である。わたしにはフレームバッファのことがほとんどわからない。それでもフレームバッファが作動するかどうか、最低限の確認をしておこう。

$ ls /proc/fb
/proc/fb

/proc/fb が表示されれば、カーネルの問題はないらしい。フレームバッファが作動していれば、コンソールが高解像度で表示できる。/boot/grub/menu.lst (GRUB)や/boot/grub/grub.cfg (GRUB2)などの起動メニューに「vga=xxx」というオプションがついていればだいじょうぶだろう。つまり、よほど年代物のパソコンでなければきっとだいじょうぶなはずだ。

インストール

fbterm 1.1-1
fbtermは、フレームバッファに出力されるターミナルエミュレータというものらしい。Xウィンドウ環境のいらない端末アプリケーションと考えてよいのだろうか。基本的にはランレベル2〜4のコンソール画面と同じだが、Xウィンドウ上で動作する端末と同じように日本語を表示したり入力したりすることもできる。

上のリンク先からfbterm_1.1-1_i386.debをダウンロードして適当な場所に保存したら、そのディレクトリに移動して、次のコマンドでインストールする。それだけでインストールされた。

# dpkg -i fbterm_1.1-1_i386.deb

△ fbterm1.6
fbtermには1.6という新しいバージョンもあるが、インストールができなかった。apt-get からインストールしようとすると、libfontconfig1というファイルとの依存関係でつまずく。また、配布サイトからfbterm-1.6.tar.gzというファイルをダウンロードしてビルドしようとしたら、fontconfigが見つからないというメッセージが出た。fbterm-1.6のdebファイルをみつけてきて # dpkg -i をやってみるといいのかもしれない。

△ jfbterm
同じようなターミナルエミュレータにjfbtermというものもある。これはapt-getからインストールすることができた。jfbtermはfbtermよりも古い。動作が遅いらしい。gpmマウスも使えないらしい。そして、exitで終了すると画面がフリーズしてしまう。それでも試してみたところ、ちゃんとunifontの日本語が表示されて、uim-fepで日本語が入力できた。しかも、jfbtermでuim-fepを起動したら、exit時の不具合が解消された。それまでは別のコンソール画面からkillコマンドでプロセスを強制終了しなければならなかった。

△ jfbterm for FreeBSD
jfbterm for FreeBSDというものもある。jfbtermのさまざまな問題が解決されて、コンソール用のマウスもはじめから入っているらしい。DebianなどのLinuxにもインストールできるというのだが、ビルドに失敗した。makeコマンドを打つと「framebuffer.c:997: error ‘FB_MAJOR’ undeclared」といったエラーが出て、どう対処したらよいのかわからない。

uim-fep 1:1.5.3-1
uimというのは多言語が扱えるようにするしくみであり、コンソールではuim-fepを用いる。apt-getでインストールできる。

# apt-get install uim-fep

uim-anthy 1:1.5.3-1
uimは、各種の変換エンジンと組み合わせて使う。KNOPPIXのデフォルトの変換エンジンanthyを使うなら、uim-anthyをインストールする。

# apt-get install uim-anthy

xfonts-unifont
unifontは、fbtermやjfbtermなどのターミナルエミュレータで日本語が表示できるUTF-8用のフォントだ。文字エンコードがEUCなら、別のフォントが必要だ。

# apt-get install xfonts-unifont

gpm
gpmは、コンソール用のマウスポインタだ。ふつうのCUIコンソールでも使える。コピー&ペーストを試してみたが、なかなか便利だ。

# apt-get install gpm

「The package should be built with new debhelper to get trigger support」というきな臭いメッセージが出たが、一応インストールはできているようだ。これはバージョンアップで修正されるバグらしい。

設定ファイルや解説ページ

fbterm
インストールしたときのホームディレクトリにfbtermの設定ファイル ~/.fbtermrc ができる。わたしの場合は / 直下にできていた。「font-names=mono」というところにフォントを追加する。unifontを追加する場合は次の通り。

font-names=unifont,mono

マニュアルページには、ショートカットキー、基本的なマウスのコピー&ペーストの方法、起動メニューの追加項目などについての解説がある。

# man fbterm

コピー&ペーストの方法
ちなみにfbtermでのコピーは、左ボタンを押しながらマウスカーソルで範囲を選択する。ペーストは、そのまま右ボタンをクリックする。

uim-fep
/usr/share/uim/generic-key-custom.scm というファイルで、日本語入力のオン・オフのキーを設定する。uim-fepでは[半角/全角]キーが使えず、デフォルトのキー設定の [Shift]+[Space] も作動しないようだ。次のように編集して、入力切替のキーを [CTRL]+[J] に設定した。セミコロン「 ; 」は、コメントアウトのマークだ。デフォルトの行を編集でコメントアウトしている。

;;;(define-custom ‘generic-on-key ‘(“zenkaku-hankaku” “<Shift> “)
(define-custom ‘generic-on-key ‘(“zenkaku-hankaku” “<Control>j”)
‘(global-keys1)
‘(key)
(N_ “[Global] on”)
(N_ “long description will be here”))
 
;;;(define-custom ‘generic-off-key ‘(“zenkaku-hankaku” “<Shift> “)
(define-custom ‘generic-off-key ‘(“zenkaku-hankaku” “<Control>j”)
‘(global-keys1)
‘(key)
(N_ “[Global] off”)
(N_ “long description will be here”))

uim-fepにはマニュアルページがない。ヘルプを参照する。

# uim-fep -h

gpm
/etc/gpm.conf という設定ファイルがあるが、今のところいじらずにすんでいる。マニュアルページには、コマンドのオプションとマウスの詳しい操作法などの解説がある。

# man gpm

開始の手順

fbtermが「stdin isn’t a[sic] interactive tty!」のようなメッセージを出したりgpmが消しゴムになったりする問題が生じたら、起動の順番を少し変えてやれば解決するかもしれない。

1.コンソールモードに入る。
ランレベルをたとえば2に切り換えるなら # init 2 から [ALT]+[F2] 。LXDEに切り換えるには # init 5 。コンソール画面を開くだけなら [CTRL]+[ALT]+[F2] 。LXDEに戻るには [ALT]+[F5] 。

コンソールの言語設定を確認しておく。

# locale

LANGとLC_ALLが空欄で、ほかはすべて”POSIX”になっている状態ではないだろうか。

2.gpmの起動とエンコードの変更
コンソールマウスポインタのgpmは、あらかじめ起動しておいてもだいじょうぶだ。-m 以下のオプションでマウスの種類を指定している。ThinkPadのトラックポイントを使う場合は次の通り。

# gpm -m /dev/input/mice -t ps2

fbtermを起動する前に、必ずエンコードを日本語用に変更しておいた方がよさそうだ。UTF-8の場合は次の通り。

# export LANG=”ja_JP.UTF-8″

3.fbtermの起動

# fbterm

ここでfbtermを起動すれば、日本語が表示される。エンコードがEUCの場合は、もしかするとオプションをつけて起動する必要があるかもしれない。

4.uim-fepの起動
anthyで変換する場合は次の通り。

# uim-fep -u anthy

終了の手順

1.uim-fepの終了

# exit

# exit のかわりに [CTRL]+[D] でもよい。

2.fbtermの終了

# exit

fbtermの終了コマンドはuim-fepと同じだが、両方起動している状態で # exit と打ってみると、uim-fepの終了が先になる。fbtermの終了については、[CTRL]+[D] あるいは [CTRL]+[ALT]+[E] でもよい。

3.エンコードの変更
もとのコンソール画面に戻ったら、エンコードを変更する。

# export LANG=C

4.gpmの終了

gpm -k

gpmは急いで終了しなくてもよさそうだ。fbtermを終了した後のコンソール画面でgpmのマウスカーソルを動かすと、残っていたfbtermの表示を消しゴムのように消してしまうが、新しいコンソールの表示まで消したりすることはない。

まとめ

コンソール画面から短いコマンド1つか2つでfbtermとuim-fepとgpmをまとめて起動させられるような設定が作れるといいのだが。


参考記事

framebuffer
「フレームバッファコンソールの利用」(scratchpad.fc2web.com)

fbterm
「X不要で動作する高機能ターミナルエミュレータFbTerm」(SOURCEFORGE.JP 2008年09月04日)
「FBTerm」(KEN’S GNU/LINUX DIARY 2008年09月04日)
「コンソールで日本語の表示をするには」(Debian GNU/Linux スレッドテンプレ)
「CentOSでFbTerm」(エマノンの雑記帳 2010年8月7日)

uim-fep
「コンソールでの日本語入力 」(Debian GNU/Linux Sarge/Etch インストールメモ 2008年06月30日)
「コンソール」(Debian GNU/Linux スレッドテンプレ)

gpm
「コンソールで文字をコピー&ペーストするには」(北浦訓行
2002年3月21日 @IT)

「Re: Thinkpadでのgpmの設定方法」(武藤@Debianぷろじぇくと 2008年12月19日 debian-users@debian.or.jp)


2010年8月16日


コンソールモードでDropbox

Friday, August 13th, 2010

knoppixユーザのDropbox

以前の記事でKNOPPIX6.2にDropboxをインストールした(KNOPPIX6.2にDropboxをインストール)。関連するディレクトリやファイルがknoppixユーザのホームディレクトリにあり、Xウィンドウ(LXDE)環境で起動する。

/home/knoppix/Dropbox
/home/knoppix/.dropbox
/home/knoppix/.dropbox-dist
/home/knoppix/bin/dropbox
/home/knoppix/bin/dropbox.py

端末から $ dropbox start というコマンドを打つと、システムトレイにDropboxアイコンが表示されて同期が行われる。

この設定で不満があるとすれば、KNOPPIXのコンソールモードからDropboxを同期させられないことだ。そこで、コンソールモード用のDropboxを別にインストールしてみた。

コンソールモードでもknoppixユーザにログインすることはできる。しかし、dropboxプログラムはDropboxをインストールするユーザのホームディレクトリに置かなければならない。2種類のDropboxのプログラムを同じディレクトリに置くわけにはいかない。そこで、2つめのDropboxはrootユーザでインストールすることにした。 

rootユーザのDropbox

関連するディレクトリとファイルがrootユーザのホームディレクトリなどにある。Dropboxディレクトリはknoppixユーザと共有している。下の4つのファイルは、インストールと設定のときだけ使用した。

/root/.dropbox
/root/.dropbox-dist
/root/fakelib.c
/usr/local/bin/dropbox.py
/usr/local/bin/dropboxd
/home/knoppix/Dropbox

/root/dropbox-lnx.x86-0.7.110.tar.gz
/root/dbmakefakelib.py
/root/dbreadconfig.py
/root/dropboxdir.py

コンソールモードでのDropboxインストール

1.rootユーザログイン

(1)コンソールモード
コンソールモードの画面を開くだけなら、[Ctrl]+[Alt]+[F1〜F4] でいい。[Alt]+[F5] でXウィンドウ画面に戻る。

ランレベルを切り替える場合は、適当なプロンプトで # init [数字]というコマンドを打つ。たとえばランレベル2に切り替えるなら、# init 2 とした後、[Alt]+[F2] 。KNOPPIXのランレベル2〜4はどれでも同じだ。Xウィンドウに戻るには # init 5 。

コンソールモードでインターネット接続を確保するには、LXDEのシステムトレイのアイコンからNetwork Managerアプレットで接続の編集画面を開き、「Available to all users」を有効にしておく。

(2)rootユーザのパスワード
Xウィンドウの端末では $ su と打つだけでrootユーザになれるが、コンソールモードではパスワードを使ってログインする必要がある。ログインしないとただのrootだ。その状態でもDropboxをインストールできないことはないが、/ 直下にdropboxのプログラムを置くことになってしまう。rootでログインすれば、/root がrootユーザのホームディレクトリになるので、そこにインストールできる。

rootユーザのパスワードをセットしよう。もちろん端末でもできる。

# passwd root
Enter new UNIX password:[パスワード]
Retype new UNIX password:[パスワード]
passwd: password updated successfully

同じパスワードを2回入力する。はじめてパスワードを作るときは、これとは違うメッセージが出るかもしれない。

(3)メッセージの文字化け
コンソールモードでは日本語が表示されないので、日本語のメッセージが文字化けしている可能性がある。そのときは次のコマンドを試してみよう。メッセージが英語になる。

# export LC_MESSAGES=C

設定変更を確認する。

# locale

「LC_ALL=」が空になっていないとうまくいかない。次のようにすればLC_ALLの設定が消せる。

# export LC_ALL=

(4)rootユーザログイン

# login root
Password:[パスワード]

ログアウトするときは # exit 。

2.ファイルのダウンロード

以下のファイルが必要になるので、あらかじめIceweaselなどのブラウザでダウンロードして、/rootディレクトリに保存しておこう。コンソールモードからwgetコマンドでダウンロードすることもできる。

dropbox-lnx.x86-0.7.110.tar.gz
dbmakefakelib.py
dbreadconfig.py
dropbox.py
dropboxdir.py

一番上のtar.gzファイルは、バージョンアップすると名前が変わる。

3.dropboxのtar.gz圧縮ファイルの解凍

以下の作業は、コンソールモードでrootユーザにログインしておこなう。Xウィンドウ上の端末でやると、自動的にXウィンドウ用の設定が作動してしまうようだ。

# cd
~# script
~# ls -a
~# tar zxof dropbox-lnx.x86-0.7.110.tar.gz
~# ls -a

cdコマンドでホームディレクトリに移動する。

scriptコマンドで作業のログをとる。同じディレクトリ /root にtypescriptというログファイルができる。scriptを終了させるときは exit 。

lsコマンドは、ここに書いた以外でも頻繁に使う。lsコマンドの表示を参照しながら作業をするとよい。aオプションをつけると、隠れディレクトリやファイルも表示される。

tarコマンドでtar.gzファイルを解凍すると、.drpbox-distというディレクトリができる。

4.Xウィンドウの偽装

DropboxにはXウィンドウが必要なので、コンソールモードでDropboxが動作するようにXウィンドウを偽装する。

~# python dbmakefakelib.py
dropbox ran for 15 seconds without quitting – success?

この表示が出た後いつまでたってもプロンプトが返らないので、適当に終了させる。[Ctrl]+[c] を2回押せばいい。dbmakefakelib.pyファイルのエラーが表示されるが、気にしなくてよい。fakelib.cと.dropboxができる。

5.ホストIDの表示

~# python dbreadconfig.py
host_id = [ホストID]
last_revision = None
root_ns = None
schema_version = 6

6.ホストIDでdropbox.comにアクセス

~# exit
exit
Script done, file is typescript
~# init 5

いったんscriptを終了してGUIモードに切り替えるのは、/root/typescriptファイルを開いてホストIDをコピーするためだ。そうしなくてもいいなら、この手順は必要ない。

GUIモードに切り替えたKNOPPIXのブラウザでも別のパソコンのブラウザでもいいので、次のアドレスからdropbox.comにアクセスする。

https://www.dropbox.com/cli_link?host_id=[ホストID]

すでにDropboxのアカウントがあるので、[Log in]のタブからEmailアドレスとパスワードを入力してログインする。これでrootユーザのdropboxプログラムからDropboxアカウントに接続できるようになった。

7.Dropboxディレクトリの共有

本来はここで /root にDropboxディレクトリを作るのだが、すでにknoppixユーザのDropboxディレクトリが /home/knoppix にあるので、共有することにしよう。下の –setfolder というところには、ハイフンが2つついている。

~# python dropboxdir.py –setfolder=/home/knoppix/Dropbox
current dropbox path:
new dropbox path: /home/knoppix/Dropbox

Dropboxディレクトリの置き場所に決まりはない。しかし、knoppixユーザのパーミッションに制限があるので、/home/knoppix に置くのがよさそうだ。

もしもDropboxディレクトリのバックアップをとっていなければ、念のためにディレクトリのコピーを作っておこう。

/home/knoppix$ cp -rp Dropbox Dropbox~

8.dropboxデーモンの起動

コンソールモードで次のようにdropboxのデーモンを起動する。

~# .dropbox-dist/dropboxd &
もしかしたらすでに別の経路でデーモンが起動しているかもしれない。その場合は次のコマンドでプロセスを確認し、デーモンを終了させる。

# ps aux | grep dropbox
# kill -9 [プロセス番号]

ふつうは次のコマンドでデーモンがコントロールできる。

~# python dropbox.py [オプション]

オプションについてはhelpオプションで確認できる。

~# python dropbox.py help

ところで、コンソールモードでは dropbox.py start が作動しない。エラーが出てプロンプトが返らなくなる。プロンプトは [Ctrl]+[z] と [Ctrl]+[c] で返る。Xウィンドウの端末で dropbox.py start を試すと、Nautilusの警告が出るものの、ふつうにGUIモードでDropboxが起動する。要するに、コンソールモードでdropboxのデーモンを起動するときだけは、dropbox.pyではなくdropboxdを使わなければならないようだ。

9.コマンドのショートカット

dropboxdのシンボリックリンクとdropbox.pyのコマンドを作って/usr/local/binに置く。そうすることでいくらか入力の手間がはぶけ、どこからでもコマンドが実行できるようになる。/usr/local/bin のかわりに /root/bin ディレクトリを作ってパスを通してもいい。

~# ln -s /root/.dropbox-dist/dropboxd /usr/local/bin/dropboxd
~# chmod +x dropbox.py
~# mv dropbox.py /usr/local/bin

新しいコマンドについて確認する。

# ls -l /usr/local/bin
# which dropboxd
# which dropbox.py

10.新しいコマンドの使い方

dropboxデーモンの起動とDropboxの同期

# dropboxd &

起動以外のdropboxの操作

# dropbox.py [オプション]

まとめ

今回のインストール方法では、dbmakefakelib.pyで作ったfakelib.cのおかげで、コンソールモードでDropboxの同期ができる。しかも、Xウィンドウ(LXDE)環境では、DropboxがGUIモードでふつうに動作する。

ということは、わざわざ2本立てでDropboxをインストールしなくても、はじめから今回の方法でknoppixユーザのDropboxをインストールするのがよさそうだ。その場合、コンソールモードでDropboxを操作するのにいちいちknoppixユーザでログインする必要はない。

不満があるとすれば、コンソールモードでdropboxのデーモンを起動するときにdropbox.pyコマンドが使えないところだ。Dropboxのすべての基本操作がdropbox.pyのオプションでできると操作がわかりやすくなるのだが。


参考

「GUIの無いLinux(CentOS)にDropboxをインストールする」(インフラメンコ 2009年05月05日)
How To Install Dropbox In An Entirely Text Based Linux Environment (wiki.dropbox.com/TipsAndTricks/TextBasedLinuxInstall)


2010年8月13日


Dropboxの自動起動(autostart)

Tuesday, August 3rd, 2010

KNOPPIX 6.2
LXDE 0.4.2-1(デスクトップ)
dropbox.py(コマンド&インストーラ)
Dropbox v0.7.110

方法A: /home/knoppix/.config/lxsession/LXDE/autostart

1.dropboxコマンドのパスを確認

$ which dropbox

2.表題のLXDEディレクトリに、autostartという名前のファイルを作る。viでやってみよう。

~$ cd .config/lxsession/LXDE
~/.config/lxsession/LXDE$ vi autostart
i   (挿入モードに切り替え)
[Esc] (コマンドモードに切り替え)
:wq   (上書き保存で終了)

3.viでautostartファイルを作成すると空のautostartファイルが開くので、挿入モードに切り替えて、1で表示されたパスにstartオプションをつけたものを、たとえば次のように書き込む。

@/home/knoppix/bin/dropbox start

4.KNOPPIXを再起動すると、Dropboxが自動的に起動する。

方法B: home/knoppix/.config/autostart/dropbox.desktop

1.表題の.configディレクトリに、autostartというディレクトリを作る。

~$ cd .config
~/.config$ mkdir autostart

2.autostartの中に、dropbox.desktopというショートカットを作る。

~/.config$ cd autostart
~/.config/autostart$ lxshortcut -o dropbox.desktop

「名前」にdropbox.desktop、「コマンド」にdropboxのパスとstartオプションを入れる。たとえば/home/knoppix/bin/dropbox startと入れて、OKでよい。

3.KNOPPIXを再起動すると、Dropboxが自動的に起動する。

/etc/rc.localからDropboxが自動起動できなくて以上の方法にたどりついた。デスクトップのautostartの設定なら、起動スクリプトがほとんど1行も理解できないわたしでも直感的にわかる。

しかし、よく考えてみると、Dropboxが自動起動しなくてもさほど困ることはない。Dropboxの常駐を必要とするような使い方をしていないのだ。自動起動ができるとわかって満足したので、設定は無効にしておくことにする。ファイル名を少しでも変えれば動かなくなる。

~/.config/lxsession/LXDE$ mv autostart autostart~
~/.config/autostart$ mv dropbox.desktop dropbox.desktop~

Dropboxは必要なときにコマンドで起動することにしよう。

$ dropbox start

Dropboxの基本操作もコマンドでできる。

$ dropbox help


コンソールモードでのDropboxの起動は可能なのか?

Dropboxの通常の状態では、LXDEなどのXウィンドウを必要とするようだ。Dropboxが/etc/rc.localから自動起動できないのは、おそらくそのことが関係している。そこで気になるのは、Dropboxがコンソールモードでも起動できるのかということだ。

dropbox.pyでインストールしたDropboxは、ひょっとしたらコンソールモードで使えないのではないだろうか。Dropboxをrootでインストールしてコンソールモードで起動しようとしたところ、次のようなエラーが出た。

# init 2(ランレベル2 ([Ctrl]+) [Alt]+[F2])
# which dropbox
/root/bin/dropbox
# dropbox start
Starting Dropbox…Traceback(most recent call last):
File “/root/bin/dropbox”, line 821, in
main (sys_argv)
File “/root/bin/dropbox”, line 818, in main
return commands [argv[i]](argv[i+1:])
File “/root/bin/dropbox”, line 750, in start
if not start_dropbox():
File “/root/bin/dropbox”, line 502, instart_dropbox
stderr=sys.stderr, stdout=f, close_fds=True)
File “/usr/lib/python2.5/subprocess.py”, line 594, in __init__
errread, errwrite)
File “/usr/lib/python2.5/subprocess.py”, line 1153, in_execute_child
raise child_exception
OSError: [Errno 2] No such file or directory:”
# init 5(Xウィンドウ ([Ctrl]+) [Alt]+[F5])

コンソールモードというのは、サーバを管理しているわけではないユーザにとっても、いざというときにたいへん頼りになるものだ。たとえば、Xウィンドウが起動しなくてもコンソールモードで対処できるかもしれない。もっと日常的には、SSHでリモート接続をして遊ぶこともできる。コンソールモードでDropboxが起動できないか、もう少し調べてみたい。


参考

「 DebianのLXDEにDropboxクライアント」(クリックPAPAのPC備忘録 2009年7月6日)
「自動起動 (autostart)」(るるる〜るぶんつ 2010年5月29日)


2010年8月3日


KNOPPIX6.2でDropbox

Saturday, July 31st, 2010

なくてはならないDropbox

ThinkpadX40にKNOPPIX6.2をインストールしてから、まずトラックポイントの中ボタンスクロールを設定した。次にFlashplayerをインストールした。3番目にやったのが、Dropboxのインストールだ。

Dropboxというのは、複数のパソコンやOSのあいだで同一のフォルダを共有できるツールだ。一つのパソコンでDropboxのフォルダに何か変更を加えると、インターネットに接続を通じてほかのパソコンのDropboxフォルダが同期される。

たとえば職場と自宅で同じファイルを使って作業している場合、両方のパソコンにDropboxをインストールしておけば、そのファイルをノートパソコンやUSBメモリで持ち運ぶ必要がなくなる。職場のパソコン[1]のDropboxフォルダに保存したファイルは、自宅のパソコンのDropboxフォルダから取り出すことができる。インターネットに接続している自分のパソコンであれば、どのパソコンでも同じファイルの入ったDropboxフォルダを開くことができるのだ。さらに、dropbox.comにアクセスすれば、Dropboxがインストールされていないパソコンからでも自分のDropboxフォルダを開くことができる。

WindowsパソコンでのDropboxのインストールと使い方は、ほとんど直感的にできる。アカウントを作ると、無料で2GBのフォルダが使えるようになる。ほかのユーザからの紹介で登録した場合は、250MB容量を増やしてもらえる。紹介したユーザの容量も増える。下のリンクはわたしからの紹介だ。まだ使っていない人がいたら、ここからアカウントを作ってDropboxをインストールしてみませんか。

Welcome to Dropbox!


リンクからDropboxをインストールしてくださった方、ありがとうございました。Happy syncing! (追記 2010年8月9日)

KNOPPIXにDropboxをインストール


以下の記述については、修正しなくてはならない箇所が多いので、次回の記事で簡潔にまとめ直すことにしたい。(追記 2010年8月2日)

DropboxにはLinux版もある。UbuntuとFedoraなら、専用のインストールファイルがあるので簡単そうだ。KNOPPIXでは、多少手間はかかったが、以下のようにインストールすることができた。

1.dropbox.pyのダウンロード

~$ wget –no-check-certificate https://www.dropbox.com/download?dl=packages/dropbox.py

かならずしもwgetコマンドでダウンロードしなければならないわけではない。とにかくdropbox.pyをダウンロードすればよい。検索すればdropbox.comで見つかる。同じような機能で別の名前のついたpyファイルを試してみるのもいいかもしれない。ともかくdropbox.pyをダウンロードして、ホームディレクトリ/home/knoppixに保存した。

2.dropbox.pyの属性変更

~$ chmod 755 dropbox.py

dropbox.pyをdropboxコマンドとして使うために、実行可能にした。下のlsコマンドでchmodコマンド前後での属性の変化を確認しておくとよい。

~$ ls -l dropbox.py

3.dropbox.pyをdropboxコマンドに変更 [修正a]

~$ su
~# mv dropbox.py /usr/local/bin/dropbox

ホームディレクトリのdropbox.pyファイルを/usr/local/binディレクトリへ移動し、さらにファイル名をdropboxに変更している。これがdropboxコマンドだ。保存場所は、必ずしも/usr/local/binである必要はない。コマンドのオプションを確認しておこう。

~$ dropbox help

4.Dropboxのインストール

~$ dropbox start -i

これで小さなポップアップが開き、OKをクリックすると自動的にDropboxがダウンロードされて、下のような「Welcome to Dropbox」の画面が出る。

すでにDropboxのアカウントがあるものとしよう。次の画面では、登録したEmailアドレスとパスワードを入れる。次に2GB Freeを選ぶ。最終的に「That’s It!」の画面になるので、「I want to choose where to put my Dropbox folder」を選んで、Dropboxフォルダの保存場所を確認する。デフォルトで/home/knoppix/Dropboxになっていたので、OKで完了した。

いつのまにかインストールされたGNOMEのファイルマネージャNautilus 2.28.1が起動する。もしかすると端末にNautilus関連のエラーが出るかもしれないが、気にしなくてよい。端末のプロンプトは[Ctrl]+[c]で返ってくる。しばらく様子を見るつもりだが、NautilusはKNOPPIXの標準のアプリケーションではないので、慎重に扱った方がいい。ただでさえNautilusは重くて評判が悪い。端末からDropboxフォルダを操作するのにこしたことはない。Nautilusをアンインストールして、かわりにPCManファイルマネージャをNautilusのリンクをつけて使うという方法もあるようだが、PCManではDropboxの右クリックメニューが出ないかもしれない。

5.Dropboxの自動起動 [修正b]

# vi /etc/rc.local

viなどで/etc/rc.localファイルを編集し、末尾に次の一行を追加する。

/usr/local/bin/dropbox start

dropbox startだけでも動くはずだが、rc.localファイルにはコマンドのフルパスを書いておいた方がよろしいらしい。dropboxコマンドの保存場所によっては、行頭にsudoを付け足す必要がある。

以上の方法なら、たいていのDebian系のLinuxOSでも同じようにできそうだ。あらかじめpythonがインストールされていることを確認されたい。


^  職場のパソコン
職場のパソコンもさまざまだろうが、わたしの職場では、管理者の権限を侵さないかぎりで、自分のアカウントのカスタマイズが黙認されている。WindowsのパソコンでProgram Filesにアプリケーションをインストールするためには管理者の権限が必要だが、Dropboxはマイドキュメントみたいなところにもインストールできるのだ。ただし、管理者がその気になればパスワードなどを調べることもできるはずなので、あまり人に見られたくないものや重要なものを置くわけにはいかない。



修正点

KNOPPIXを再起動したら、Dropboxの様子が変化していた。

a^  ホームディレクトリにbinというディレクトリができて、その中にdropboxコマンドができている。下のようにパスが確認されたので、はじめに作った/usr/local/binのdropboxコマンドの方は削除してもだいじょうぶだ。

$ which dropbox
 
/home/knoppix/bin/dropbox

つまり、はじめから/home/knoppix/bin/dropboxを作るのがのぞましい。実は参考にした記事ではそうしていたのだが、ホームディレクトリにパスを通していいものか迷ってそうしなかった。

さらにホームディレクトリの隠しファイルを表示すると、.dropboxとか.dropbox-distとかいうディレクトリができている。何度か探したときにはたしかに存在しなかったのに、いつできたのだろう。

~$ ls -a

b^  このままでは自動起動もしないので、dropboxコマンドの新しいパスに合わせて、/etc/rc.localファイルを訂正しなくてはならない。

# vi /etc/rc.local
……
/home/knoppix/bin/dropbox start


* 自動起動については、パスを修正してもうまくいかないので、再検討しなければならない。(追記 2010年8月2日)



参考サイト


Dropbox for Linux
Dropbox Forums

dropbox.comi以外にもさまざまなサイトの記事を参考にした結果、この記事で紹介しているようなやり方になった。どこかにまったく同じ方法が書かれていたわけではない。したがって、おかしなことをやっている部分がほかにもあるかもしれない。参考にする人は気をつけてください。


2010年7月31日


KNOPPIX6.2で中ボタンスクロール

Friday, July 30th, 2010

UbuntuだろうがKNOPPIXだろうが、ThinkpadX40にLinuxのOSをインストールしたらまっ先におこないたい設定がある。それは、トラックポイントの中ボタンでWebページのスクロールができるようにすることだ。

KNOPPIX6.2をX40にインストールすると、NEC Lavie L LL750/2Dのときとはちがって、マウスカーソルがちゃんとあらわれる。時刻も合っている。そして、デスクトップ画面上で中ボタンスクロールをすると、なんと3Dのデスクトップキューブが回転する。

しかし、ブラウザIceweasel(Firefox)の画面上で中ボタンスクロールができない。そこで、以下のような設定をおこなった。

1./etc/hal/fdi/policy/mouse-wheel.fdiファイルの作成

$ cd /etc/hal/fdi/policy
/etc/hal/fdi/policy$ su
/etc/hal/fdi/policy# vi mouse-wheel.fdi

2.mouse-wheel.fdiファイルに以下の内容を貼りつけて保存

<match key=”info.product” string=”TPPS/2 IBM TrackPoint”>
<merge key=”input.x11_options.EmulateWheel” type=”string”>true</merge>
<merge key=”input.x11_options.EmulateWheelButton” type=”string”>2</merge>
<merge key=”input.x11_options.XAxisMapping” type=”string”>6 7</merge>
<merge key=”input.x11_options.YAxisMapping” type=”string”>4 5</merge>
<merge key=”input.x11_options.ZAxsisMapping” type=”string”>4 5</merge>
<merge key=”input.x11_options.Emulate3Buttons” type=”string”>true</merge>
</match>

3.KNOPPIXの再起動

# shutdown -r now

これでWebブラウジングが快適にできるようになった。


参考記事

「Ubuntu 9.10 on Thinkpad X61 + trackpoint付USBキーボード」(Ubuntu日本語フォーラム
How to configure the TrackPoint (ThinkWiki)


付記

ThinkWikiの参考記事に網羅されている方法をいろいろ試してみたが、どれもKNOPPIX6.2には通用しなかった。上に紹介したのが唯一成功した方法だ。Ubuntu日本語フォーラムのrenさんありがとう。

うまくいかなかった方法は次の通り。

A.GPointing Device Settingsツール
未解決の依存関係が生じてインストールができない。
 
B.usr/lib/X11/xorg.conf.d/20-thinkpad.conf ファイルの作成
usr/lib/X11にxorg.conf.dというディレクトリが存在しない。

C.Configuration using xinput
xinputコマンドにset-int-propというオプションがない。

D./etc/udev/rules.d/99_trackpoint.rulesファイルの作成
ファイルを作成して再起動したが効果がない。

ここまでやった後、mouse-wheel.fdiファイルを作成してついに成功した。ThinkWikiの記事には、まだ試していない方法も紹介されている。


2010年7月30日 ▲ 


KNOPPIXのインストールとUbuntuのGrub2

Thursday, July 29th, 2010

Thinkpad X40 2371-KJ1
X4 UltraBase
Pioneer DVR-XD09J

KNOPPIXのインストール

ThinkpadX40のセカンドHDDにKNOPPIX6.2をインストールした。前回の記事に書いたように、あらかじめGPartedで未フォーマットのパーティションを作っておいた。そうすると、KNOPPIXのインストーラ0wnがパーティションを認識してReiserFSでフォーマットしてくれる。

インストールは30分ほどで完了した。以前のLavie L LL750/2Dでは1時間以上かかり、しかも3回のうち2回は途中でエラーが出てはじめからやり直さなければならなかったことを考えると、特権的なフリーパスあるいは通行手形でも手に入れた気分だ。

OSがインストールされると、さらにブートローダのGrubをインストールするかどうか選択しなければならない。すでにUbuntuのブートローダがあるので、インストールしないことにした[1]。以上でDVD-KNOPPIXのセッションは終了して、KNOPPIXのブートの設定をおこなうためにUbuntuを起動する。

UbuntuのブートマネージャGrub2

X40にインストールしたすべてのOSの起動は、Ubuntuのブートローダからおこなう[2]。Ubuntu10.04のデフォルトのブートローダはGrub2だ。KNOPPIXやPuppyLinuxのブートローダはただのGrubだ。Ubuntuの/boot/grubディレクトリにmenu.lstが見あたらないので調べてみたら、そういうことだった。そんなことも知らなかったのに今までよくUbuntuが問題なく使えたものだ。

Grub2の基本的な設定はコマンドでおこない、設定ファイル(/boot/grub/grub.cfg)を編集したりはしない。

Grub2のブートメニューにKNOPPIXを追加

まず、現在のブートメニューを確認しておこう。

$ grep menuentry /boot/grub/grub.cfg

KNOPPIXが正しくインストールされていれば、次の2つのコマンドでGrub2のブートメニューにKNOPPIXが自動的に追加される。

$ sudo grub-mkdevicemap

$ sudo update-grub

grepコマンドで/boot/grub/grub.cfgファイルにKNOPPIXが追加されたことを確認したら、Ubuntuを終了してKNOPPIXを起動してみよう。これで起動すれば、KNOPPIXのインストールは完了だ。


GRUB2ブートメニューの調整

ThinkpadX40のGRUB画面のメニューがこんな風になった。

GNU GRUB version 1.98-1ubuntu7
 
Ubuntu, with Linux 2.6.32-24-generic
Ubuntu, with Linux 2.6.32-24-generic (recovery mode)
Ubuntu, with Linux 2.6.32-22-generic
Ubuntu, with Linux 2.6.32-22-generic (recovery mode)
Ubuntu, with Linux 2.6.32-21-generic
Ubuntu, with Linux 2.6.32-21-generic (recovery mode)
Ubuntu, with Linux 2.6.31-21-generic
Ubuntu, with Linux 2.6.31-21-generic (recovery mode)
Memory test (memtest86+)
Memory test (memtest86+, serial console 115200)
Microsoft Windows XP Professional (on /dev/sda1)
KNOPPIX (on /dev/sdb6)

ふだん使うのは一番上のUbuntuと一番下のMicrosoft Windows XP ProfessionalとKNOPPIXの3つだけだが、上と下がずいぶんと離れている。これでは不便なので、なんとかしたい。

まず考えられるのは、不要なメニューを消すことだ。Ubuntuのメニューだけで8つもあるのはどう考えても多すぎる。ただし、古いカーネルのメニューはひとつくらい残しておいた方がよいかもしれない。新しいカーネルの不具合に古いカーネルのUbuntuを起動して対処できたことが実際にあった。

メニューを消すのはそのうちに試してみるとして、ここではメニューの順番を変えることにする。KNOPPIXとWindowsXPを一番上に持ってくることにしよう。

メニューエントリの順番の入れ替え

Grub2のメニューエントリのおおまかな順番は、/etc/grub.dというディレクトリのファイル名にしたがって決められている。ファイル名には番号が割りふってある。

$ cd /etc/grub.d
$ ls

00_header 05_debian_theme 10_linux
20_memtest86+  30_os-prober
40_custom  README

Grub2の設定ファイル/boot/grub/grub.cfgを見ると、/etc/grub.dのファイルが番号順に読み込まれていることがわかる。

$ gedit /boot/grub/grub.cfg

 
(略)
### BEGIN /etc/grub.d/00_header ###
(略)
### BEGIN /etc/grub.d/05_debian_theme ###
(略)
### BEGIN /etc/grub.d/10_linux ###
menuentry ‘Ubuntu, with Linux 2.6.32-24-generic’ –class ubuntu –class gnu-linux –class gnu –class os {
(略)
### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry “Memory test (memtest86+)” {
(略)
### BEGIN /etc/grub.d/30_os-prober ###
menuentry “Microsoft Windows XP Professional (on /dev/sda1)” {
(略)
menuentry “KNOPPIX (on /dev/sdb6)” {
(略)
### BEGIN /etc/grub.d/40_custom ###
(略)

Ubuntuのメニューエントリは10_linuxの項目に書かれている。Memory testは20_memtest86+、WindowsXPとKNOPPIXは30_os-proberだ。そこで、ファイル名を変更して、30_os-proberの30を10よりも小さい数字、たとえば07にすれば、WindowsXPとKNOPPIXがUbuntuよりも先に読み込まれてブートメニューの先頭に来るはずだ。

$ cd /etc/grub.d
$ ls
$ sudo mv 30_os-prober 07_os-prober
$ sudo update-grub

grub.cfgの更新を確認したら、再起動してGRUB画面を見てみよう。

GNU GRUB version 1.98-1ubuntu7
 
Microsoft Windows XP Professional (on /dev/sda1)
KNOPPIX (on /dev/sdb6)
Ubuntu, with Linux 2.6.32-24-generic

Ubuntu, with Linux 2.6.32-24-generic (recovery mode)
Ubuntu, with Linux 2.6.32-22-generic
Ubuntu, with Linux 2.6.32-22-generic (recovery mode)
Ubuntu, with Linux 2.6.32-21-generic
Ubuntu, with Linux 2.6.32-21-generic (recovery mode)
Ubuntu, with Linux 2.6.31-21-generic
Ubuntu, with Linux 2.6.31-21-generic (recovery mode)
Memory test (memtest86+)
Memory test (memtest86+, serial console 115200)

デフォルトOSの設定

GRUBメニューの画面が開いたとき、カーソルは一番上のMicrosoft Windows XP Professionalにあたっている。そのまま数秒経過すると、自動的にWindowsXPが起動する。それが望ましくなければ、メニューの順番を変えなくても、カーソルがほかのOSにあたるように設定できる。

単純にWindowsXPとKNOPPIXの順番を入れ替えてもいいのだが、そのやり方がわからない。

/etc/default/grubというファイルを編集してデフォルトのOSを設定すると、カーソルがそのOSのメニューにあたるようになる。UbuntuのせいかX40のせいかどうもviの勝手がちがうので、geditで編集した。

$ sudo gedit /etc/default/grub

「GRUB_DEFAULT=0」という行があるので、「0」のところにOSの名称を入れる。OS名は、grub.cfgファイルを開くと「menuentry」の後ろに引用符でくくられているので、それをコピーして貼りつけるとよい。ここではKNOPPIXをデフォルトのOSにする。

GRUB_DEFAULT=”KNOPPIX (on /dev/sdb6)”

上書き保存でgeditを終了したら、update-grubコマンドで変更を反映させる。

$ sudo update-grub

これでGRUB画面の使い勝手がだいぶよくなった。


脚注

1^  ブートローダのインストール
ここでKNOPPIXのブートローダのインストールを選択することもできるのだろうと思う。その場合、マルチブートの設定はKNOPPIXのGrubでおこなうことになる。すでにインストールされているWindowsXPとUbuntuのブートメニューは自動的に生成されるはずだ。/boot/grub/menu.lstを直接編集して、メニューを追加したり修正したりすることもできる。しかし、マルチブートの仕組みがよくわからないので、今まで安定して動作しているUbuntuのブートローダをそのまま使うことにした。

2^  ウルトラベースのブートローダ
UbuntuのブートローダGrub2は、ウルトラベースのセカンドHDDにある。セカンドHDDにはUbuntuとKNOPPIX、ThinkpadX40本体のHDDにはWindowsXPがインストールされている。ウルトラベースを外した状態でX40を起動すると、GRUB画面はあらわれず、直接WindowsXPが起動する。


参考記事

「複数のOSを使う(3)GRUBを使ったデュアルブート,GRUBの設定」(Ubuntu Weekly Recipe 第97回 村田信人 2009年11月18日)

「Grub 2 入門」(経済学101 青木理音)


2010年7月29日


DVD-KNOPPIXでパーティションサイズ変更

Wednesday, July 28th, 2010

Thinkpad X40 2371-KJ1 
X4 UltraBase 
Pioneer DVR-XD09J
 

X40セカンドHDDのパーティション
ThinkpadX40のウルトラベースのセカンドHDDにKNOPPIXなどをインストールして遊ぶことにしよう。すでにUbuntuはインストールされている。UbuntuのGPartedでみると、X40のセカンドHDDはsdbというデバイスだ。X40本体のHDDがsdaになる。

/dev/sda 74GB
   /dev/sda1 74GB    ntfs (WindowsXP)
/dev/sdb 298GB
   /dev/sdb1 25GB    extended
     /dev/sdb5 25GB    ext4 (Ubuntu 10.04.1 LTS)
   /dev/sdb2 2GB    linux-swap
   未割り当て 270GB

270GBの未割り当て領域には、もともとWindowsXP用のドライブ(パーティション)が2つあった。そこをひとまず空にして、パーティションは削除した。LinuxOSをいくつかインストールできるようにパーティションを分割するためだ。

パーティションが追加できない
ところが、新しいパーティションがどうしても2つしか作れない。調べてみると、1つのハードディスクに基本パーティションは全部で4つしか作れないことがわかった。基本パーティションのうち1つだけは拡張(extended)パーティションにすることができる。拡張パーティションの中にはいくらでも論理パーティションが作れる。

そこで/dev/sdbの構成を確認すると、Ubuntuがインストールされているsdb5というパーティションがそっくりそのまま拡張パーティションsdb1になっていた。ということは、5つ以上のパーティションを作りたかったら、sdb5のサイズを小さくして、sdb1の余った領域にパーティションを追加しなくてはならないことになる。しかし、sdb1のサイズは25GBしかないので、とてもそんな余裕はない。

どうしてこんなことになったのかというと、Ubuntuをインストールするためにパーティションを作ったときにパーティションのことが何もわかっていなかったからだ。

拡張パーティションのサイズ拡大
なんとかして拡張パーティションsdb1のサイズを大きくしたい。しかし、Ubuntuをインストールしなおしたりするのはご免だ。UbuntuのGPartedをいじったりWindowsXPを起動してディスクの管理画面を開いたりして悩んでいるうちに、すばらしいアイディアがひらめいた。そうだ、KNOPPIXのライブDVDでGPartedを操作すればよいのだ。

外付けのDVDドライブからKNOPPIX6.2を起動してやってみたら、いとも簡単にできた。拡張パーティションsdb1のサイズを144GBに拡大して、その中にとりあえず18GBのパーティションsdb6を作成した。ここにKNOPPIXをインストールすれば、Ubuntuと同じようにKNOPPIXも起動するのではないか。さらに、拡張パーティションsdb1の未割り当て領域がまだ101GBもあるので、LinuxOS用のパーティションだったら単純計算であと5つは作れる。そんなにたくさんOSをインストールしてもだいじょうぶなのだろうか。それとも、ブート用のパーティションはいくつまでとか、やはり制限があるのだろうか。

ともかくこうして、DVD-KNOPPIXはとても便利だということがわかった。もちろんUbuntuのDVDやUSBでも同じことができたわけだが。


2010年7月28日


Thinkpad X40の登板

Tuesday, July 27th, 2010

Oh, when the sun beats down and burns the tar up on the roof, and your shoes get so hot you wish your tired feet were fire-proof…
(“Under the Boardwalk” by K.Young-A.Resnick)
Lavie L LL750/2Dのダウン
午前中から室温が30℃を超えている。個人的に暑いのは我慢できる。問題はパソコンだ。KNOPPIX6.2をインストールしたNECのLavie L LL750/2Dは、起動するとすぐに画面が乱れるようになった。もともとこの問題のせいで実家で廃棄されたパソコンなのだ。ちょっと気温が上がったら、やっぱりいかれてしまった。これでは当分使い物にならない。

そうでなくても、Lavie L LL750/2DにKNOPPIX6.2をインストールして使うのはたいへんだった。なにしろ、インストールには何度も失敗する。アプリケーションは満足に動かない。ブラウザはフリーズする。それをなんとか動かすために、作業はなるべくコマンドモードでおこなった。そのおかげで、Linuxコマンドの世界に足を踏み入れることができた。これは、コマンドを使うことが自己目的化してしまうくらい楽しい世界だ。もしもKNOPPIXをインストールしたのがもう少しまともなパソコンだったら、わたしはいつまでたってもいくつかのGNOMEアプリケーションとインターネット・ブラウザしか使わずにいたことだろう。ThinkpadX40にインストールしたUbuntuでそうしているように。

X40の登板
このところほとんど使っていなかったもう一台のノートパソコンを使うときがきた。IBMのThinkpadX40だ。かつてはじめてノートパソコンを買ったとき、パソコンに詳しい友人が適当に1万円ほどのThinkpadをみつくろってくれたことがある。それときにノートパソコンといえばThinkpadというすりこみが成立したようだ。そのはじめてのThinkpadについては、機種名すらわからない。なかなかパソコンが使いこなせなくてしばらくほおっておいたら、いつのまにかカビがはえた。昨年Yahooオークションで買ったX40には、以下のように相当のお金を注ぎこんでいる。カビをはやすわけにはいかない。

X40関連の主な支出(諸費用込み)
X40 2371-KJ1 PenM/1.0GHz/20G/256M/XP 13,800円
IODATA SDD333-512M/EC SODIMM DDR PC2700 512MB 2,100円
Buffalo DN333-A1G/E SODIMM DDR PC2700 1GB 4,300円
Wakamatsu ZIFコネクタ 4,200円
TOSHIBA MK8025GAL(80GB) 8,900円
ウルトラベースX4 + CD-RW/DVD + 外付けFDD 7,900円
セカンドHDDアダプター 3,100円
WESTERN DIGITAL WD3200BEVT (320GB) 6,300円

合計    50,600円

X40とウルトラベース
X40自体は安く入手できる。古い機種だからというだけでなく、1.8インチというHDDの規格に問題があるからだ。それ以外は申し分ないので、割り切って使えばよい。X40という機種に特別な思い入れがあるわけではない。たとえばHDDをSSDに換装するくらいなら、その分の予算で2.5インチHDDの機種を選んだ方がいいと思う。

ウルトラベースにも一長一短がある。せっかくX40はスリムで軽量なのに、ウルトラベースをつけたら台無しだ。わたしはウルトラベースにセカンドHDDを入れている。マルチブートにするのに、セカンドHDDにほかのOSをインストールするのが一番楽そうだったのだ。しかし、ウルトラベースをつけて持ち歩くのは重くてかなわない。

このX40とウルトラベースをせいぜい活用して、まずはKNOPPIX6.2をインストールしてみよう。


2010年7月27日 ▲ 


ログファイルのローテーション(2)

Saturday, July 3rd, 2010

« KNOPPIXのログを見る

B.タイマー起動による自動ローテーション

決まった時間になるとログファイルのローテーションが自動的におこなわれるように設定してみよう。

1.cronの自動起動

/etc/rc.localファイルの末尾に次の一行を追加する。

sudo /etc/init.d/cron start

端末からviエディタで編集するのが簡単だ。

$ su
# vi /etc/rc.local
i      ・・・挿入モード
[Esc]  ・・・コマンドモード
:wq   ・・・上書きして終了

cronというのは、プログラムのスケジューラだ。cronを起動しておくと、毎時、毎日、毎週、毎月の特定の時間に、特定のプログラムが実行される。

2.crontabの設定

cronのスケジュールは、/etc/crontabファイルに書かれている。KNOPPIX6.2のデフォルトでは、次のようになっていると思う。

# m h dom mon dow user   command
17  *  *  *  *  root   ……  /etc/cron.hourly
25  6  *  *  *  root   ……  /etc/cron.daily
47  6  *  *  7  root   ……  /etc/cron.weekly
52  6  1  *  *  root   ……  /etc/cron.monthly

毎日実行されるcron.dailyのプログラムは6時25分、毎週実行されるcron.weeklyは日曜日の6時47分に設定されている。この設定は、viなどでcrontabを編集すれば変更することができる。

わたしはcron.hourlyの行頭に#マークをつけて、毎時のスケジュールを無効にしている。それは、本末転倒のようだが、ログファイルを見やすくするためだ。

3.cron.dailyとcron.weekly

/etc/cron.dailyおよび/etc/cron.weeklyというディレクトリに、それぞれsysklogdというファイルがある。syslogdのログファイルのローテーションは、これら2つのファイルの設定にもとづいて実行される。

/etc/cron.daily/sysklogdを開くと、次のような記述がある。

for LOG in $logs
do
 if [ -s $LOG ]; then
   savelog -g adm -m 640 -u root -c 7 $LOG >/dev/null
 fi
done

savelogというのが、ログファイルのローテーションを行うコマンドだ。$LOG >/dev/nullという部分がさっぱり理解できないが、-g,-m,-u,-cのオプションについては、savelogのマニュアルページに解説がある。

$ man savelog

マニュアルページには、最新のログファイルと2番目(file.0)以外は圧縮されるということも書かれている。

gzipで圧縮されてgzという拡張子がついたログファイルは、GNOMEアプリケーションの「ログ・ビューア」なら、ふつうに開くことができる。

端末では、lessなどのかわりにzmoreコマンドを使えば表示できる。

コンソールモードでは、zmoreだとファイルの一部しか表示されないが、次のようにパイプでzmoreとlessを組み合わせることでうまく表示できた。

/var/log# zmore file.*.gz | less

savelogの-cオプションは、古いログファイルをいくつ保存するか指定する。デフォルトでは7日分だ。編集して数字を大きくすることもできる。

/etc/cron.weekly/sysklogdの記述もほとんど同じだ。デフォルトで保存されるログは4週間分なので、編集して数字を変えることもできる。

4.syslogd-listfiles

それぞれのログファイルのローテーションが、cron.dailyから行われるのかcron.weeklyから行われるのかということは、syslogd-listfilesというコマンドで確認できる。

$ syslogd-listfiles
 
/var/log/syslog

$ syslogd-listfiles –weekly
 
/var/log/usr.log
/var/log/daemon.log
/var/log/messages
/var/log/debug
/var/log/mail.log
/var/log/auth.log
/var/log/lpr.log
/var/log/kern.log
/var/log/cron.log

syslogd-listfilesのオプションについての解説は、マニュアルページに書かれている。

$ man syslogd-listfiles

オプションなしで表示された/var/log/syslogは、cron.dailyからローテーションが実行される。–weeklyオプション(ハイフン2つ)で表示されたそれ以外のログファイルは、cron.weeklyから実行される。

この設定は、cron.weeklyファイルの次の記述に関係している。

logs=$(syslogd-listfiles –weekly)

そこで、たとえば–weeklyオプションの部分を変更することで、すべてのログファイルのローテーションをcron.weeklyから実行することもできそうだ。それには、–weeklyを-aに変えればいいはずだ。さらに、/etc/cron.daily/sysklogdの設定は無効にした方がいいだろう。

syslogd-listfilesのdailyとweeklyの区分を変更する方法については、どうしたらいいのかわからない。


C.手動起動による自動ローテーション

savelogとsyslogd-listfilesのしくみがわかれば、cronなしでもログファイルのローテーションを実行することができる。

ログファイルのローテーション目的以外にcronを起動しておく理由がなければ、/etc/rc.localのcronの起動設定は無効にしてしまおう。cronのスケジュールが実行されると、わたしのパソコンなどは20分近くフリーズに近い状態が続いてしまう。

cronの起動設定を無効にするには、viなどのroot権限で/etc/rc.localファイルを開き、cronの行の頭に次のように#マークをつける。

# sudo /etc/init.d/cron start

そして、適当なタイミングでcron.dailyとcron.weeklyのsysklogdをそれぞれ手動で実行する。

cron.dailyからローテーションが実行されるsyslogの場合は、次の通り。

# /etc/cron.daily/sysklogd

syslog以外のログファイルについては、次の通り。

# /etc/cron.weekly/sysklogd

前回ためしたAの方法は勘弁してもらうとして、BとCの方法には一長一短がある*。もうしばらく試行錯誤してみよう。

* Cの方法はかなりよさそうだが、欠点もある。最大の問題は、/var/logディレクトリにあるsyslogdによるもの以外のログファイルのローテーションに対応していないことだ。それらは空だったり急に肥大化することのなさそうなファイルだが、時々チェックしなければならない。よくよく考えてみれば、これはむしろ望ましいことかもしれない。面倒くさいけれど。


今回助けられたDebianのお告げ

Debianのsyslogのローテーションがlogrotate*の設定で行われるというのは、完全に間違っています。

Debian syslog rotation is not controlled by logrotate at all, please don’t mislead the OP when you’re not sure with it. You might making him going to the wrong direction in solving this and waste a lot of his time.

(by sloganyart 07-31-2008 “How to change Debian log rotation of syslog and daemon.log” linuxquestions.org

* /etc/logrotate.conf, /etc/logrotate.d

the OPというのは誰なんだろう。himというからにはどうやら男のようだ。危ないところだったらしい。


2010年7月3日 ▲ 


ログファイルのローテーション(1)

Wednesday, June 30th, 2010

« KNOPPIXのログを見る

KNOPPIX6.2で、ログファイルが記録されるように設定した。そのまま放っておくと、ログファイルはディスク容量が許すかぎり大きくなっていくらしい。そこまでいかなくても、長いスクロールをしないといけないのはわずらわしい。適当なところでログファイルを分割することにしたい。さらに、古いファイルから順次削除することにすれば、スペースが圧迫される心配もなくなる。

ログファイルのローテーションには、次の3通りの方法がありそうだ。順番に試してみることにしよう。

A.完全手動のローテーション
B.タイマー起動による自動ローテーション
C.手動起動による自動ローテーション

A.完全手動のローテーション

まず、ログファイルの名前をひとつずつ変更するという原始的な方法がある。こんなやり方をしている人はいないだろうが、Linuxのファイルのしくみやコマンドの操作に慣れるためなら悪くないかもしれない。どんなやり方をしようと、その人の自由なのだ。

1.ログファイルの確認

$ cd /var/log
/var/log$ ls -l -R | less

/var/logディレクトリとそのサブディレクトリにあるファイルは、wtmpをのぞいてすべてがログファイルのようだ。たちまちふくれあがるファイルもあれば、いつまでたっても空のファイルもある。

lsコマンドにl(エル)オプションをつけることで、ファイルのサイズが確認できる。Rオプションをつけると、サブディレクトリのファイルも見渡すことができる。パイプとよばれる縦棒の|lessコマンドをつなげると、長い表示でも最初の方の途切れる心配がなくなる。lessで開いた画面は、qのキーで閉じることができる。

2.ファイル名の変更
ログが記録されるファイル名は/etc/syslog.confに指定されているので、ファイル名を変えてしまえばそのファイルにログが記録されることはなくなる。保存しておく古いログファイルにはどんな名前をつけてもよい。原始的なこのやり方で通すなら、ファイル名の末尾に年月日でも付け足しておけばわかりやすくなりそうだ。

たとえば、messagesファイルの名前を変更してみよう。

/var/log$ su
/var/log# mv messages messages.100630

あらためてlsコマンドで/var/logディレクトリの中身を確認すると、messagesがなくなって、かわりにmessages.100630ができている。

mvコマンドというのは、何かの拍子に重要なファイルを上書きしてしまう可能性がないわけではない。操作は元に戻せないので、cprmなどとともに注意の必要なコマンドだ。

3.新しいログファイルの作成
messagesの新しいログファイルは、KNOPPIXを再起動するか、sysklogdを再起動すれば、自動的に作成される。だから、結局このやり方は「完全手動」というわけではなかった。ありがたいことに。

sysklogdを再起動するコマンドは、ログを記録する設定をしたときに/etc/rc.localファイルに書き込んだものと同じだ。それが、KNOPPIXが起動するたびに実行されている。

# /etc/init.d/sysklogd restart

以上で、messagesのローテーションが完了した。しかし、同じように名前を変更しなければならないログファイルはまだまだある。どうやら、このやり方はあまり現実的でないようだ。

思うにコンピュータというのは、そのような手間を省くための道具として開発されてきたものなのだろう。一つ一つのコマンドだって十分魔法のような道具ではあるのだが、もっと手間を省くことができるものなら省かせてもらうことにしよう。


2010年6月30日 ▲ 

ログファイルのローテーション(2) »