YAMAGUCHI::weblog

海水パンツとゴーグルで、巨万の富を築きました。カリブの怪物、フリーアルバイター瞳です。

Apacheでとりあえずする設定

毎回サーバ構築するたびに同じ設定してるんでメモ。

Autoindex

基本コレは切ります。スクリプトの中身とか見られたら困る。
httpd.conf等で

Options Indexes

というのを削ればOK。(逆に表示させるなら追加)

404エラーページの簡略化

Not Found等、エラーが起きたときの表示で、Apacheのバージョンやモジュール等の表示がされないようにする。

ServerSignature Off

Debian GNU/Linux 5.0 "Lenny" RC1 公開

ちょうど研究室のサーバをetchにしてからかれこれ一年弱くらい経つんでいい時期ですね。
今の管理人はちゃんとアップデートしてるんでしょうか?

分散型バージョン管理システム Mercurialをインストールする

久々にサーバをいじってみたくなったんですが、ネタがなくて困っているとこんな記事を見つけました。

CVSが出たときは衝撃だったんでしょうが、今ではSourceforgeなんかもSubversionですし、もう時代遅れ感は否めません。また、いわゆるCVSSubversionのような中央集中型バージョン管理システムだけの時代も今や終わろうとしていて、分散型バージョン管理システムが多く存在しています。

  • Git
    • Linus Torvaldsによって開発された。Cでの実装。
  • darcs
    • Haskellで実装されている。
  • GNU arch
    • Cとshell scriptで実装されている。

そんな中でMozillaが選んだのはMercurialという分散型バージョン管理システムでした。

特徴としては

  • Python実装でありWebインターフェースをデフォルトで持っている
  • 上記の理由からPythonから直接たたくことも簡単になっている
  • 多くの分散型バージョン管理システムの中でWindows用クライアントがまとも
  • 動作がかなり高速。
  • インストールも簡単。
  • 同じくPython実装のtracとも親和性が高い

などがあるみたいです。
久々にサーバに灯を入れて、早速aptしてみました。

# apt-get install mercurial

簡単でいいですね。
設定等々に関してはここが明るいです。(気が向いたら加筆します)

Windows用のクライアントとしてはSVNでもおなじみのTortoiseシリーズがあります。

諸々ディストリビューションのバージョンを確認する

動機

修論に計算機環境を書かなければならなくなったため,ついでに諸々のOSでバージョン情報を調べる方法を調べてみたくなった.

方法

Cygwin

cygcheckコマンドで入っているパッケージとかの情報を見ることができます.

# cygcheck -c
Cygwin Package Information
Package              Version            Status
_update-info-dir     00575-1            OK
alternatives         1.3.29a-1          OK
ash                  20040127-3         OK
atk                  1.10.3-1           OK
(略)
ubuntu

lsb_releaseというコマンドを使うみたい.

# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 6.06.1 LTS
Release:        6.06
Codename:       dapper
Debian

Debianの場合は特にコマンドとかではなく,/etc/debian_versionというファイルに書いてある.

# less /etc/debian_version
4.0
FreeBSD

FreeBSDではもろにカーネルのバージョンと一致.

# uname -a
FreeBSD xxx.xxx.xxx.xxx 6.2-RELEASE FreeBSD 6.2-RELEASE #0: Fri Jan 12 11:05:30 UTC 2007
root@dessler.cse.buffalo.edu.:/usr/obj/usr/src/sys/SMP  i386
Solaris

unameで確認するか、/etc/releaseで確認するか。

# uname -sr
SunOS 5.10

# less /etc/release
AIX

Service Packが当たるベースとなっているバージョンの確認は下記。oslevelのオプションでもっと細かく確認できる。

# oslevel -q
Known Maintenance Levels
------------------------
6.1.0.0

参考

unameコマンド

ちなみに他のOSでunameコマンドを使うとカーネルバージョンを見ることが出来る.

  • Cygwin
# uname -a
CYGWIN_NT-5.1 xxxxx 1.5.25(0.156/4/2) 2007-12-14 19:21 i686 Cygwin
  • Debian
Linux xxxxx 2.4.27-3-386 #1 Wed Dec 6 00:38:33 UTC 2006 i686 GNU/Linux
/etc/xxx_versionファイル

各ディストリビューションでxxxの部分は異なるが,大体一緒.

# less /etc/debian_version
# less /etc/redhat-release
# less /etc/vine-release

こんな感じ.ちなみにubuntuはDebianベースだけど,バージョンファイルを見ると

# less /etc/debian_version
testing/unstable

となってます.

ddコマンドでHDDのダンプ

研究室のサーバがHDDのセクター破損でぶっ飛んでしまったんだけど,なんとかデータをサルベージできないモノかと,とりあえず新品のHDD買ってきてHDDをダンプすることにした.

# dd if=/dev/sdc of=/dev/sdc bs=4096 conv=noerror

ifは入力側,ofは出力側.bsで1回での読み込みと書き込みの量,conv=noerrorでエラーを読み込んでもそのまま作業を続行する.このddというコマンドはscpとかみたいに作業の進行度を表示はしてくれないけど,UNIX系ならSIGINFOを送れば(=Ctrl+T)見られるらしい.あいにく作業に使ったマシンがubuntuだったのでそれはできなかった.LinuxでもSIGPWRで代用しているようなので,そのシグナルを送るショートカットが分かればできたかもしれない.