wgetでファイル名が長すぎると出た時

ファイル名が長すぎます
英語だと
File name too long
とでる。実はあまり遭遇する機会はそう多くはないのだが、とある場面で100%遭遇する。
JDKのダウンロードURLである。とても長すぎるので毎回出てしまう
その対策は-Oオプションでファイル名を指定してやることである。
wget -O ファイル名 http://とても長いJDKのダウンロードURL
あまり役に立ちそうにないが豆知識としてどうぞ

カテゴリー: Linux | 1件のコメント

Apacheのアクセスログからロボットのログを分離

一昔前にはワームが飛び交っていたのでそれを分離する設定が重宝した。
今は新規のロボットエンジンがスパムのごとくアクセスログを埋めてくれるのでロボットはロボットで別のログにまとめる必要に迫られる。
でhttpd.confに以下のようにCustomLogの設定を入れる
#主要なロボットと(迷惑な)新規ロボットをひとまとめに別ログにする
SetEnvIf User-Agent “(Googlebot)|(Slurp)|(Baiduspider)|(msnbot)|(Yeti)|(psbot)|(Ask Jeeves)|(Twiceler-0.9)” robots nolog
CustomLog logs/robot_log combined env=robots
CustomLog logs/access_log combined env=!nolog
終わったらapache再起動するべし。
新しいロボットがきたら
|(ロボットのUserAgent名)
組み合わせを増やしていけばいい。
正直いって現状ロボットアクセスが通常の2倍ぐらいありますです。うーむもっとがんばらねば!

カテゴリー: Apache | タグ: , , , | コメントする

Ubuntu Linuxで無線LAN環境構築 ipw2200 編

前回さまざまなLinuxで無線LANを試したと述べた。
今回はその中で一番導入のハードルが低かったUbuntu Linuxについて取り上げることにしよう。
まずバージョンはUbuntu7.0.4デスクトップ版かつ日本語ローカライズ版を利用した。日本語ローカライズ版に関してはミラーサイトが見つからなくって、ダウンロードに4時間ほどかかってしまった。
そして対象無線機器だが、これはチップ毎に取り上げてみることにする。今回実際に使ったマシンはLet’s Note CF-R3である。
まず起動すると無線機器の認識がされているはずである
dmesg | grep ipw2200
エラーが出ていなければOK
その後はESSIDとWEPキー(とインデックス)を設定するだけ
sudo iwconfig eth1 essid ESSID
sudo iwconfig eth1 key restricted s:キー [キーのインデックス] key [キーのインデックス]
sudo iwconfig eth1 rate 54M
おそらくDHCPが有効になっていれば1分もすればIPアドレスが割り当てられるはずである。
毎回コレを実行するのが面倒なので
GUIツールではWEPキーのインデックスの設定ができないということなので/etc/network/interfacesを以下のように設定する。
auto eth1
iface eth1 inet static
wireless-essid ESSID
wireless-key s:WEPキー [WEPキーインデックス] key [WEPキーインデックス]
address 192.168.1.x
netmask 255.255.255.0
gateway 192.168.1.1
IPアドレスとgatewayはそれぞれ適宜変更。
WEPキーインデックスはコレを指定しないと普通つながらないと思うのだが、なぜか世の中の例を見ると設定していないところが多い。なんで?

カテゴリー: Linux | コメントする

Windowsで複数のバージョンのJDKをインストールする

JDKはすでに6.0が出ているというのに、いまだアプリケーションサーバー各種での採用があまりなく(特に商用)利用例が少ないのが実情ではないだろうか?
各いう自分も今やっているプロジェクトはJDK1.4系である。しかしTomcatなどのオープンソースプロダクトの最新版はもうJDK5.x以上しかサポートしていない。というわけで複数の別バージョンのJDKを入れるというニーズもあるだろうからそのやり方を書いておく。
Linuxと違いJDKのWindows版はインストーラーしかない。しかしデフォルトではバージョン名がフルに入ったディレクトリにインストールされるので別バージョンを入れたとしても上書きされるような事態にはならない。なので後は使うアプリケーションごとにJAVA_HOMEの値を切り替えて置けばよい。
Linuxではアーカイブ版があるので違ったディレクトリに解凍し、こちらも環境変数の値を使うバージョンにあわせて設定すれば共存ができる。
ちなみになんでJDK6を入れたかというとTomcat6を試してみたかったからなのである。

カテゴリー: Java | コメントする

Blogpingサーバーを設定する

この技術メモかつては結構アクセスがあったのだが、サーバー移行のどたどたとドメイン消失で検索サーバーからクロールされなくなってしまった。
さらにいうとMT3.2の頃はデフォルトでblogpingサーバーが設定されていたはずなのだが、3.3からは設定メニューからも消えた(非常にわかりづらい操作をしないと設定できないので消えたも同然)
せっかく技術情報を書いていてもアクセスがないと面白くないし、どんな検索キーワードできていてそれに対して答えを出せているかというのも気になるのでやはり更新は通知すべきだろう。
というわけでBlog pingサーバーの設定方法
デフォルトでは環境設定の中にある設定メニューをクリックすると右上のほうに大変小さく「詳細設定へ切り替え」というのがある。その詳細設定に切り替えて新規投稿タブをクリックするとblogpingサーバーを入れるテキストエリアが下のほうに現れる筈だ。
Blog pingサーバーを設定することにより新規エントリーを投稿する時にパフォーマンスが落ちるが、たいしたことはないはず。あまりにひどいようなら有名どころだけに絞るべし。
http://api.my.yahoo.co.jp/RPC2
http://blogsearch.google.co.jp/ping/RPC2
http://blog.goo.ne.jp/XMLRPC
http://rpc.technorati.jp/rpc/ping
http://ping.ask.jp/xmlrpc.m
http://www.blogpeople.net/servlet/weblogUpdates
http://ping.rss.drecom.jp/
http://ping.bloggers.jp/rpc/
http://rpc.reader.livedoor.com/ping

カテゴリー: SEO | コメントする

Linux同士のSSH公開鍵認証ログイン

puttyとLinuxの連携は普段よく使っているが、LinuxからLinuxに公開鍵認証でログインしたことはほとんどなかったが、先週からLinuxで無線LANが利用できるようになったのでWindowsを捨てるべくLinuxデスクトップ環境で生きている(ほぼ80%)
で現状自宅メインサーバーはセキュリティ対策の為SSHログインは公開鍵認証しか許可していないのだが、Gnomeターミナルで公開鍵認証にチャレンジしてみた。
SSHクライアントが動くサーバーA
公開鍵認証を利用してログインされるサーバーB
まずはサーバーAのログインしたいユーザーのホームディレクトリで以下のコマンドを実行
ssh-keygen -t rsa
ユーザーディレクトリの.ssh/id_rsa(秘密鍵)と.ssh/id_rsa.pub(公開鍵)が作成される。公開鍵をログインしたいサーバーBに送る(SCPなりFTPなり)
ここからサーバーB側作業に移る。
公開鍵はログインさせたいユーザーの.ssh/authorized_keysに公開鍵を追記すればいい。
cat id_rsa.pub >> .ssh/authorized_keys
上記のコマンドでauthorized_keysがなければ新規作成、あれば追記される。なおこのauthorized_keysのパーミッションは600にしておかなければ公開鍵認証は失敗する。
でこれでうまくいくと思ったらデスクトップLinuxの本命として絶賛利用中のUbuntuLinuxからうまくいかない!!なんで?だいたいパスフレーズを聞いてこないのがおかしい。
しょうがない本命候補はもうひとつVineLinuxがあるさ。というわけでこちらで実行したところ即うまくいった。Ubuntuで公開鍵認証がうまくいかない理由がさっぱり見当つかないが継続調査。
普通のLinuxなら上記の手順で公開鍵認証でログインができる。公開鍵認証でログインできるようになったら、セキュリティ対策の為パスワード認証はNGにしておこう。

カテゴリー: Linux | コメントする

DNSなしでNameVirtualHostの設定を確認する

ドメイン名によってドキュメントルートを切替えるApacheのNameVirtualHost
レンタルサーバーなどではよく使われている手法である。これで問題となるのがテストしたいときにDNS登録されていないとhttpd.conf一番上にある設定が使われてしまうことである。
普通はDNSに登録されているものだが、既存で動いているサイトの設定変更のテストなどをやりたい場合にわざわざDNSを書き換えることなどできないだろう。そんな時に役立つテクニックを紹介する。
答えは簡単で、windowsでもlinuxでもデフォルトではhostsファイルの設定がDNSより優先されるのでhostsファイルに書き換えればいいのだ。
#LAN内からNameVirtualHostの設定を確認する
192.168.x.x www.myserver.com
192.168.x.x www2.myserver.com
192.168.x.x www.hoge.com
こんな感じでNameVirtualHostのServerNameに設定したドメインをIPと対応させればいいだろう。なおDNSはキャッシュされるので(特にWindowsはすぐに反映されない)すぐに変わらないからといって失敗と決め込んではいけない。
自分がレンタルサーバーを利用していてIPアドレスで打ち込んだときとドメイン名で打ち込んだときに違うドキュメントが表示されたらそれはNameVirtualHostの設定で共有されていると考えていい。

カテゴリー: Apache | コメントする

unbreakable linux に注目

Oracleが出すRedHatEnterpriseLinuxクローン
それがunbreakable linux
unbreakable linuxのサポートコストはRedHatEnterpriseの半分になるとの挑戦的なコピーでOracleとRedHatの関係は冷え込んだようだが、実験用途としてはOracleが出しているぐらいだからOracleインストールの基盤としてunbreakable Linuxを選択するのもありかもしれない。バイナリはフリーで配布されている。
サポートでお金を取るってことだ

カテゴリー: Linux | コメントする

UbuntuにOracle Express Editionを入れる

UbuntuはDebianベースなのでDebianのパッケージ管理aptでOracle無償版のExpressEditionを利用できる。

結構インストールはいろいろなLinuxで試したのだが、Debianが一番楽なのは確実にいえる

しかしDebianといえばインストールや運用が大変というイメージがある人も多いのでは(実際は昔に比べれば楽勝なのだが)

その場合はUbuntuLinuxで入れてみるといいだろう。

http://www.rutake.com/wiki/DB/Oracle/ExpressEdition/#g080d2dc

インストールばっかりでその後の運用についての記載が一切ないのでこれからがんばります。

カテゴリー: Linux | タグ: | コメントする

NoClassDefFoundErrorの原因を探る

本番環境にUPする時など環境が変わったときに遭遇しやすいこのエラー

開発時は問題なかったのにいざ本番で出るとびびる上にだいたいそういう時はテンパリモード1000%
なので冷静な判断ができないだろう。

しかし結局のところクラスパスの設定が間違っているというのがほとんどなのでクラスパスを列挙させてみるといい。
たとえばjspなら以下のコードを入れてみる。

<%
//クラスパス表示
String classpath = System.getProperty(“java.class.path”);
java.util.StringTokenizer st = new java.util.StringTokenizer(classpath,”;”);
while (st.hasMoreTokens()){
out.println(st.nextToken() + “<br&gt”);
}

%>

そしてきちんと動く環境のクラスパスと比較してみる。
クラスパスがまったく一緒なのに動かない場合はJARファイルなどのライブラリがきちんと存在しているか?
コンパイル環境ではコンパイルエラーとなるので気づくが、実行環境ではクラスをロードするときまでエラーが出ないので厄介だ。

たいていの場合において開発環境にはたくさんJARファイルが入っていてどれがどれに依存しているかわからなくなって、
必要なJARを本番環境にコピーし忘れてこのエラーに遭遇するというケースも多い。

 

カテゴリー: Java | タグ: , , , | コメントする