少し悩まされた。
その理由は、はじめてみるエラーだったということと、コードを見直しても間違いが見えなかったからだ。
googleで検索すると、このエラーメッセージが教えてくれているのは
全角が混ざっている
ということのようだ。そこでスペースを調べると全角の空白が混ざっていた。コードを見直しても気がつかないわけだ。
2007年11月30日金曜日
2007年11月29日木曜日
~/.ssh/known_hosts
Linuxからあるマシンにsshで接続しようとした際の話。
$ssh -X [ユーザー名]@[サーバ名]
として、接続しようとしたが以下のようなエラーメッセージがでた。
------------------エラーメッセージ--------------------
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the DSA host key has just been changed.
The fingerprint for the DSA key sent by the remote host is
18:86:0b:ec:64:34:b1:c3:37:49:61:9c:ed:80.
Please contact your system administrator.
Add correct host key in /home/staff/hoge/.ssh/known_hosts to get rid of this message.
Offending key in /home/staff/hoge/.ssh/known_hosts:6
DSA host key has changed and you have requested strict checking.
Host key verification failed.
----------------------------------------------------
エラーメッセージの最初に出力されているように、これは
接続先サーバーと通信するための暗号の鍵が変更されたため
に起こったもの。
鍵は最初に通信した際にクライアント側に保存されており、今回はそれが変更されたとのこと。サーバ管理者に問い合わせたところ、マシンが変わったとか。
そこでクライアント側では、
~/.ssh/known_hostsにおいて、接続先ホストの公開鍵が記述されている部分を削除する
必要があったのだ。
$ssh -X [ユーザー名]@[サーバ名]
として、接続しようとしたが以下のようなエラーメッセージがでた。
------------------エラーメッセージ--------------------
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the DSA host key has just been changed.
The fingerprint for the DSA key sent by the remote host is
18:86:0b:ec:64:34:b1:c3:37:49:61:9c:ed:80.
Please contact your system administrator.
Add correct host key in /home/staff/hoge/.ssh/known_hosts to get rid of this message.
Offending key in /home/staff/hoge/.ssh/known_hosts:6
DSA host key has changed and you have requested strict checking.
Host key verification failed.
----------------------------------------------------
エラーメッセージの最初に出力されているように、これは
接続先サーバーと通信するための暗号の鍵が変更されたため
に起こったもの。
鍵は最初に通信した際にクライアント側に保存されており、今回はそれが変更されたとのこと。サーバ管理者に問い合わせたところ、マシンが変わったとか。
そこでクライアント側では、
~/.ssh/known_hostsにおいて、接続先ホストの公開鍵が記述されている部分を削除する
必要があったのだ。
2007年11月28日水曜日
scim-launcherがCPUを100%使用してしまう
vinelinux4.1で作業をしているときの話し。
PCのハードディスク容量が満杯になったため突然、GNOMEの動作が鈍る。
そこでctrl+alt+f1によりコンソールを変え、不要なファイルを削除した後にrebootをかける。
reboot後、再度ログインして作業をしようと思い、gnome-terminalを起動しようとするが起動しない。gnome-terminalに不具合があると思い、apt-getでgnome-terminalを一度removeした後にinstallする。しかし、問題は解決しなかった。
そこでlaucherのメニューからRoot Terminalを起動してみる。すると、これは起動できた。その後、システムモニタも起動できたのでCPU使用率を見ると100%になっている。どのジョブがCPUを喰い尽くしているのかを調べると、
scim-launcherがCPUを喰い尽くしていた。
原因を探るため、
# ps -ef | grep scim-launcher
としてscim-launcherのプロセスIDを調べる。次に、lsofコマンド(デフォルトでなかったのでインストールした)を用いて、scim-launcherが開いているファイルを調べてみた。
# lsof -p プロセスID
すると、ライブラリやバイナリファイル以外で
~/.anthy/last-record2_defaultを開いている
とあった。調べてみると、このファイルの末尾がおかしいと、無限ループに陥るらしい。そのため、このファイルを削除した。
そして再起動すると、scim-launcherがCPUを喰い尽くすことなく、めでたくgnome-terminalを起動できた。
PCのハードディスク容量が満杯になったため突然、GNOMEの動作が鈍る。
そこでctrl+alt+f1によりコンソールを変え、不要なファイルを削除した後にrebootをかける。
reboot後、再度ログインして作業をしようと思い、gnome-terminalを起動しようとするが起動しない。gnome-terminalに不具合があると思い、apt-getでgnome-terminalを一度removeした後にinstallする。しかし、問題は解決しなかった。
そこでlaucherのメニューからRoot Terminalを起動してみる。すると、これは起動できた。その後、システムモニタも起動できたのでCPU使用率を見ると100%になっている。どのジョブがCPUを喰い尽くしているのかを調べると、
scim-launcherがCPUを喰い尽くしていた。
原因を探るため、
# ps -ef | grep scim-launcher
としてscim-launcherのプロセスIDを調べる。次に、lsofコマンド(デフォルトでなかったのでインストールした)を用いて、scim-launcherが開いているファイルを調べてみた。
# lsof -p プロセスID
すると、ライブラリやバイナリファイル以外で
~/.anthy/last-record2_defaultを開いている
とあった。調べてみると、このファイルの末尾がおかしいと、無限ループに陥るらしい。そのため、このファイルを削除した。
そして再起動すると、scim-launcherがCPUを喰い尽くすことなく、めでたくgnome-terminalを起動できた。
2007年11月18日日曜日
perlで文字列置換
HTMLファイルに記すタイムスタンプを更新する必要があった。
その際にファイルを1つずつ手書きで修正するのは大変なので、スクリプトを書いてみた。
#############################################################################
#!/usr/bin/perl
###--- HTMLファイルの文字列修正を行うPerlスクリプト ---###
### カレントディレクトリ(ディレクトリハンドルDIR)をオープンする ###
opendir(DIR,".") || die "cannot open a current directory:\n";
### カレントディレクトリのファイルを@files配列に格納する ###
@files = readdir(DIR);
### ディレクトリハンドル(DIR)を解放する ###
closedir(DIR);
### ファイルのリスト(@files)の要素を1つずつ$oldfileに読み込み操作する ###
foreach $oldfile (@files){
#.htmlという要素を含むファイルだけ操作する
if($oldfile =~/.html/) {
#$oldfileを読み取り専用に開く(ファイルハンドルはFHOLD)
if ( ! open ( FHOLD, "< $oldfile") ) {
print "File not found.\n";
exit(-1);
}
#$newfileを修正後のファイルの書き込み用に開く。ここで適当にファイル名を”temp"として与える
$newfile="temp";
if ( ! open ( FHNEW, "> $newfile") ) {
print "Cannot make file.\n";
exit(-1);
}
#修正するファイルを1行ずつ読み込み(特殊変数$_に格納される)文字列置換する
while (<FHOLD >){
$_ =~ s/置換したい文字列/新たに置き換えられる文字列/g;
#$newfileに一行ずつ書き込んでいく
print FHNEW $_;
}
#開けたら閉じる、ファイルハンドル
close(FHOLD);
close(FHNEW);
#元のファイル名の末尾に.origをつけて元のファイルを保存する
rename($oldfile,"$oldfile.orig");
#置換後の新しいファイルを元のファイル名に変更して保存する
rename($newfile,$oldfile);
}
}
その際にファイルを1つずつ手書きで修正するのは大変なので、スクリプトを書いてみた。
#############################################################################
#!/usr/bin/perl
###--- HTMLファイルの文字列修正を行うPerlスクリプト ---###
### カレントディレクトリ(ディレクトリハンドルDIR)をオープンする ###
opendir(DIR,".") || die "cannot open a current directory:\n";
### カレントディレクトリのファイルを@files配列に格納する ###
@files = readdir(DIR);
### ディレクトリハンドル(DIR)を解放する ###
closedir(DIR);
### ファイルのリスト(@files)の要素を1つずつ$oldfileに読み込み操作する ###
foreach $oldfile (@files){
#.htmlという要素を含むファイルだけ操作する
if($oldfile =~/.html/) {
#$oldfileを読み取り専用に開く(ファイルハンドルはFHOLD)
if ( ! open ( FHOLD, "< $oldfile") ) {
print "File not found.\n";
exit(-1);
}
#$newfileを修正後のファイルの書き込み用に開く。ここで適当にファイル名を”temp"として与える
$newfile="temp";
if ( ! open ( FHNEW, "> $newfile") ) {
print "Cannot make file.\n";
exit(-1);
}
#修正するファイルを1行ずつ読み込み(特殊変数$_に格納される)文字列置換する
while (<FHOLD >){
$_ =~ s/置換したい文字列/新たに置き換えられる文字列/g;
#$newfileに一行ずつ書き込んでいく
print FHNEW $_;
}
#開けたら閉じる、ファイルハンドル
close(FHOLD);
close(FHNEW);
#元のファイル名の末尾に.origをつけて元のファイルを保存する
rename($oldfile,"$oldfile.orig");
#置換後の新しいファイルを元のファイル名に変更して保存する
rename($newfile,$oldfile);
}
}
2007年11月15日木曜日
登録:
投稿 (Atom)