かっこいいエンジニア == フルスタックエンジニア
ブログのサブタイトルに「かっこいいエンジニアになりたい」と書いてました。
これって自分の中では「ベンチャー企業で活躍する豊富なスキルを持つエンジニア」ってイメージだったのですが、これを表現するいい言葉が出て来ました。
フルスタックエンジニアです。
なのでここは思い切ってタイトルを「ヘッポコからフルスタックを目指す記録」に代えることにしました。
さて、ここ数日怠けていたのでまた明日から気合を入れなおそう。
東日本復興マッチ観戦
オールスターマッチ特有の終始和やかな雰囲気で選手を一度に見れて気持ちいい観戦ができました。
早朝にブラジルに圧倒された日本代表を見たあとのどんよりとした気分を復活させてくれました。
天気がよめなかったので一眼レフを持っていくかだいぶ悩んだのですが、持って行って正解。夏の強い日差しが戻り、期待の若手からベテランプレーヤーまでたくさん撮れました。
「数百枚撮って一枚いいのがあれば良い。」みたいなことを先日お会いした熟練カメラマンの方が言っていたので一枚だけ気に入ったのをここに貼る。
松井大輔。もう最盛期は過ぎているかもしれないけど南アフリカでの熱いプレーが忘れられません。Jリーグでプレーする姿を見れたらと思います。
東日本復興マッチです。
やっぱり東北に行って見たい。
そう思っています。
まぁそれは近いうちに。
LPIC ファイル操作まわり その2
mount, umountコマンド
言うまでもなし。
mount [オプション]
mount [オプション] デバイス名 mountポイント
オプション無しだと現在のマウント状況が表示される。
# mount
/dev/mapper/VolGroup-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
オプション | 説明 |
---|---|
-a | fstabに記述されているファイルシステムをすべてマウントする |
-t ファイルシステム名 | ファイルシステムを指定する |
-o | マウントオプションを指定する。 |
umount [オプション]
umount [オプション] デバイス名/マウントポイント
オプション | 説明 |
---|---|
-a | /etc/mtabに記述されているファイルシステムをすべてアンマウントする。 |
-t ファイルシステム名 | 指定した種類のファイルシステムだけをアンマウントする。 |
クオータの制限
ハードリミット
- 利用できる最大ディスク容量。ハードリミットに達すると、それ以上ファイルを書き込む ことができなくなる。
ソフトリミット
- 容量制限の警告を発するタイミングがソフトリミット。ソフトリミットに達してもファイ ルの書き込みはできるが、ソフトリミット超過状態一定期間経過後書き込み不能になる。
クオータの適応
まず/etc/fstabのマウントオプションにusrquotaを追記する。グループの場合はgrpquota を追記。
その上で一度umount,mountを行う。
次にマウントしたファイルシステムの最上位ディレクトリにaquota.userを作成し、root のみのアクセス権を与える。 quotacheck コマンドでデータベースを初期化する。 # quotacheck /home
quotaonコマンドでクォータを有効にする。
edquotaコマンドでユーザごとのクォータを設定する。設定できたらrepquotaコマンドで確 認。
クォータ管理
quotaコマンドでディスクの使用量とクォータの状況を表示する。 ユーザ名を指定しない場合は自身のクォータ状況を表示する。
quota [-u/-g] [オプション] [ユーザ名/グループ名]
quotacheck コマンドでファイルシステムを調べてディスクの使用量をチェックし、デー タベースファイルaquota.user,aquota,groupに記録する。
quotacheck [オプション] ファイルシステム名
quotacheck [オプション] -a (/etc/fstabに従い、ファイルシステムのチェックを行う)
ファイル配置
Linuxにおけるファイルシステムないのレイアウトは、FHS(Filesystem Hierarchy
Standard)として標準化が進められている。
ルートファイルシステムに含まなければならないディレクトリは
/bin./sbin,/etc,/dev,/lib
以下主なサブディレクトリと忘れがちなディレクトリ
/opt
パッケージ管理の仕組みを利用してプログラムがインストールされるディレクトリ。
/var/cache
manコマンドで表示するために整形したデータなど、一時的なキャッシュファイルが配置 される。
/var/lock
アプリケーションが排他制御に使うためのロックファイルが配置される
/var/log
ログファイルが書き出される。
/var/run
システムの状態を示すファイルが配置されている。このファイルをしていしてkillとかで きる。
/usr/bin
ユーザが一般的に使い、システム保守に必要のないコマンドが格納されている。
/usr/sbin
上記の管理者用
/usr/lib
プログラムに必要な共有ライブラリ
/usr/local/
ローカルシステムで必要とされるコマンドやライブラリなどが配置される
/usr/share
システム・アーキテクチャに依存しないファイルが配置される。
/usr/src
find, locate コマンド
よく使うので割愛
updatedb コマンド
locate用にdbを更新する。
which,whereis,tyoeコマンド
割愛
LPIC ファイルシステム周り
du コマンド
ファイルとかフォルダの容量を表示。
$ du (フォルダの容量を表示)
48 ./.git/hooks
8 ./.git/objects/91
8 ./.git/objects/59
(省略)
412 ./.git
540 .
$ du -s .git/ (指定フォルダの容量を表示)
412 .git/
$ du -S .git (サブディレクトリを含めない)
48 .git/hooks
8 .git/objects/91
8 .git/objects/59
(省略)
4 .git/refs/remotes
4 .git/refs
4 .git/branches
28 .git
$ du -c (容量の合計を表示)
(省略)
412 ./.git
540 .
540 合計
$ du -a (ファイルも含める)
(省略)
412 ./.git
4 ./problem014.pl
12 ./.problem019.pl.swp
4 ./problem008.txt
4 ./problem016.pl
4 ./problem017.pl
4 ./problem009.pl
16 ./a.out
4 ./problem011.pl
4 ./README.md
4 ./problem_0007.cpp
540 .
fsck,e2fsck,tune2fsコマンド
fsck
:種々のファイルシステムのチェックシステムのフロントエンド
fsck [オプション] デバイス
ext2,ext3およびext4ファイルシステムのチェックと修復にe2fsckコマンドが利用できる 。
e2fsck [オプション] デバイス
tune2fs
コマンドはex{2,3,4}の様々なパラメータを設定する。
上記3つのコマンドはアンマウントした状態で行う必要があることに注意。
dumpe2fsコマンド。
ファイルシステムの各種情報を表示することができる。
[root@localhost ~]# dumpe2fs /dev/sda1 | more
dumpe2fs 1.41.12 (17-May-2010)
Filesystem volume name: <none>
Last mounted on: /boot
Filesystem UUID: ef6320be-67a8-47f9-851e-0f89719c6615
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 128016
Block count: 512000
Reserved block count: 25600
Free blocks: 442039
Free inodes: 127972
First block: 1
Block size: 1024
Fragment size: 1024
Reserved GDT blocks: 256
Blocks per group: 8192
Fragments per group: 8192
Inodes per group: 2032
Inode blocks per group: 254
Flex block group size: 16
XFS, ReiserFS
最近流行りのファイルシステム。
/etc/fstabファイル
ファイルシステムの情報がすべてここに。
# /etc/fstab
# Created by anaconda on Thu Apr 4 16:57:33 2013
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/VolGroup-lv_root / ext4 defaults 1 1
UUID=ef6320be-67a8-47f9-851e-0f89719c6615 /boot ext4 defaults 1 2
/dev/mapper/VolGroup-lv_swap swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
ファイルの形式は
デバイスファイル名 マウントポイント ファイルシステム マウントオプション dumpオプション fsck優先順位
となっている。
マウントオプション | 説明 |
---|---|
asnyc | ファイルシステムの非同期入出力を設定する |
auto | -aオプションでmountコマンドを実行した時にマウントする |
noauto | -aオプションでmountコマンドを実行してもマウントされない |
defaults | デフォルトオプション(async,auto,dev,exec,nouser,rw,suid) |
exec | バイナリの実行の許可 |
noexec | バイナリ実行非許可 |
ro | 読み出し専用でマウントする |
rw | 読み書きを許可してマウントする |
unhide | 隠しファイルも表示する |
suid | SUIDとSGIDを有効にする |
user | 一般ユーザでもmount可能にする |
users | マウントしたユーザ以外でもアンマウントできる |
nouser | 一般ユーザのmountを許可しないようにする |
LPIC プロセス管理周り
psコマンド
言うまでもなし。-
を付けないオプションの利用が推奨されている。
a
: 他のユーザーのプロセスも表示u
: 実行ユーザー名も表示x
: デーモンも表示
自分が起動しているプロセスを表示
$ ps
PID TTY TIME CMD
21902 pts/4 00:00:00 bash
24919 pts/4 00:00:00 ps
システム上のすべてのプロセスを表示
$ ps ax | head
PID TTY STAT TIME COMMAND
1 ? Ss 0:01 /sbin/init
2 ? S 0:00 [kthreadd]
3 ? S 0:00 [migration/0]
4 ? S 0:03 [ksoftirqd/0]
5 ? S 0:00 [migration/0]
6 ? S 0:02 [watchdog/0]
7 ? S 2:35 [events/0]
8 ? S 0:00 [cgroup]
9 ? S 0:00 [khelper]
topコマンド
継続的にプロセスの監視が行える。
$ top
top - 04:05:56 up 3 days, 14:41, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 79 total, 1 running, 78 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.3%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 502412k total, 218252k used, 284160k free, 40980k buffers
Swap: 1015800k total, 2032k used, 1013768k free, 70612k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1160 kisho 20 0 28436 4064 1080 S 0.3 0.8 4:09.49 tmux
24923 kisho 20 0 15020 1272 988 R 0.3 0.3 0:00.03 top
1 root 20 0 19228 988 808 S 0.0 0.2 0:01.13 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
4 root 20 0 0 0 0 S 0.0 0.0 0:03.90 ksoftirqd/0
5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
6 root RT 0 0 0 0 S 0.0 0.0 0:02.30 watchdog/0
7 root 20 0 0 0 0 S 0.0 0.0 2:35.93 events/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cgroup
9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khelper
10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 netns
11 root 20 0 0 0 0 S 0.0 0.0 0:00.00 async/mgr
12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 pm
13 root 20 0 0 0 0 S 0.0 0.0 0:03.98 sync_supers
pstreeコマンド
プロセスの親子構造を木構造で表示
$ pstree
init─┬─auditd───{auditd}
├─crond
├─dhclient
├─fastcgi-wrapper
├─master─┬─pickup
│ └─qmgr
├─6*[mingetty]
├─rsyslogd───3*[{rsyslogd}]
├─sshd───sshd───sshd───bash───tmux
├─tmux─┬─2*[bash───su───bash]
│ ├─bash───vim
│ └─bash───pstree
└─udevd───2*[udevd]
killコマンド
プロセスを停止するときに利用。kill -l
でシグナル名とシグナルIDが確認できる以下は主なシグナルIDとシグナル名
シグナル名 | シグナルID | 動作 |
---|---|---|
HUP | 1 | ハングアップ |
INT | 2 | Ctr + C |
KILL | 9 | 強制終了 |
TERM | 15 | 終了(デフォルト) |
CONT | 18 | 停止しているプロセスの再開 |
STOP | 19 | 一時停止 |
killall
コマンドではプロセスIDではなく、プロセス名でkillができる。
jobコマンド
コマンド&
として実行したコマンドはバックグラウンドで動く。
$ yum check-update
$ jobs
[1]+ Running yum check-update &
nohup コマンド
nohungup sshをログアウトしてもコマンドを実行し続けてくれる。これは便利。
$ nohup コマンド&
bg,fgコマンド
そのまんま。
niceコマンド
コマンド実行時の優先度指定nice値が低いほど優先度が高いことに注意(-20~19)
実行優先度を10低くする。
#nice -n -10 コマンド
負数を指定できるのはrootのみ
renice
コマンドで実行中のプロセスの優先度を変更できる。