使用しているツールを知る
事前にすべてを知ることはありません。しかし、あなたはあなたが何を扱う必要があるかを知ることができます。知っているツールが多ければ多いほど、使用できるようになります。ツールの内容、機能、およびツールに関する詳細情報の入手先がわかっている場合は、それで十分です。
man
ページをよく理解してください。それらを暗記する必要はありませんが、探しているものをどこで見つけるかを知っている必要があります。man
特定のシステムにインストールされているページには、見ているシステムに対応するさまざまな癖やバージョン固有の情報が反映されているため、構文の詳細を検索するのにGoogleよりも優れています。
頻繁に使用apache
する場合は、Apache構成構文を学ぶことをお勧めします。nginx
代わりに使用する場合は、代わりにそれを学びます。しかし、どちらにしても、両方が何であり、どのように異なるかを知っておく必要があります。
システムツール
どのような種類のsysadmin作業を行っていても、役立つツールがいくつかあります。以下のように、あなたは基本を知っていると仮定するとchmod
、mount
等を、ここでいくつかの管理者が十分に理解していないいくつかの非常に有用なツールは、以下のとおりです。
- rsync
- sar / iostat (sysstatパッケージの一部)
- setfacl / getfacl (ほとんどの管理者は、chmod / chownを使用する必要があると考えています)
- curlおよび/またはwget
- iptables
- 誰/最後/ w
コマンドライン忍者
シェルスクリプトの確実な理解は、困難なことを迅速かつ簡単にするために驚くべきことだと思います。構文を調べる必要がある場合は、まったく実行しない可能性があるため、事前に知ることが重要です。
たとえばmysqldump
、サーバーにインポートする必要があるデータベースを表す「.sql」ファイルでいっぱいのディレクトリがあるとします。35個すべてを手動でインポートしますか?シェルスクリプトの作成にかなり慣れている場合は、コマンドを1つ入力するだけで簡単にコーヒーを飲むことができます。
注:読みやすくするために、別の行に分割しました。セミコロンをそのままにしておくと、すべてを1行に入れることができます。それ以外の場合、各行の最後にセミコロンは必要ありません。
for FILE in *.sql; do
NAME=${FILE%.sql};
mysql -e "create database $NAME";
mysql $NAME < $FILE;
done
また、を使用してブラッシュアップすることをお勧めしsed
ます。それはどこにでも正規表現を適用する方法と考えてください。http://www.grymoire.com/Unix/Sed.html
電話番号を変更し、それに応じてすべてのWebページを更新する必要があるとします(混乱した場合に備えてバックアップコピーを保存します)。
sed -i.bak 's/555-1234/555-4321/' *.html
新しいことをするために既存のツールを適切に連鎖させる方法を知っていることも同様に非常に役立ちます。上記と同様に行う必要があるが、サブディレクトリ内を検索する必要があるとします-
find public_html -name '*.html' -print0 | xargs -0 sed -i.bak 's/555-1234/555-4321/'
また、の経験があると便利ですperl
。あなたはそれで深刻なプログラムを書く必要がないかもしれませんが、それがいることを多くのことを行うように設計されたsed
とawk
だけおそらく、もう少し柔軟に、行います。
Perlを使用して、-e
オプションを使用してコマンドラインマジックを実行できます。、、およびを使用すると-p
、簡単なフィルターをすばやく作成して、非常に便利なことを実行できます。たとえば、9月に「/admin.php」にアクセスした全員のIPアドレスを見つける必要があるとします。-n
-i
perl -ne '
/([^ ]+).*\[..\/Sep\/2010.*\] "GET \/admin.php / and print "$1\n"' < access_log
見る?それはそれほど悪くはありませんでした。システム管理者として、あなたはこのようなことをする方法を知っていることが期待されています。