BlackIceCoffeePhenomenon

溶け出す氷によって味が薄くなると併せ、味覚が苦味に慣れていくことで、加速度的に味覚への刺激が減衰する現象に関するブログです。

Linux Professional Institute LPIC-2 Exam 201, version 4.5 passed メモ

今日一番のトピックと言えば、FaceRigとLive2Dぽちったことで
旬の世界を覗けたことですが、今日はそれの数日前のログです。

 

LPIC Exam 201に合格したのでメモ公開です。

ここにあるもの全部覚えたら合格する!ってわけではないですが、

出題範囲の中でつくったあんちょこです。

しかり貼り付けと相性がわるい。。。

 

---------------キャパシティプランニング
Tips
CPU(ALL) : top, vmstat, iostat, mpstat
CPU(PID) : top, ps -u
CPU(Load): top, uptime, w
MEM(ALL) : top, free, vmstat, sar -r
MEM(PID) : top, ps -u
SWAP(USE): top, free, vmstat, sar-S, swapon -s
SWAP(IO) : vmstat
DISK(IO) : iostat, iotop, vmstat, sar-b
Net(IO) : iptraf, netstat -i, sar -n DEV|EDEV, ss
PID : top, psree-p, ps aux, lsof

 

# sar
sadcコマンドが収集したBinaryをテキストに変換
  sadfはsarの出力形式を変更できる
# sadf [Option] -- [sar option]
/var/log/sa/sa日付 に記録
%user, %nice, %system: プロセスの割合
%iowait, %steal, %idle:時間の割合
-u CPU
-P 1 1番目CPU
-r 物理メモリ
-S スワップ領域
-b ディスクIO
-n DEV|EDEV ネットワークIOの情報
-f 取得するファイルの指定
/usr/lib/sa/sa1 sadc
/usr/lib/sa/sa2 sar

# vmstat
procs
r:実行待ち数
b:IO待ち等で割り込み不可のスリープ状態
w:スワップアウトされた
memory
swpd:使用中のスワップ領域
free:空いてる物理メモリ
buff:バッファキャッシュ
cache:ページキャッシュ
swap
si:スワップイン
so:スワップアウト
io
bi:デバイスからの読み取りブロック
bo:書き込みブロック
system
in:割り込み回数
cs:コンテキストスイッチ
cpu
us:ユーザープロセスの割合
sy:カーネルの割合
id:アイドルの割合
wa:ウェイトの割合
st:バーチャルに使用された割合

 # netstat -i
TX:送信(Transfer)
  RX:受信(Receiver)

# w
現在時刻 稼働時間 ユーザー数 負荷平均(1,5,15分)
LOGIN@ ログイン時刻@16:03分記載

# iostat(CPU使用率とディスクIO)
 # iotop(ディスクIOの情報をプロセス毎に)
# pstree
-p: PID

# iptraf

# sar (sadc)
-u cpU
-r memoRy
-b diski/o
-n Network


collectd
/etc/collectd.conf
LoadPlugin


---------------Linuxカーネル
Module
# depmod (update /lib/modules/(VERSION)/modules.dep)
# lsmod listed enable module
# modinfo module info
# insmod loading module
# rmmod unload
# modprobe probe load unload (-r unload, -f force, -l list, --show-depends)
binはバイナリ、libはモジュール

 modprobe.conf
alias eth1 tg3 (eth1実行時にtg3をロード)
  option     パラメータ設定
  install     ロード
  remove     アンロード
# modprobe
: load(default)
-r: remove
-f: force
-l: listed
--show-depends

KernelParameter
即座に設定反映可能
/proc/sys以下にパラメータ操作用の仮想ファイルがある
sysctlは一時的、恒久変更の場合設定ファイルを変更
基本、初期時点で自動設定が入っている
# sysctl [param] view
-w write
-a list
恒久変更
   /etc/sysctl.conf
  /etc/sysctl.d以下のファイル
フォーマット
  Slash:cat /proc/sys/kernel/keys/maxbytes
  colon:# sysctl kernel.keys.maxbytes
  colon:cat /etc/sysctl.conf

Kernel本体
/usr/src/linux/kernel/    :ソース本体
/usr/src/linux/kernel/Makefile :makeの動作だけ
/usr/src/linux/Makefile     :バージョンとmakeの動作
/usr/src/linux/.config     :カーネルビルド用の設定ファイル


KernelUpGrade
自動でカーネルモジュールをリビルドする
  # dkms [Dynamic Kernel Module Support]

# make option
mrproper, oldconfig, all, modules_install, install
初期化  継承   ビルド インストール
   config :対話的
menuconfig :ターミナルGUI
xconfig :X上のGUI
defconfig :デフォ設定の設定ファイル作成
oldconfig :現在のカーネル設定を継承
cloneconfig :oldconfigと同じ
clean :設定ファイルを除いてクリーンに
mrproper :設定ファイルを含めてクリーンに


udev
  本体:/etc/udev/udev.conf
  個別:/etc/udev/rules.d
# udevadm : した三つまとめて
# udevcontrol : 動作/停止
# udevinfo : デバイス情報表示
# udevmonitor : 動作状況の監視出力


# uname
-s: カーネル名     
-r: カーネルバージョン Revision
-n: ホスト名      
-m: ハードウェア    
-p: CPUタイプ      cPu
-a: 全部 All

InitRamDisk
# mkinit rd
# mkinit ramfs
# dracut
  # mount -o loop initrd.img /mnt/ram

/boot
grub/
grub.cfg GRUB2
menu.lst GRUB
grub.conf GRUB
vmlinuz カーネルイメージ
system.map カーネルアドレスマップ
initrd.img 初期RAMディスクイメージ
config/ ビルド時の設定


---------------システムの起動
 Tips
  起動時に2度マウントされる。
  fsckによる検査修復後、RWでマウントする

 
  FAT:SYSLINUX
  cdrom:ISOLINUX
isolinux.cfg/
isolinux.cfg
  PXE:PXELINUX
     BootLoader: pxelinux.0
Configure : pxelinux.cfg/
DHCP & TFTP
  EXT:EXTLINUX
  syslinux --install /dev/sdb1

 GRUB
  /boot/grub/device.map 「(hd0) /dev/sda」
  表示名: title CentOS
  /の場所:root (hd0,0) (GRUB2 set root)
  本体 : kernel /vmlunuz-2.6.18.e15 (GRUB2 linux)
初期RAM:initrd /initrd-2.6.18.el5.img
オプション
   nosmp|maxcpus=0
   1 s single など

 UEFI
  概念:ESP(EFI System Partition)
  UEFI Shell:OS外からデバイスドライバTCP/IPが利用
  efibootmgr:OS上から操作する

 OtherBootLoader
systemd-boot(UEFI): ESP パーティションにアクセスできること
U-boot: OpenSourceステージ分割可能
isohdfpx.bin: ISOLINUXイメージでMBRコードのブートに起動
  efiboot.img: UEFIでISOLINUX使ってブートする
  bootx64.efi: UEFIのブートマネージャーでUEFI起動時にロードされる
  SecureBoot: X.509証明書を用いて起動制限する。Win8以降に割とある
  shim.efi
grubx64.efi


 systemd(Unit)
  service(サービスの操作)
  mount(ファイルシステムをマウント)
  device(udevのデバイス)
  target (ユニットのグループ化)


サービス起動
chkconfig redhut
insserv SUSE
-r: off
: on
update-ec.d Debian
update-rc.d [Option] Service [Operation] [Pri] [RunLv] .
defaults
start
stop
remove -f

/etc/init.d/ は存在し実スクリプトもあるが全レベル分
  /etc/rc3.d に3で起動するスクリプトのリンクだけ入れる

起動スクリプト
  K27test, S45TESTのようなもの
K(Kill),S(Start)でKから選出され若番から作動する

 

---------------ファイルシステムとデバイス

FileSystem--
  ext2 ×
  ext3
  ext4 ○ 1EiBサポート
  btrfs ○ サブボリュームやスナップショット
  xfs ○
  iso9660 CDROM
  FAT    古いWindowsやISOLINUXなど
  NTFS   XP以降のWindows
  NFS    ネットワークファイルシステム
  tmpfs RAMディスク
  swap   物理メモリのスワップ
  ZFS  ○ Solarisが使うbtrfsのパクリ

  VFS   ファイルシステムではない。異なるファイルシステム間のラッパー(?)

 ext2/ext3
  データブロック  ファイルの実体を保持する
  iノードブロック メタ情報(ファイル名/サイズ/パーミッション)を保持(128byte)
  スーパーブロック マウント回数やブロックサイズなど全体の情報

# mkfs
# mke2fs

# fsck
# e2fsck

# tune2fs
# e2label

# dumpe2fs
# debugfs

# mke2fs
-m root用予備領域
-L ボリュームラベル設定
-t ファイルシステムの種類

# mkisofs
-o 出力先
  -J Jolietフォーマット(Windows)
  -R RockRidgeフォーマット(UNIX)
-udf DVDのフォーマット

XFS
# mkfs.xfs
# xfsrestore Restore
# xfsdump Backup
 # xfs_admin
# xfs_check
# xfs_info

btrfs
# btrfs filesystem show
# btrfs subvolume create
# btrfs subvolume delete
# btrfs subvolume list
# btrfs subvolume snapshot

 fstab
LABEL=/boot (eq必須)

 UUID
  # blkid
/dev/disk/by-uuid

 オートマウント
どのディレクトリのどのデバイスをどのファイルシステムでマウントするか
設定:/etc/auto.master 他にauto.cdromなど
  左からマウントポイント、マップファイル、オプション
直接:/-
関節:/auto

---------------高度なストレージ管理

 LVM
# pvcreate 作成
# pvremove  削除
# pvmove   内容を移動
# pvdisplay 情報表示

# vgcreate 作成
# vgremove  削除
# vgextend  PVを追加
# vgreduce  PVを削除
# vgdisplay 情報表示

# lvcreate  作成 (-L サイズ; -n 名前; -s スナップショット)
# lvremove  削除
# lvextend  拡張
# lvreduce  縮小
# lvdisplay  情報表示


 # hdparam
-i 詳細情報
  -I 直接詳細情報
  -t BufferCacheオフの読み込み速度計測
  -T BufferCacheのみの読み込み速度計測
-c(0/1) 32bitI/O
-d(0/1) DMAモード
  -W(0/1) ライトキャッシュ

 # mdadm [--manage] RAIDバイス [Option] デバイス1 デバイス2
  Misc
-Q --query 状態表示(/proc/mdstat)
-D --detail 詳細情報
-S --stop 停止
  Manage
  -a --add 追加
-r --remove 削除
-f --fail 不良マーク付与
  Create
  -l --level=レベル
  -n --raid-devices=使用デバイス
  -x --spare-devices=予備デバイス

 

---------------ネットワーク構成

 # arp
-i インターフェース
-a 表示対象のホスト名指定
-d 削除対象のホスト名指定
-n IPアドレスのまま
-s IP+MACの対応をキャッシュに追加
-f ファイルの中身をキャッシュに追加


 # netstat(new ss)
-lantu は共通
-i インターフェース統計/内部TCP情報
-r ルーティングテーブル/名前解決


# tcpdump
  -i 対象インターフェース
-n IPアドレスのまま
-X 16進数&ASCIIで表示

  条件式(space区切り)
host
port
tcp/udp/icmp/arp
src/dst


 # iw obj command (無線)
dev [インターフェース名]
link
scan
connect/disconnect
station dump
  phy [phy1]
interface add/del
info


# namp
-sT -sU -sP スキャンタイプ(TCP/UDP/Ping)
-p ポート範囲指定
-F 辞書スキャン
-O OS識別

---------------システムの保守

# tips
+ tar xf file.tar [取り出したいファイル名]
+ gzip -c [StdOut] -c(cat)
+ ログイン後表示:/etc/motd
+ ログイン前表示:/etc/issue
+ ログイン中表示:wall

# rsync
-a: 属性保持
-e: 転送方法
-v: 詳細出力
-z: 圧縮転送
--delete 転送先削除

# patch
usage: patch [option] < [PatchFile]
usage: cat [PatchFile] | patch [option]
patch-kernel
-pN: (0: 修正しない, 1:先頭パスを削る, n:n階層分ディレクトリを削る)
-d: 作業ディレクトリの指定
-R: 適用を取り消す(ロールバック

sample: gzip -dc patch-2.6.38.5.gz | patch -p1

Build
# make
configure : Makefileの自動生成
Makefile : installやuninstallでの挙動を記載する指示ファイル
make : ソフトウェアのビルド
su(必要に応じて)
make install: パスの通ったディレクトリに配置しアクセス権等の設定も行う
clean : コンパイルで生成された全ファイルを削除