- blogs:
- cles::blog
LPI-Japan の Linux標準教科書が Ver.2 に
linux
android
courseware LPI-Japan が2008年から公開しているLinux標準教科書がバージョンアップしていた*1のでメモ。
ニュース - LPI-Japanが「Linux標準教科書Ver2.0.0」の無償提供、新たにEPUBでも公開:ITpro
LPI-Japanは2012年10月1日、「Linux標準教科書Ver2.0.0」の無償提供を開始した。実習例として利用するOSを従来のCentOS5.1からCentOS6.3に変更。従来のPDF形式に加え「EPUB形式」での提供も行う。またLinuxのインストールについての章を追加、記述内容、実習例などを見直している。
ベースの Linux が CentOS5 から、現在主流になっている CentOS6 になったわけですね。ダウンロードは「Linux標準教科書 無料ダウンロード LPI-Japan LPICレベル1対応|Linux技術者認定機関 LPI-Japan [エルピーアイジャパン]」からできます。EPUB というのも時代の流れを感じさせますが、いつのまにかAndroid アプリにもなっていた*2のにもびっくりしました。
- *1: LPI-Japan、「Linux標準教科書Ver2.0.0」の提供開始を発表 ~CentOS6.3ベースへの更新やEPUB形式での提供など学習環境の変化に対応~|Linux技術者認定機関 LPI-Japan [エルピーアイジャパン]
- *2: Linux標準教科書 - Google Play の Android アプリ
7/1に発生したうるう秒バグのまとめが興味深い
programming
linux
ntp 7/1のうるう秒実施ではカーネルのバグによって CPU 負荷が増大するという問題が発生して大騒ぎになりましたが、その発生原因と修正を追いかけてまとめているサイトが面白かったのでメモ。
2012 年 7 月 1 日のうるう秒挿入時に発生した Linux カーネルの不具合に関する情報
日本時間 2012 年 7 月 1 日 9:00 にうるう秒が挿入されましたが、その際 Linux カーネルに起因する不具合により、各所で騒ぎになりました。行きがかり上、成り行きを追いかけているのですが、なかなか長期間になってきていいかげんメモを残さないと自分でも整理がつかなくなってきたので、まとめてみました。
まだ関連パッチが流れたりしているので、このページも今後何度か更新する...かもしれません。次回のうるう秒は 2015 年の予定なので、カーネルの修正もゆるゆると、という感じのようです。
このバグについては「これまでうるう秒自体はこれまで何度も挿入されていたのだから事前に防げなかったのかな」と思っていたのですが、これを読むと今回のバグを事前に予測することが難しかったし、修正が一筋縄ではいかなかったというのも良くわかります。僕はカーネルとかあまり詳しくないので、完全には理解しきれない部分も多々ありますが、それを差し引いても面白く読むことができました。
echo b > /proc/sysrq-trigger でシステムを再起動できる
linux 先日調べてメモし忘れていたので忘れないうちにメモ。
Linux でコマンドラインから下記を打ち込むとマシンを強制的にリブートすることが出来ます。
この機能はMagic SysRQ key*1というみたいです。そのほかにもカーネルパニックを発生させたり、OOM Killer を起動させたりといろいろなことができるようです。
元々はコンソールからキーボードを通して打ち込むためのものなんですね。何に使うか良くわからなかったキーボードの SysRq キーの謎がやっと解けました。上記だと sync とかファイルシステムのアンマウントも行われないので、本当に本体のリセットボタンを押したのと同じ状態になってしまってちょっと危険なので、非常時には「REISUB」の順で実行するのがいいようです。
Device eth0 has different MAC address than expected, ignoring. というエラーにハマる
networking
linux
systemmanagemant Linux マシンに NIC を追加したら ssh ができなくなってしまったのでコンソールでネットワークを restart してみたら 「Device eth0 has different MAC address than expected, ignoring.」 という表示がでて eth0 が up 出来なくて困りました。エラーから /etc/sysconfig/network-scripts/ifcfg-eth# に書かれている MAC Address が実際の NIC の MAC アドレスと合っていないということはすぐに理解できたのですが、これを直す方法を見つけるのに苦労しました。
症状としては H/W と eth# の紐付けがずれてしまったようで、例えば modprobe -r eth0 とやると eth1 と eth3 が消えるというなんとも不思議な状態になっています。手っ取り早く解決する方法としては /etc/sysconfig/network-scripts/ifcfg-eth# の HWADDR を全部コメントアウトするという乱暴な方法もあるのですが、今回はちゃんと直していくことにしたいと思います。
† /etc/sysconfig/hwconf を見てみるが・・・・
とりあえず、MAC Address が書かれているファイルは /etc/sysconfig/hwconf しか知らなかったので、こちらを確認してみると、この内容と /etc/sysconfig/network-scripts/ifcfg-eth# は矛盾していません。ここでちょっと詰まりかけたのですが、実際に eth# の紐付けに使われているのは /etc/udev/rules.d/70-persistent-net.rules のようなので、これを修正することで事なきを得ました。
RHEL6 NICの認識に関して (HW交換時の注意点) vMasturbation .:.
NICの認識に関してはudev/rules.dに存在する70-persistent-net.rulesにMACアドレスに対応した静的な名前がインターフェースに割り当てられています。物理的なHW交換(M/Bの交換によるonboard NICのMACアドレス変更や増設NICの交換)以前利用出来ていたインターフェースが利用できない場合は下記手順にて確認すると良いでしょう。
/etc/udev/rules.d/70-persistent-net.rules の中身はこのような感じになっているので、MAC Address に対する NAME をいじってやれば OK でした。
yum 落ちたときの処置 ( rpm の修復 )
linux サーバーのアップデートをしたらアップデート中に yum が落ちるというアクシデントが発生。
それだけだったら良かったのですが、ついでに rpm の db が壊れてしまったらしく、コマンドを打ってもだんまりになってしまいました。
この症状はたまにあるのですが、対処方法をメモっていなかったのでメモを残しておきます。
壊れたdbファイルを削除して、rpm の db を修復し、その後 yum の中途半端になってしまった処理の後始末をします。
† 参考
rpm で %{_initddir} のエラーが出るときは
linux とある .src.rpm をビルドしようとしたら、 %{_initddir} が上手く展開されなくて(しかも、ビルドの最後の最後で)コケるので困ってしまいました。
スクリプトの文脈から察するに /etc/rc.d/init.d であることは自明なので、そこだけ置換してしまおうかと思いましたが、なにか良い方法がないかと思って調べてみたところ、 「rpmの%_initddir : centosとかfedoraとか組み込みLinuxとかの色々備忘録」で ~/.rpmmacros に下記のようなマクロの定義を追加すればよいという情報を見つけたので試したところビンゴでした。
このマクロは普通に定義されているものなのかなぁ。。。。。
Too many open files と言われたときは
linux テスト用に起動しておいた Tomcat の動きが怪しいなと思ったら、ログに Too many open files の文字が大量に出ていました。どうやらシステムで許されているディスクリプタの上限値にあたってしまったようです。ちなみに CentOS の ulimit の値はデフォルトではこんな感じになっていました。ファイルディスクリプタの上限は1024なので少し小さめですね。
ユーザーが root の場合には素直に ulimit 使うところですが、今回は一般ユーザーで動かしている Tomcat だったので /etc/security/limits.conf に下記の行を挿入してとりあえず回避することができました。
ちなみにこのファイルはどういう風に読み込まれているのか、ちょっと詳しく調べてみたら下記のような話が見つかりました。
この回避方法は daemon 系のプロセスだと思わぬところでハマるようなので気をつけないといけないようです。
ファイルディスクリプタ数の上限変更とlimits.confの罠 (ゆめ技:ゆめみスタッフブログ)
daemon系プロセスのファイルディスクリプタ数上限を設定する際、/etc/security/limits.conf は使えません。状況によっては一見設定されたように見えますが、大きな落とし穴にはまることになります。
面倒ですが、必要なプロセス毎にulimitを用いて適切に設定しましょう。
Linux でページキャッシュをクリアする
linux Linuxは空きメモリがあると、ファイルを読み込んだ時の内容がページキャッシュとして自動的に保持されるようになっているので、これがパフォーマンス改善に役立つわけですが、ディスクI/Oの性能測定をする際などにこのページキャッシュが邪魔になることがあります。これまではこれをクリアする方法を知らなかったので必要に応じてマシンをリブートしたりしていたのですが、「Linux のメモリキャッシュをクリアする」によると、/proc/sys/vm/drop_cachesを使うと簡単にクリア出来ることが分かったのでメモ。
manで調べてみたところこんな感じでした。
man 5 proc
/proc/sys/vm/drop_caches (since Linux 2.6.16)
Writing to this file causes the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free. To free pagecache, use echo 1 > /proc/sys/vm/drop_caches; to free dentries and inodes, use echo 2 > /proc/sys/vm/drop_caches; to free pagecache, dentries and inodes, use echo 3 > /proc/sys/vm/drop_caches. Because this is a non-destructive operation and dirty objects are not freeable, the user should run sync(8) first.
値を書き込む前に sync を実行しておいた方がいいみたいですね。
ちなみに数字を2にするとdentry と inonde がクリアされ、3にすると両方が削除されるようです。
CentOSでメールを他のホストに全てリレーする
centos
linux
sendmail
rhel 普段メールサーバはqmailしか使っていないので、他のホスト宛に全メールを転送する設定*1を仕込むのに少し苦戦してしまったので、メモを残しておきます。次からはちゃんとPostfixとかで設定をしたいところですが、vpopmailが便利なのでqmail手放せないんですよね。
まず、sendmail.mc を編集して SMART_HOST にリレー先のサーバを追加します。
あとは、m4 コマンドでマクロを展開して sendmail.cf を生成した後、プロセスを再起動してやるだけです。
- *1: qmailだとsmtproutesの設定にあたるもの
エラーメッセージから詳細を調べられるサイト
linux
opensource 下記のエントリで OSS Message Pedia というエラーメッセージからエラーの詳細を調べられるとページが紹介されていたのでメモ。
EXT3-fs error (device dev): ext3_journal_start_sb : Detected aborted journal :: Drk7jp
見慣れないエラーを見かけるとちょっとワクワクしちゃうのは変態エンジニアって証拠でしょうか・・・(〃▽〃) Linux の kernel 系のエラーメッセージを調べるのに便利なサイトが OSS Message Pedia です。
試しに僕が先日遭遇した rejecting I/O to offline device を入力してみると下記のようなページが出てきました。
OSS Message Pedia -mid:14133-
このエラーが発生した場合、ハードウェアの故障やデバイスドライバの不良である可能性が高い。例えば、SCSIエミュレーションのUSBデバイスを使用している場合は、USBコントローラの故障が報告されており、交換を検討する。また、RAIDを構成している場合には、デバイスドライバの不良が報告されており、当該デバイスドライバのアップグレードやパッチの適用を行う。
確かに見慣れないエラーに遭遇したときに覚えておくといいかも。
- sadpkv
- CACHEMANAGER.phpというのはどうだろうかと
- pairb1m
- Lightning のToDoリストを複数のPCで共有できるアドオン
- majodca
- 九州旅行から帰ってきました
- majodca
- 九州旅行から帰ってきました
- hot534
- yum を使って OpenVPN をインストールする
- dresssu3
- NP_Trackbackを騙るトラックバックspamについて
- zippern7o
- NP_SpamBayesJP jp1b
- park81o
- Google Docs をメールフォームとして使う
- fogmpl
- なんで官庁の文章はPDFなんだろうか
- cutjw9
- 即席スライドショーを作る
- frightenlho
- 添付ファイルの容量を表示する「Attachment Sizes」
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(5035)
3 . GitHub が全ての公開リポジトリへのシークレットスキャンを有効に(4175)
4 . 年次の人間ドックへ(4104)
5 . 2023 年分の確定申告完了!(1つめ)(3958)
Academic[574]
Book[155]
Diary[522]
Disaster[101]
Foodlogue[1425]
Game[284]
Goods[805]
Healthcare[341]
Hobby[32]
IT[1195]
Military[343]
misc.[1570]
Mobile[510]
Music[38]
Neta[106]
News[95]
Photo[391]
RealEstate[120]
Security[1178]
SEO Contest[36]
Software[634]
Tips[1886]
Travelogue[1238]
Web[675]
Work[193]