2008年5月10日土曜日

多段SSHの仕方

多段SSHをする方法。

単純にSSHを多重化すると、エラーになる。

#ssh hostA "ssh hostB"
Pseudo-terminal will not be allocated because stdin is not a terminal.

hostAにログインした場合に仮想端末を割り当てられるので、その仮想端末からhostBにコマンド入力していて、hostBが仮想端末を割り当てられないってことかな。たぶん。

で、これを実現するのが、SSHの"-t"オプション

-t Force pseudo-tty allocation. This can be used to execute arbitrary screen-based programs on a remote machine, which can be very useful,
e.g. when implementing menu services. Multiple -t options force tty allocation, even if ssh has no local tty.

強制的に仮想端末を割り当てる。
これを指定するだけでおk。

snmptrapの設定について

LinuxでSNMPのtrapを受け取れるようにするには、snmptrapdをインストールすればよい。
※インストールについては、各ディストリビューションに依存するので割愛

とりあえず、動かせるようになったならば、/etc/snmp/snmptrapdを編集する
が、とりあえず、以下を記述すれば、メールは飛ぶようになる。

traphandle default /usr/bin/traptoemail -f <メールのfrom> -s <送付先メールアドレス>

※manページより
traphandle OID|default PROGRAM [ARGS ...]
traphandleはtrapを受けたら行う動作の指定
defaultだとtrapの種類によらず、PROGRAMを実行する。
OIDを指定すれば、そのOIDの種類によってPROGRAMの実行を分けることができる。

たとえば、上記のようにdefaultを記述しておけば、問答無用に/usr/bin/traptoemailを実行するわけ。

/usr/bin/traptoemailはsnmp-utilパッケージに付随する、標準出力をメールに整形して送付するプログラムというかPerlスクリプト。


とりあえずdefaultを設定すればおkだが、TRAPによってはメールを送付したくないとか、他の動作をさせたい場合、以下のようにOIDを個別に指定すればよい。

traphandle FOUNDRY-SN-TRAP-MIB::snTrapL4RealServerPortDown /root/bin/output_null.sh

これはOID=FOUNDRY-SN-TRAP-MIB::snTrapL4RealServerPortDownの場合、/root/bin/output_null.shを実行するというもの。
output_null.shは標準入力を/dev/nullに捨てるプログラム。
ちなみに、OIDはMIBを指定できるし、もしMIBファイルがない場合は数値でもおk(なはず)。。。

・snmptrapdの起動オプションについて
/etc/init.d/snmptrapdのデフォルトのオプションは以下のようになっていた。
-Lsd -p /var/run/snmptrapd.pid

-Lsdは
-L[efos]
Specify where logging output should be directed (standard error
or output, to a file or via syslog). See LOGGING OPTIONS in
snmpcmd(1) for details.
This option deprecates the -l -o -P and -s options.


つまり、ログ出力のオプション
ここではLsdと指定しているので、snmpcmdのmanによると、

-Ls FACILITY
Log messages via syslog, using the specified facility ('d' for
LOG_DAEMON, 'u' for LOG_USER, or '0'-'7' for LOG_LOCAL0 through
LOG_LOCAL7).

ということになり、LOG_DAEMONファシリィティで出力する。

-p /var/run/smtptrapd.pidはPIDファイルを作成する。
/etc/init.d/snmptrapdの中で、STOP時にPIDを参照するようになっているので、これは必修。

で、今回はOIDのFOUNDRY-SN-TRAP-MIB::snTrapL4RealServerPortDownで、後半部分だけほしかったので、-Osを追加
OPTIONS="-Lsd -Os -p /var/run/snmptrapd.pid"
→なぜなら、送付メールにそのまま出ると件名が長くてうざいから(;><)

てな感じで、とりあえず運用してみる。

時間があれば、ちょこちょこといじってみるつもり。

2008年5月6日火曜日

ubuntu8.04でのfirestarter

とりあえず、8.04にしてみました。

firestarterを自動起動にしようとおもったのですが、sudoではなくgksuで起動するそうです。
gksuとは、GTKのsudoコマンドで、suかsudoか自分で判断してくれるそうな。

以下、ハマったところ
・gksuの引数は1つのみで、実行したいコマンドの引数を入れるとエラーになるみたい。なので、 ""でくくる必要がある
・フルパスじゃないとダメ

以上をもって、以下のように自動起動を登録したらうまくいった。
gksu "/usr/sbin/firestarter --start-hidden"

※管理者権限で自動実行させようとおもったのだが、7.10の時と/etc/sudoersの記述が若干異なっているので、もうちょっと調べてからにしようと思う。

2008年3月30日日曜日

顔文字辞書をつかいたい( ゚д゚)

まずは、かなりはまった。。。orz

どこにはまったか。
  1. UTF-8は使えないとのこと
  2. anthyの辞書の形式
  3. 2.に伴う、変換スクリプトの仕様
まぁ、結論から言うと

1.IME用辞書をutf-8に変換する
→これはiconvを使えば余裕
$iconv -f MS932 -t UTF-8 ime_std.txt ime_std_utf8.txt

2.変換した辞書を、anthyの辞書形式にする
ぁぃ (゚Д゚)ノ ァィ 顔文字


ぁぃ #T35*500 (゚Д゚)ノ ァィ

みたいにするわけです。
ちなみに、#T35が品詞(名詞)、500が頻度を表しているっぽい
→この頻度が抜けててうまくいかなかったのだろう。

ちなみに、変換に使用したスクリプトは以下

#usr/lib/ruby -Ke
while line = gets

str = line.split(/\t/)

next unless str[2]
next unless str[2].chop == "顔文字"

print str[0]
print " #T35*500 "
print str[1]
print "\n"

end

これを kao.rb のような名前で保存して、先ほどのutf-8の辞書を変換する

$ruby kao.rb < ime_std_utf8.txt > kao.txt

3.~/.anthyに"private_words_default"としてコピー

$cp kao.txt ~/.anthy/private_words_default
#すでに個人辞書を登録してある場合は、以下でもいいんでない?
$cat kao.txt >> ~/.anthy/private_word_default

これで、scimを再起動するだけで反映される
゚・*:.。..。.:*・゜ヽ( ´∀`)人(´∀` )ノ・゜゚・*:.。..。.:*


てな感じで、Ubuntuでも顔文字使えるようになってうれしいです。

以下反省
  • UTF-8も使えるようになったことに気づけなかった
  • 辞書の形式が変わってたことに気づけなかった
なんで気づいたかというと、実際に個人辞書を登録してみたから。
最初からそうしておけばよかったのに。。。orz

2008年3月27日木曜日

firestarterを自動起動したい

まぁ、以下のURLに詳しく書いてありました。
http://ubuntuguide.org/wiki/Ubuntu:Feisty_ja/AddOnApplications

まずはvisudoで設定
$export EDITOR=vi
$sudo visudo
なんだけど、どうも環境変数がrootで反映されてないみたいなので、rootになってから設定
$su
#export EDITOR=vi
#visudo
Defaults !lecture,tty_tickets,!fqdn
を、変更
Defaults !lecture,tty_tickets,!fqdn,env_reset,env_keep+="DISPLAY HOME XAUTHORIZATION"

そして、以下を追記
user ALL= NOPASSWD: /usr/sbin/firestarter

で、保存する。

あとは、GNOMEのシステム→設定→セッションを開き、「自動起動するプログラム」タブで追加を選び、以下画面のように設定する








これで、リブートしてみて自動起動すればおk

2chの辞書が使いたい

Ubuntu標準装備のAnthyに、2ch辞書が入ってるがデフォで有効になってないらしいので、有効にしてみる。

#sudo dpkg-reconfigure anthy
で、設定画面で2ch.tを選択すればおk

以下のように出力がでて、更新されたみたい。
Updating anthy.dic...file name prefix=[./] you can change this by -p option.
copying .///mkworddic/anthy.wdic (word_dic)
copying .///depgraph/anthy.dep (dep_dic)
copying .///calctrans/anthy.trans_info (trans_info)
copying .///calctrans/anthy.cand_info (cand_info)
copying .///calctrans/anthy.weak_words (weak_words)
copying .///calctrans/anthy.corpus_bucket (corpus_bucket)
copying .///calctrans/anthy.corpus_array (corpus_array)
/usr/bin/mkfiledic done.
done.

ちなみに、このあと確認しようとして、またdpkg-reconfigureを実行したのですが、取消ができず無限ループ状態になった。。。orz

2008年3月20日木曜日

vaio typeTにUbuntuをインストールする

ノートPCにUbuntu7.10をインストールしてみた。

【PCスペック】
機種:vaio type T
型番:VGN-T91PS

【設定】
[キーボード]
|や\が入力できない
インストール時にUSを選択すると駄目
とりあえず、USでインストールを行う。
→のちにXの設定にて、キーボードを指定しなおしたら
 入力できるようになった。

[Wireless]
 標準ツールで問題なく接続

[Graphic]
 インストール時に自動認識でうまくいかなかったので、VGAでインストールした後、
設定ツールで再設定を行う。
 $ sudo dpkg-reconfigure xserver-xorg

・ビデオカードドライバの設定
 →選択してあった”Intel”で設定
・識別子
 →そのままエンター
・ビデオカードバス
 →そのままエンター
・メモリ量
 →空欄のまま
・カーネルフレームバッファ
 →はい
・キーボードレイアウト
 →自動認識
・レイアウトの設定
 →”us”を選択
・キーボードルールセット
 →xorg(デフォルト)
・キーボードモデルの設定
 →pc101
・キーボードバリアントの設定
 →空白
・キーボードオプション
 →空白
・マウスポート
 →/dev/input/mice
・マウスプロトコル
 →"ImPS/2"を選択
・3ボタンマウスのエミュレータ
 →はい
・モニタの自動認識
 →はい
・モニタの識別子
 →そのままエンター
・解像度の設定
 →1280x800を指定
・モニタ特性
 →Advancedを選択
・水平同期
 →そのまま
・垂直リフレッシュ
 →そのまま
・モニタ動機範囲
 →はい
・色深度の設定
 →24

[Sound]
 スピーカーから鳴らず
 イヤホンをつけると聞こえる

[ソフトウェア・ソース]
 デフォルトではなにもしない状態だったので、設定

 Ubuntuのソフトフェア
  Canonicalによってサポートされるオープンソフトウェア(main)
  コミュニティによるメンテナンスされるオープンソフトウェア(universe)
  デバイス用のプロプライエタリなドライバ(restricted)
  著作権もしくは法的な問題によって制限されたソフトウェア(multiverse)

  ダウンロード先
   日本のサーバーに変更
 
 サードパーティのソフトウェア
  全部にチェック

 アップデート
  重要なセキュリティアップデート
  推奨アップデート