初期設定
管理人の個人的な設定。for Red Hat Linux 9 。
サーバ専用機なので、Xはなし。管理は全てSSHで。
パーティション
40GBで、こんな感じかなあ。(/backupはSamba用)
/boot | 100MB |
---|---|
/ | 4GB |
/usr | 5GB |
/var | 6GB |
/tmp | 1GB |
/home | 2GB |
/backup | 20GB |
swap | 1GB |
その後しばらく経って、今は下記でいいような気が。
/boot | 50MB |
---|---|
/ | 2GB |
/usr | 5GB |
/var | 3GB |
/tmp | 1GB |
/home | 1GB |
/backup | 26GB |
swap | 1GB |
ほとんど1ユーザーで運用するので、とりあえずhomeは小さく。
web, mail, samba 等を複数ユーザーで運用するなら、
それなりに大きくする必要がありそう。
追記(04/10/21):swapは64MB程度で十分かも。
パッケージ
カスタムで最小限の構成にする。
不要なサービスの停止
chkconfig netfs off chkconfig pcmcia off chkconfig saslauthd off chkconfig apmd off chkconfig atd off chkconfig gpm off chkconfig autofs off chkconfig irda off chkconfig isdn off chkconfig portmap off chkconfig nfs off chkconfig nfslock off chkconfig rhnsd off chkconfig xfs off chkconfig canna off chkconfig FreeWnn off chkconfig sendmail off chkconfig sgi_fam off
不要なRPMの除去
Linux/Linux/Red Hat 9 RPM一覧を参考にサーバーに不必要なものをガンガン消す。
rpm -e unix2dos rpm -e dos2unix rpm -e mt-st rpm -e kernel-pcmcia-cs rpm -e gpm-devel rpm -e gpm rpm -e irda-utils rpm -e isdn4k-utils rpm -e FreeWnn rpm -e FreeWnn-common rpm -e Wnn6-SDK-devel rpm -e Wnn6-SDK rpm -e ttfonts-ja rpm -e chkfontpath rpm -e jisksp14 rpm -e jisksp16-1990 rpm -e XFree86-xfs rpm -e XFree86-font-utils rpm -e XFree86-libs XFree86-Mesa-libGL rpm -e XFree86-libs-data rpm -e libvorbis-devel rpm -e libvorbis rpm -e libogg-devel rpm -e libogg rpm -e raidtools rpm -e wireless-tools rpm -e talk rpm -e redhat-logos rpm -e redhat-config-network-tui rpm -e redhat-config-mouse rpm -e setserial rpm -e statserial rpm -e apmd rpm -e watanabe-vf rpm -e up2date rpm -e ttmkfdir rpm -e setuptool rpm -e authconfig rpm -e netconfig rpm -e lha rpm -e nvi-m17n-canna rpm -e Canna rpm -e Canna-libs rpm -e lokkit
とりあえず
rpm -e eject rpm -e reiserfs-utils rpm -e jfsutils rpm -e minicom rpm -e ppp rp-pppoe wvdial rpm -e bc rpm -e dhclient rpm -e fbset rpm -e ftp rpm -e finger rpm -e hotplug rpm -e lftp rpm -e libusb libusb-devel rpm -e lrzsz rpm -e rdist rpm -e skkdic rpm -e nfs-utils rpm -e at rpm -e ed rpm -e mkbootdisk rpm -e dosfstools rpm -e namazu-devel rpm -e namazu rpm -e perl-Text-Kakasi rpm -e kakasi-dict rpm -e kakasi-devel rpm -e kakasi rpm -e mtr rpm -e ypbind yp-tools rpm -e rsh rpm -e anacron
ネットワーク
サーバのIP | 192.168.0.10 |
---|
と仮定。
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 BOOTPROTO=static BROADCAST=192.168.0.255 IPADDR=192.168.0.10 NETMASK=255.255.255.0 NETWORK=192.168.0.0 ONBOOT=yes
ホスト名
ホスト名 | hoge |
---|---|
ゲートウェイ | 192.168.0.1 |
と仮定。
vi /etc/sysconfig/network
NETWORKING=yes HOSTNAME=hoge GATEWAY=192.168.0.1
vi +3 /etc/hosts
127.0.0.1 localhost.localdomain localhost 192.168.0.10 hoge hoge.my.domain
少しセキュアなSSH
sudo出来るユーザーを制限、かつそのときのコマンドをsuに制限
sudo出来るユーザー | hoge |
---|
と仮定。
visudo
hoge ALL=(ALL) /bin/su
su出来るユーザーを制限
su出来るユーザー | hoge |
---|
と仮定。
vi /etc/login.defs
SU_WHEEL_ONLY yes
usermod -G wheel hoge
vi /etc/pam.d/su
auth required /lib/security/$ISA/pam_wheel.so use_uid
ファイルの参照時にatimeを更新しないようにする
アクセス時間を更新しないように設定すると、読み込みだけでもHDDに書き込みを行なっていたのを止められるため、パフォーマンスがごっつ向上する。
defaults を defaults,noatime にする
swapやフロッピー、CD-ROMなどには絶対に設定しない
vi /etc/fstab
LABEL=/ / ext3 defaults,noatime 1 1 LABEL=/backup /backup ext3 defaults,noatime 1 2 LABEL=/boot /boot ext3 defaults,noatime 1 2 none /dev/pts devpts gid=5,mode=620 0 0 LABEL=/home /home ext3 defaults,noatime 1 2 none /proc proc defaults 0 0 none /dev/shm tmpfs defaults 0 0 LABEL=/tmp /tmp ext3 defaults,noatime 1 2 LABEL=/usr /usr ext3 defaults,noatime 1 2 LABEL=/var /var ext3 defaults,noatime 1 2 /dev/hda7 swap swap defaults 0 0
仮想コンソールの削減
vi /etc/inittab
1:2345:respawn:/sbin/mingetty tty1 #2:2345:respawn:/sbin/mingetty tty2 #3:2345:respawn:/sbin/mingetty tty3 #4:2345:respawn:/sbin/mingetty tty4 #5:2345:respawn:/sbin/mingetty tty5 #6:2345:respawn:/sbin/mingetty tty6
安眠cron
vi /etc/crontab
# run-parts 01 * * * * root run-parts /etc/cron.hourly 02 9 * * * root run-parts /etc/cron.daily 22 9 * * 0 root run-parts /etc/cron.weekly 42 9 1 * * root run-parts /etc/cron.monthly
速いupdatedb
色々省く。
cronでupdatedbを掛けている場合は
updatedb -e "/boot,/dev,/home,/initrd,/lost+found,/misc,/mnt,/proc,/backup,/tmp,/var"
カーネルパニック時自動リブート
vi /etc/sysctl.conf
kernel.panic=30
sysctl -p
時刻補正
NTPで定期的に時刻を合わせる設定をする。
下記は毎週火曜日の15:23にNTPサーバに問い合わせする設定。
crontab -e
23 15 * * * 2 /usr/sbin/ntpdate -s ntp.jst.mfeed.ad.jp; /sbin/hwclock --systohc
便利
grepで検索単語に色をつける
vi ~/.bashrc
alias grep='grep --color'
補完機能をカスタマイズ
vi /etc/profile
complete -d {cd,pushd,popd} complete -u {su,chown} complete -c {man,which} complete -f {less,vi,tar}
未調査
- 消したい
/etc/X11 /etc/printcap /usr/X11R6 /usr/games /usr/local/games /usr/share/emacs /usr/lib/xemacs /var/lib/canna
- 消したい
rpm -e lilo rpm -e ash rpm -e --nodeps rmt
参考
- /procによるLinuxチューニング
- How to install redhat-7.3-i386
- 静かなマシンを作るhdparm
- ハードディスクを止めるぞ
- ディスクアクセスを減らしたい〜update(bdflush)編〜