Linuxシステム管理コマンド 備忘録
Linuxのシステム管理に関する基本的なコマンドを網羅的にまとめておく。
ユーザ管理
ユーザの作成
# ログインシェルを指定してユーザ作成 useradd -s /bin/bash tkdmah # ホームディレクトリと合わせてユーザ作成 useradd -m tkdmah # 所属グループを指定してユーザ作成(-g:プライマリグループ、-G:一般グループ) useradd -g staff -G dev,admin tkdmah
ユーザの削除
# ホームディレクトリも含めてユーザ削除 userdel -r tkdmah
システム管理
基本情報の取得
# システムの種類を取得 uname -a # 稼働状況(ロードアベレージ)を取得 uptime # 時刻を取得 date
ランレベル
# 現在のランレベル値を確認 runlevel # ランレベルを(1に)変更 init 1
システムの起動/停止
# ただちにシステムを再起動 shutdown -r now # 時刻を指定して(10分後に)システムを再起動 shutdown -r +10 # システムを停止 shutdown -h now # システム停止・再起動の予約をキャンセル shutdown -c
プロセス管理
プロセスの確認
# システム上のすべてのプロセス情報を表示 ps ax # プロセスの実行ユーザ権限を含めてプロセス情報を表示 ps aux # psコマンドで右端が切れている続きを表示してプロセス情報を表示 ps auxw
プロセス親子関係の確認
# プロセスの親子関係を確認 pstree # プロセスIDを含めてプロセスの親子関係を確認 pstree -p
プロセス負荷の監視
# 負荷を確認 # Ctrl+c:終了、P:CPU利用順、M:メモリ利用順 top
プロセスの終了
# PIDを指定してプロセスを終了 kill <PID> # PIDを指定してプロセスを再起動 kill -HUP <PID>
プロセスの優先度付け
# 優先度(6)を指定してプロセスを実行 nice -n 6 <プロセス名> # 実行中のプロセスの優先度を(10に)変更 renice 10 -p <PID>
メモリ管理
# 仮想メモリの統計を(1秒ごとに3回)確認 vmstat 1 3 # 空きメモリ量と使用メモリ量を確認 free
ジョブ管理
定期的なジョブ実行
# cronに設定を追加 crontab -e ## crontabの設定例 # 0 6,12 * 9 1 command # 分 時 日 月 曜日 コマンド # cronの設定を確認 crontab -l # cronの設定を初期化 crontab -r
一度のみジョブ実行
# ある時間(11/22 0:45)にジョブを実行 at 0:45 Nov 22 # at>プロンプトで予約コマンドを指定 # at> shutdown -h now # 指定完了後、Ctrl+dで終了 # 予約されているジョブを確認 atq
ネットワーク管理
IPやネットマスクの設定
# ネットワークインタフェースの設定を確認 ifconfig ip addr # IPアドレスやネットマスクを変更 ifconfig eth0 172.16.0.1 netmask 255.255.0.0
ポートの確認
# ポートの状況を確認 netstat -a # ポートを利用しているプロセスを確認 lsof -i
通信状況の確認
# 指定したホストと通信可能か確認(Ctrl+cで終了) ping 172.20.0.100 # 指定したホストとの通信経路を確認 traceroute 172.20.0.100 # ルーティングテーブルを確認 route ip route # ルーティングキャッシュを確認 route -C # arp情報を確認 arp ip neigh
ストレージ管理
ファイルシステムの管理
# パーティション構成を確認 fdisk -l # ディスクの利用状況を確認(-h:単位表示) df -h # ファイル容量を確認 du /project/sd/sample_file # カレントディレクトリ以下のすべてのファイルの容量を確認 du # I/Oの統計情報を確認 iostat -d # 詳細なI/Oの統計情報を確認 iostat -d -x
バックアップ
# テープドライブ(/dev/nst0)に(/homeの)バックアップを取得(-z9:zlibによる高圧縮、-b:1回のI/Oでやりとりするブロック数) dump -0u -z9 -b 20 -f /dev/nst0 /home # バックアップをリストア restore -r -f /dev/nst0
参考:Linuxエンジニア養成読本