SSH接続の効率化

この前からTeraTermMenuの古い日本語版をカスタマイズしてコンパイルし使っていましたが、UTF版TeraTermには英語版の最新TeraTerm Menuが入ってました。それだけなら特に他の方法でやってみようという気にならなかったのですが、多段ログインのマクロを組んでいるときにヘルプを見たら…。普通にマクロの拡張子をTeraTermMacroに登録して利用できるようです。つまりマクロファイルダブルクリックでOKということなのでこれをスタートメニューとかクイック起動バーに登録すればTeraTermMenuは使わなくても良かったということです。

まずはwheelグループに属しているユーザでログインしsuでルートになる方法
username = ‘username’
hostname = ‘192.168.100.100’
password = ‘userpassword’
supass = ‘supassword’
ini = ‘black_euc.ini’
timeout = 30
msg = hostname
strconcat msg ‘:22 /ssh /auth=password ‘
strconcat msg ‘/user=’
strconcat msg username
strconcat msg ‘ /passwd=’
strconcat msg password
strconcat msg ‘ /f=’
strconcat msg ini
connect msg
pause 2
sendln ‘su -‘
wait ‘Password:’
sendln supass

iniの項目でカスタマイズしたiniファイルを定義します。これはサーバーによって扱っているロケールの文字コードが違う為文字コード別にiniファイルを作成しています。あとはDevelop/Staging/Publicで背景色と文字色を変えてサーバの取り違いミスを予防します。接続の後のpauseはサーバーの応答を待たずにsuコマンドを発行しないようにマクロ側を一時停止します。その後のwaitはサーバーからの応答を待ってパスワードを送信します。timeoutはwait用の値です。

上記はパスワード認証用ですが、次は公開鍵を使って1台目のサーバに接続しさらに他のサーバへsshへログインする方法です。(これはグローバルIPを持たないデータベース専用サーバ等でよく利用します)

username = ‘username’
hostname = ‘192.168.100.100’
password = ‘userpass’
key = ‘id_rsa’
rlhost = ‘192.168.100.101’
rluser = ‘rluser’
rlpass = ‘rlpass’
ini = ‘black_euc.ini’
msg = hostname
strconcat msg ‘:22 /ssh /auth=publickey ‘
strconcat msg ‘/user=’
strconcat msg username
strconcat msg ‘ /passwd=’
strconcat msg password
strconcat msg ‘ /keyfile=’
strconcat msg key
strconcat msg ‘ /f=’
strconcat msg ini
connect msg
pause 2

msg = ‘ssh -l ‘
strconcat msg rluser
strconcat msg ‘ ‘
strconcat msg rlhost
sendln msg
wait ‘Password:’
sendln rlpass

そして作成したマクロファイルをダブルクリックで起動できるように定義します。

WindowsXPでの登録方法
1.エクスプローラーの[ツール(T)]-[フォルダ オプション(O)]からファイルの種類タブをクリック。
2.[新規(N)]をクリック。
3.ファイル拡張子(F)の欄に「.ttl」と入力して[OK]をクリック
4.TTLファイルが登録されたら、「拡張子’TTL’の詳細」グループ内の[詳細設定(V)]ボタンをクリック。
5.一番上のテキスト入力は拡張子の種類に入る説明なので「Tera Term macro files
」と入力。
6.[アイコンの変更(I)]をクリックして好きなアイコンを選択。TeraTerm系のアイコンにしたい場合は[参照(B)]よりTeraTermのインストールされているフォルダへ参照しTeraterm実行ファイルの中から選択する。
7.[新規(N)]をクリックしアクションに「接続」と入力。実行するアプリーションは[参照(R)]でTeraTermマクロ実行ファイルを選択。この時%1が追加で挿入されるがダブルクォートで囲んで[OK]をクリック。
例) “C:Program Filesteratermttermpro.exe” “%1”
8.ついでに[新規(N)]でもうひとつ登録。アクションは「編集」でアプリケーションはTTLEditを選択する。
9.既定は「接続」になっていることを確認して[OK]をクリック。最後に[閉じる]をクリックして終了。

TTLEditはTeraTermマクロに特化したエディタで色分けもされているのでとても便利です。

 

Apacheクックブックは駄本でした。。。

最近凄い勢いで他人のソースを見てデバッグする機会が多く、多重にrequireしているソースになるともうかなり面倒です。特に動的ページ同士のパラメータのやり取りに関しては仕様書がないとソース解析の範囲が一気に増えて面倒です。

そうなって来るとプログラムにトレースを打ちまくって確認するのですが、他人が管理しているプログラムに改造しまくるのはサーバが余っていてコピー環境作成できないと難しい…。あとファイル数やポイントが多ければそれだけでも大変な作業になる。

GETに関してはApacheログに普通に出せるので楽だが、殆どはPOSTの中が重要だったりします。それでApacheでPOSTの情報を出せないかと探索してもPOSTの長さを出すのが精一杯。さらに検索すると『Apacheクックブック』の目次に『POSTの内容をログに記録する』というのがあるじゃありませんか、早速Googleブック検索で調べたら日本語版なし、まぁApacheの設定だし英語でもドンと来い状態なので英語も検索するとログの章は非公開。

買うしかないのかと即注文して今日届いたのですが、

本書を執筆している時点では、そのようなフィルタは存在しない。

目次では2ページ分だったので少しは期待しましたが1ページ目が7行(3行は回答、残りは言い訳)で2ページ目は言い訳の残りが2行で終了です。

他にも『クライアントのMACアドレスをログに記録する』で、ネットワークの仕様上、常識的に不可能でMACアドレス取得しても直近のルータやロードバランサーのMACアドレスだから負荷分散等に使うのかな?て見たら。

Aapcheでは全くできない

この項目も全部で6行です。他の項目もApacheサイトや一般的なApache本で普通に書いてることと同じだし、こんな個人ブログにだらだらと書いた内容の寄せ集めみたいな本だったので無駄投資。買う人が詐欺被害に会ったみたいでかわいそうだし面倒で転売する気も起きません。。。orz

他のものに例えたらフォローが中途半端な質問掲示板そのものですね。質問だけあって、解決になって無い無駄書きと不可能発言のスレッドみたいです。(ググってもこういうのによく当たりますね:;)

さてApache2でPOST内容の書き出しは一旦置いといて別のサーバ構築しますか(´・ω・)

ターミナルの言語を変更

前から思っていたのですがレッドハット系っていらねーところに世話妬いて日本語表示したりするんですよね。んで化けて判読不可能ならまだしも最悪画面が崩壊してリログする羽目になる。

この設定変更に関して検索してみたら(UTF-8→EUC)というのがよく見付かりますね。まぁ昔EUCだったものが新しめのLinuxだとUTF-8になっててターミナルソフトがついていけないからEUCに戻そうという話です。イヤイヤイヤイヤそれはないだろ?そもそもマルチバイトの時点でうぜーよ。テキストファイルだって全てEUCなんて今時まれだし、いちいちコマンドの出力に合わせて文字コードの変更なんてやってられるかよ。常識的に考えてここは英語オンリーだろ?読めなくて不都合あるなら辞書引け。(こういう自国だけで複数の文字コードに悩まされるのって日本と中国かな?)

ということでクライアントのfedoraからターミナルの日本語を排除しました。
# vi /etc/sysconfig/i18n

元々の状態
LANG=”ja_JP.UTF-8″
SUPPORTED=”ja_JP.UTF-8:ja_JP:ja”

変更後
LANG=”en_US.UTF-8″
SUPPORTED=”en_US.UTF-8:en_US:en”

これで ls -l 等で日付部分が漢字とか悲惨な表示が無くなってスッキリ。