Top / Installmemo / Linux

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Link

ブートローダー

Disk管理

Network関連

Kernel

チューニング

  • martian sourceのエラーログ
    発信元のIPが不正であることを示す.RFC1812によるとログに記録されることが求められるが、procファイルシステムのlog_martiansによってログへの出力をコントロールできる。
    /proc/sys/net/ipv4/conf/eth0/log_martians
    /proc/sys/net/ipv4/conf/all/log_martians
  • 最大プロセス数
    Linuxにおける最大プロセス数の考え方は、プロセス数+スレッド数。また、glibcに関連する場合の最大スレッド数はPTHREAD_THREADS_MAXの定義を確認。
    /proc/sys/kernel/threads-max
  • メモリオーバーコミット(Kernel 2.6 uppper)
    メモリが逼迫した状況でも、memory overcommit によるプロセスの突然死を起こしたくな い状況ではproc/sys/vm/overcommit_memory を "2" にし、
    かつ overcommit_ratio を調整して "malloc_limit"値 が物理メモリ量を超えないようにすれば良い
    malloc_limit[MB]= swap領域のサイズ[MB] + (物理メモリ量[MB] * overcommit_ratio / 100)
     
    # sysctl -w vm.overcommit_ratio=99
    # sysctl -w vm.overcommit_memory=2
  • lowメモリ領域
    > cat /proc/sys/vm/lowmem_reserve_ratio
    256     256     32
  • 仮想メモリ管理
    /proc/sys/vm/swappiness
  • Oracle
    OracleをLinux上で稼働させる場合、Kernelのチューニングを行う必要がある。
    kernel.sysrq
    kernel.shmmax
    kernel.sem
    kernel.msgmax
    kernel.msgmni
    kernel.threads-max
    kernel.shmmni
    kernel.msgmnb
    fs.file-max
    net.ipv4.ip_local_port_range
    http://www.oracle.co.jp/2shin/no86/o35linux.html
  • CPUSpeed
    http://www.carlthompson.net/Software/CPUSpeed
    CPUspeedで選択できるクロック数を確認する方法
    % cat //sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
    1600000 1400000 1200000 1000000 800000 600000

ユーザーID管理のメモ

# chage
Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]
       [-I inactive] [-E expire] [-d last_day] user

パスワード期限表示

% chage -l user01
パスワード:
Minimum:        0
Maximum:        90
Warning:        7
Inactive:       -1
Last Change:             3月 07, 2012
Password Expires:        6月 05, 2012
Password Inactive:      Never
Account Expires:        Never
# usermod
使用法: usermod [-u ユーザID [-o]] [-g グループ] [-G グループ,...]
               [-d ホーム [-m]] [-s シェル] [-c コメント] [-l 新規ユーザ名]
               [-f 無効日数] [-e 期限切れ日 ] [-p パスワード] [-L|-U] ユーザ名
  • /etc/shadowファイルのフォーマット
    username:passwd:last:may:must:warn:expire:disable:reserved
    usernamepasswdlastmaymustwarnexpiredisablereserved
    ユーザ名エンコードされたパスワード1970年1月1日から、パスワードが最後に更新された日までの日数何日前にパスワードが変更されたと思われるかパスワードを変更しなければならない期限パスワードの期限切れの何日前にユーザに警告するかパスワード期限切れの何日後にアカウントを抹消するか1970年1月1日から、アカウントが抹消された日までの日数予約フィールド
  • ロック
    • 状況表示
      # faillog -u username
    • ロックの解除
      # faillog -r username
  • rootユーザーのログインコンソール制限
    /etc/securettyに記載されたコンソールのみrootユーザーはログイン可能である。
    #
    # This file contains the device names of tty lines (one per line,
    # without leading /dev/) on which root is allowed to login.
    #
    tty1
    tty2
    tty3
    tty4
    tty5
    tty6
    # for devfs:
    vc/1
    vc/2
    vc/3
    vc/4
    vc/5
    vc/6
    ttyS0
    ttyS1

Timezoneの変更

/etc/localtimeファイルによってデフォルトのタイムゾーンが設定される。localtimeファイルを置き換えることでタイムゾーンの変更が可能である。

# mv /etc/localtime /etc/localtime.est
# cp -ip /usr/share/zoneinfo/Japan /etc/localtime

最後に/etc/sysconfig/clock を修正する。

ZONE="Asia/Tokyo"

RPM

RPMのエラー

  • キャッシュファイルが損傷した
    # apt-get update 
    取得:1 http://updates.vinelinux.org 4.1/i386 release [2254B]
    2254B を 0s 秒で取得しました (15.4kB/s) 
    取得:1 http://updates.vinelinux.org 4.1/i386/main pkglist [286kB]
    取得:2 http://updates.vinelinux.org 4.1/i386/main release [158B]
    取得:3 http://updates.vinelinux.org 4.1/i386/plus pkglist [484kB]
    取得:4 http://updates.vinelinux.org 4.1/i386/plus release [166B]
    取得:5 http://updates.vinelinux.org 4.1/i386/updates pkglist [47.0kB]
    取得:6 http://updates.vinelinux.org 4.1/i386/updates release [169B]
    取得:7 http://updates.vinelinux.org 4.1/i386/nonfree pkglist [5713B]
    取得:8 http://updates.vinelinux.org 4.1/i386/nonfree release [169B]
    取得:9 http://updates.vinelinux.org 4.1/i386/main srclist [121kB]
    取得:10 http://updates.vinelinux.org 4.1/i386/plus srclist [199kB]
    取得:11 http://updates.vinelinux.org 4.1/i386/updates srclist [10.4kB]
    取得:12 http://updates.vinelinux.org 4.1/i386/nonfree srclist [10.1kB]
    1164kB を 2s 秒で取得しました (389kB/s)
    セグメンテーション違反ですでいます... 0%
    対応-キャッシュファイルを削除する。
    # mv /var/cache/apt/pkgcache.bin /tmp/
    # mv /var/cache/apt/srcpkgcache.bin /tmp/
  • RPM DBが損傷した
    表示されるメッセージ例
    rpmdb: PANIC: fatal region error detected; run recovery
    error: db4 error(-30977) from db->get: DB_RUNRECOVERY: Fatal error, run database recovery
    対応
    # mv /var/lib/rpm/__db.001 /tmp
    # mv /var/lib/rpm/__db.002 /tmp
    # mv /var/lib/rpm/__db.003 /tmp
    # rpm --rebuilddb

RPMオプション

  • PRMからインストールされるファイル一覧を表示する
    # rpm -qlpi パッケージ名.rpm

Tips

  • キャッシュをクリアする
    1=ページキャッシュ解放
    2=ダーティキャッシュ、inode解放
    3=ページキャッシュとダーティキャッシュ、inode解放
    # echo 1 > /proc/sys/vm/drop_caches
  • HDDのパーティションにラベルを付ける
    # e2label /dev/hdaxx /labelname
  • RAM tmpファイルシステムを使う
    ファイルシステムタイプ tmpfsはメモリ上に展開される。/dev/shmにマウントされる。
    実際にファイルI/Oに使うには下記のようにマウントする。(/tmpに32MB RAM上から割り当てられる)
    サイズ指定しない場合は実メモリの半分が割り当てられる。
    # mount -t tmpfs -o size=32m tmpfs /tmp
    /etc/fstabにも記述可能。
    /dev/shm             /tmp                    tmpfs    defaults,size=64m        0 0
  • ISOイメージをマウントする
    # mount -o loop /tmp/IMAGE.iso /mnt/cdrom/
  • ファイルを完全消去する
    $ shred --remove test.bin
  • シリアルコンソール化
    • inittabの追記
      co:2345:respawn:/sbin/agetty -h 115200 ttyS0 vt100
    • liloの修正
      カーネル指定のappendオプションに次を追加
      console=tty0 console=ttyS0,115200
    • kuduzuの更新停止
      # vi /etc/sysconfig/kudzu
      SAFE=yes
    • シリアルコンソールのログイン許可
      /etc/securettyにttyS0を追加
      http://www.shoshin.co.jp/c/lsi/scs/faqlinux.html
    • シリアルポートの設定
      # stty 転送レート -F デバイス名
      現状の設定値確認
      # stty -a -F /dev/ttyUSB0
      speed 9600 baud; rows 0; columns 0; line = 0;
      intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>;
      swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;  lnext = ^V; flush = ^O;
      min = 1; time = 0;
      -parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts
      -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon  -ixoff -iuclc -ixany
      -imaxbel
      -opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
      -isig -icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
      コントロールをすべてoffにする場合
      # stty 9600 raw -F /dev/ttyUSB0

Counter: 9947, today: 2, yesterday: 0