はじめに
現在運用保守の業務でLinuxを使う機会が多くあります。
その中でよく使うコマンドと、コマンドのちょっとしたミスで事故になりかけた話をしようと思います。
慣れるまではコマンドがパッと出てこなく苦労しますが、使いこなせると便利なコマンドが多いです。
運用保守の現場では障害時に、一刻も早いログ確認等の原因調査が求められますので、便利なコマンドは熟知しておきたいものです。
よく使うコマンド
lessコマンド
less [ファイル] で指定のファイルを閲覧できます。
ファイル閲覧やログ監視などで活躍する便利なコマンドです。
閲覧のみのコマンドのため、編集してしまう恐れもなく安心です。
less -N [ファイル]
上記オプションで行番号も表示できます。
less -S [ファイル]
上記オプションで長い行を折り返さず表示できます。
catコマンド
cat [ファイル] で指定のファイルを全行表示させます。
cat [ログファイル] | grep [検索する文字列]
障害発生時に、ログからerror分のみ抽出するときによく使用します。
ログファイルの全行をパイプで渡して、grepで文字列を検索しています。
cat [ログファイル] | grep -i [検索する文字列]
上記オプションで大文字と小文字を区別せずに検索できます。
tailコマンド
tail [ファイル] で指定のファイルの行末を表示させます。
最新のログが行末に出力されるため、業務でログを確認する際によく使用します。
また、ファイルを更新し保存したときなど、ちゃんと記録が取られているかを確認する際にもよく使用します。
viコマンド
tail [ファイル] で指定のファイルを開き、テキストエディタを起動します。
viエディタは入力モードに移るためのキーと、切り取りやコピーをするコマンドモードのキーがあります。
モード切り替え
(コマンドモード → 入力モード)
i
現在のカーソル位置に文字を挿入する
O(大文字)
現在のカーソル行の前の行に行を挿入する
o(小文字)
現在のカーソル行の次の行に行を挿入する
基本的に自分はiキーを使用します。
モード切り替え
(入力モード → コマンドモード)
esc をクリックします。
よく使用するキー
x
1文字削除する
dd
1行削除する
削除行数 + dd
指定した行数削除する
d$
カーソル位置から行末まで削除
d^
カーソル位置から行頭まで削除
u
取り消し
Ctrl + R
取り消しのやり直し
0
行の先頭へ移動
$
行の末尾へ移動
G
最終行へ移動
行数 + G
指定した行へ移動
:set number
行番号を表示
/ + 正規表現
前方検索
? + 正規表現
後方検索
n
次の候補
N
前の候補
:w
保存
:w!
強制保存
:q
保存しないで終了
:wq
保存して終了
ちょっとしたミスで事故になりかけた話
chmodコマンドはファイルやフォルダのパーミッション、アクセス権限を設定するLinuxコマンドです。
パーミッションとは、Linuxを含むUnixで扱われるファイルやディレクトリのアクセス権の設定のことです。
chmod [アクセス権限] [ファイル名]
上記コマンドで指定したファイルの権限を変更できるのですが。
[アクセス権限]と[ファイル名]の間に余計なスペースが空いたまま実行してしまうと
sysadm(システム管理者)の権限が変更されてしまうのです。
権限が変更されてしまうとsysadm01にログインができなくなり、急遽もう1つのsysadm02でログイン後、sysadm01を正規の権限に変更し、解決できました。
この事象は複数回発生しているのですが、最初はsysadm01のみしか無かったため報告書を提出するレベルだったそうです。。。
手順書がある場合はコピペを活用する。
chmodコマンドやrmコマンドを実行する際には十分に注意し、可能なら確認者を付けて実行するのが安全かと思います。