#topicpath /////////////////////////////////////////////////////////////////////////////// * 目次 [#a8107e23] #contents /////////////////////////////////////////////////////////////////////////////// * 独立コンテンツ [#q284ad8f] #ls2(System/); /////////////////////////////////////////////////////////////////////////////// * CPU暴走対策 [#ie137ee4] - htt_server (仮名漢字変換サーバ) -- top で追えなくなっている場合もある -- 次の方法で再起動する # /etc/init.d/iiim restart /////////////////////////////////////////////////////////////////////////////// * 特定のポート(socket)やファイルを使っているプロセスを調べたりkillする [#s3b2028e] - socketの場合: $ fuser -n tcp <port> ...で、そのportを使用するプロセスのPIDが分かる - ファイルの場合 $ fuser <file> で、以下のような書式で表示される。 USER PID ACCESS COMMAND <used-file>: <user-name> 21969 f.... gdb - -k を使うと、指定したファイルにアクセスしているプロセスをkillすることが出来る。-signal で指定しなければ、シグナルは SIGKILL が送られる。 /////////////////////////////////////////////////////////////////////////////// * Sound [#a72e7d30] ** RealPlayer 終了後、他の動画・オーディオプレーヤーが正常に動かない [#a0d5ca98] - しゃっくり状態(一瞬動き、一瞬止まる、の繰り返し)になった場合、pulseaudio のせいである可能性がある。&br; もし、 ps -u <ユーザ名> で pulseaudio のエントリが引っかかってくるようなら、 $ killall pulseaudio [RETURN] で直るかもしれない。&br; 本来、 # /etc/init.d/pulseaudio stop [RETUEN] で止まるべきである気がするのだが、この方法では停止出来ない。 /////////////////////////////////////////////////////////////////////////////// * ハードウェアのスペックを調べる [#oefab033] - システム情報は、基本的に /proc 以下を見れば分かるようになっている ** CPU [#r60501e7] # cat /proc/cpuinfo ** Memory [#f3e4522e] # cat /proc/meminfo /////////////////////////////////////////////////////////////////////////////// * 仮想コンソールの数の変更 [#eb376148] 仮想コンソールの数は、 /etc/inittab に、次のように記述されている。 1:2345:respawn:/sbin/getty 38400 tty1 2:23:respawn:/sbin/getty 38400 tty2 3:23:respawn:/sbin/getty 38400 tty3 4:23:respawn:/sbin/getty 38400 tty4 5:23:respawn:/sbin/getty 38400 tty5 6:23:respawn:/sbin/getty 38400 tty6 数を減らす場合は、コメントにする。&br; 例えば、仮想コンソールの数を3つに減らしたい場合は、下3行をコメントに。 /////////////////////////////////////////////////////////////////////////////// * OOM-killer を止める [#of3b0151] - メモリ不足に陥ったときに、OOM-killerが勝手にプロセスを殺してしまうのを止めさせる。 - 以下のコマンドで止めることが出来る # sysctl -w vm.overcommit_ratio=99 # sysctl -w vm.overcommit_memory=2 - 状態を確認する # sysctl -a | grep overcommit - 起動時に毎回設定するには、 /etc/sysctl.conf を編集し、以下を設定する。 vm.overcommit_memory = 2 vm.overcommit_ratio = 80 /////////////////////////////////////////////////////////////////////////////// * ストレージ関連 [#tc348ec8] ** mount [#kfa1833c] vfatのパーティションを素でmountすると、日本語ファイル名が文字化けして読めなくなってしまう。&br; この場合は、mount のオプションで、 iocharset=euc-jp,codepage=932 を追加する。/etc/fstabに書くと、例えばこんな感じ: /dev/hda1 /webern vfat defaults,codepage=932,iocharset=euc-jp 0 2 ** デバイス上の不良ブロックを探す [#y2ac9433] - badblocks を使う - ddrescue を使う -- Debian でのパッケージ名は "ddrescue"、但しコマンドは "dd_rescue" # dd_rescue /dev/sdb2 - > /dev/null ** USB接続の外部ドライブからDVDを扱う [#n624ee6f] - デバイスは、 /dev/sr0 - mount # mount /dev/sr0 -t udf /mnt/dvd0 ** 空のイメージファイルを作る [#f957713d] - ファイルの作成 $ dd if=/dev/zero of=作成するイメージファイル bs=1 count=1 - ファイルシステム(必要なら) $mkfs -t <フォーマット> -F <イメージファイル> ** IDE HDDのパフォーマンスチューニング [#g4b61168] - [[IDE HDDのパフォーマンスチューニング>System/HDD/IDE/チューニング]] /////////////////////////////////////////////////////////////////////////////// * ファイルシステム [#g48e76b1] ** 消失ファイルの回復(ext2/ext3) --- debugfs [#d4d06060] # debugfs -w /dev/sdb2 debugfs 1.39 (29-May-2006) debugfs: <-- プロンプトが表示される。ここへコマンドを入力する。 - debugfsのコマンド |~Command |~Description | |lsdel | 削除した iノードの一覧を表示する | |stat <<no>> | ファイルのサイズや最終更新時間を表示する | |q[uit] | debugfsを終了 | - debugfsを起動するときは、対象となるパーティションはumountしておく必要がある ** 消失ファイルの回復(xfs) --- xfs_info/xfs_metadump [#u4aec8ba] ** 強制物理フォーマット [#q2ba6e92] - 空のデータを書き込んで、回復不能にする + 当該領域のファイルをすべて削除する + dfで、当該領域のブロック数を調べる + 空データを書き込む 対象パーティション: /dev/sdx1 対象パーティションのマウント先: /mnt/target 対象パーティションのサイズ(dfで調べたもの): xxx ...とすると # dd if=/dev/zero of=/mnt/tatget/null.iso bs=1 count=xxx /////////////////////////////////////////////////////////////////////////////// * アカウント管理 [#s677e1c8] ** ユーザ・グループの追加・削除 [#v199038f] - ユーザ追加 /usr/sbin/useradd /usr/sbin/adduser --> /usr/sbin/useradd # Debianでは別バイナリだが、RHELでは、adduserはuseraddのSymLinkになっている - ユーザ削除 /usr/sbin/userdel |~option |~description | |-r |対象ユーザのホームディレクトリ、メールスプールも削除する。&br;但しその他の場所にあるユーザのファイルは手作業で探して消さなければならない| - グループ追加 /usr/sbin/groupadd [-g gid [-o] [-f] ] group |~option |~description | |-g |新規グループのGID。&br; -o が指定された場合を除き、他のグループと値が重複してはならない | -- debian にある /sbin/addgroup は、 /usr/sbin/adduser へのSymLinkになっている。 - グループ削除 /usr/sbin/groupdel <group> -- group に対応するすべてのエントリを削除する。指定されたグループは存在していなければならない。 -- 全てのファイルシステムに、 指定したグループの ID を持つファイルが残っていないことを、 手作業で確認しなくてはならない。 -- 存在するユーザの主グループを削除してはならない。 グループを削除する前にそのユーザを削除しなければならない。 ** ユーザ情報の変更 [#xebe3ccd] - usermod - ユーザアカウントを修正する usermod [-c comment] [-d home_dir [-m]] [-e expire_date] [-f inactive_time] [-g initial_group] [-G group [,...]] [-l login_name] [-p passwd] [-s shell] [-u uid [-o]] [-L|-U] login |~option |~description| |-c <comment> |パスワードファイルのコメントフィールドに与える新しい値。 通常は chfn(1) ユーティリティによって変更される。| |-d <home_dir> |新しいログインディレクトリ。 -m オプションを用いると、 現在のホームディレクトリの中身が新しいホームディレクトリに移動される&br;(後者が存在しない場合は新たに作成される)。| |-e <YYYY-MM-DD> |そのユーザアカウントが使用不能になる日付。| |-f <YYYY-MM-DD> |パスワードの使用期限が切れてからアカウントが永久に使用不能になるまでの日数。&br;0にすると、パスワードの期限が切れると同時にこのアカウントは使用不能になる。 -1 にするとこの機能が無効になる。デフォルト値は -1。| - chfn - ユーザの氏名や情報を変更する。 /usr/bin/chfn [-f <full-name> ] [-r <room-no> ] ... [user] -- chfn は、いずれのオプションも指定されないと chfn は対話的に動作する。 -- オプションを指定しなかった場合、 chfn は現在のユーザアカウントに対して動作する。 -- 一般ユーザは、自身のアカウントに対してのみ実行出来る。 ** ユーザのログインシェルの変更 [#b0fb6169] /usr/bin/chsh - 一般ユーザの場合、選択するログインシェルは、 /etc/shells に記述されている必要がある。が、スーパーユーザの場合はその限りでない。 /////////////////////////////////////////////////////////////////////////////// * strace [#d6b8f3a7] /////////////////////////////////////////////////////////////////////////////// * パスワードを忘れた場合の対応 [#d62dba48] まずはインストーラのsecureモードでrootパスワードの変更を試みる。 ** インストーラ [#s3bea9de] ** インストーラが使えない場合 [#p3f5ee0b] grub メニュー "e" を入力 kernel 2.6.**** (つまり、使うカーネル)にカーソル合わせる "e" を入力 kernel 2.6.**** root=/dev/sda1/ ro quiet Linux single init=/bin/sh mount -o remount,rw / # これはどこでやったらいいのか要確認。 "b" を入力 /////////////////////////////////////////////////////////////////////////////// * grubが他の起動可能なOSのパーティションを認識しないとき。 [#a0cac067] - root で以下を実行すると認識するようになる。 # grub-setup - [[jlug.ml.debian.users WindowsXPとSqueezeをデュアルブートした際のG RUBの対処>http://groups.google.com/group/jlug.ml.debian.users/browse_thread/thread/5420c3979cc70735]] /////////////////////////////////////////////////////////////////////////////// * /proc [#p3fc7294] ** /proc/[pid]/cmdline [#ja47e75c] - プロセスの完全なコマンド行を保持する。 - そのプロセスがゾンビプロセス の場合は、このファイルは空となる。つまり、このファイルを読み出しても一文字 も返らない。 - このファイルではコマンドライン引き数が、 NULL バイト ('\0') で区切られた文字列として書かれており、 最後の文字列の後に NULL バイトが一つ置かれる。 /////////////////////////////////////////////////////////////////////////////// * Links [#xa7f2d97] - [[Linuxサーバ運用マニュアル 第6話「リソースをチェックしよう!」>http://ash.jp/linux/unyo/06.htm]] - [[HDDベンチマーク手順+性能測定結果一覧>http://plaza18.mbn.or.jp/~moriban/linux/HardDiskPerformance.html]] - [[Kernel Watch>http://www.atmarkit.co.jp/flinux/index/indexfiles/watchindex.html]]