
私はシステム管理者ではありませんが、Linux、Unix、Windows、ハードウェアに関する優れた知識を持っています。
Linux 管理者が(マニュアルを最大限に読まなくても、どのディストリビューションでも共通しているマニュアル ページをチェックして)暗記する必要がある最も必要なトピックは何ですか?
の集中これを設定するには、会社のネットワークからサーバー管理まで、同等の機能を持つ場合もありますが、ほとんどの場合、異なる機能もいくつかあります。たとえば、会社のサーバーに FTP サーバーが常に表示されるわけではありませんが、ほとんどの場合、Samba が表示されるでしょう...
私は「必ず読むべき本」などと言っているのではなく、Linux 管理者としての日常生活でおそらく必要となる最も必要な機能について言っているのです。
のように:
- カーネル、iptables
- Sendmail、Postfix、qmail、exim
- Squid、Samba、NFS、LDAP
- Apache、ngxix、lighthttpd
- vsftpd、proftpd
- 練る
- 日々直面する問題
- 一日で最も多く使用した機能は何ですか
これは順番通りのリストでも、最も必要なものでもありません。頭に浮かんだものをただ挙げただけです。
追記: 基本的な知識はすでにありますが、現場での日常的な経験はありません。サーバーを所有し、ネットワークをいくつか構築したことがあります。さらに、一部の部分については深い知識も持っています。ここで更新したいと思っただけです。前にも言ったように、これは Linux システム管理者の日常生活のリストです。
皆さんがトピックをリストアップし、たとえばその中で最もよく使用されるフィールドや、覚えておくべき重要なフィールドなどを挙げていただければ幸いです。
私の質問が不適切だと思われる場合は、お知らせください。自分で削除します。また、適切ではあるが、さらに手直しする必要があると思われる場合は、お知らせください。最善を尽くします。
答え1
日々の業務を本当に気にしていますか? 個人的には、何かが壊れて、ネットワークを復旧させるために皆が必死に追いかけているときに、やらなければならないことを覚えておくべきだと思います。日々の業務は、ネットワーク上で Linux ボックスが何をしているかによって変わる傾向があります。
かなり重要なスキルがいくつかあると思います。
ifconfig、route、ip などの CLI ツールのみを使用してネットワークを構成できる必要があります。
- 何度かクライアントから、Linux ボックスが故障したという電話がありました。私はライブ CD を起動してもらいました。しかし、サーバーは DHCP のないネットワーク上にありました (DHCP でした)。システムが起動したら、ネットワークと SSH の起動手順を説明して、リモート接続し、故障箇所の診断と修復を手伝う必要があります。
- インターネットにアクセスできない状況に陥っている場合は、オンラインに接続する方法を知っておく必要があります。
tar、rsync、dd を使用してシステムの完全バックアップを行う方法を知っておく必要があると思います。バックアップと復元の方法がわからない場合は、システムに触れるべきではありません。システムを変更する前に、実際にバックアップが行われていることを確認する必要もあります。
サーバー上のライブ CD からファイルシステムにアクセスする方法を知っておく必要があると思います。つまり、LVM とソフトウェア RAID ベースのドライブをアクティブ化し、パーティション情報にアクセスし、ファイルシステムをマウントする方法を知っておく必要があります。
- サーバーが起動できない場合は、ファイルシステムにアクセスして修正する必要があるかもしれません。緊急時に実際にマウントする方法を見つけるのはかなり大変です。事前に準備しておいてください。
- 起動時に変更できるよう、起動プロセスについて十分理解している必要があります。ほとんどのシステムは GRUB を使用しますが、LILO に遭遇する可能性もあります。
- 重要なのは、シングルユーザーなどのさまざまな実行レベルで起動する方法を知ることです。
- 少なくとも、tcpdump を使用して基本的なキャプチャを実行し、その結果を読み取る方法についての実用的な知識は必要だと思います。Wireshark の優れた GUI 機能はすべて優れていますが、何かが壊れていると、実際には Wireshark にアクセスできない可能性があります。
- tcpdump を実行するだけで、すぐに特定して解決できるネットワークの問題が多数あります。
答え2
持っているツールを知る
君が知ることはないだろうすべて事前に。しかし、あなたはできる何を扱えばよいかを知ってください。知っているツールが多ければ多いほど、使えるツールも増えます。ツールが何であるか、何をするのか、そのツールに関する詳細情報をどこで見つけられるかを知っていれば、それで十分です。
ページをよく理解してくださいman
。ページを暗記する必要はありませんが、探しているものがどこにあるかを知っておく必要があります。man
特定のシステムにインストールされているページは、参照しているシステムに対応するさまざまな癖やバージョン固有の情報を反映しているため、構文の詳細を調べるには Google よりもページの方が適しています。
apache
頻繁に使用する場合は、Apache 構成構文を学習することをお勧めします。 を使用する場合はnginx
、代わりにそれを学習してください。ただし、いずれにしても、両方が何であるか、およびそれらの違いを知っておく必要があります。
システムツール
どのような種類のシステム管理業務を行っているかに関係なく、役立つツールがいくつかあります。、などの基本事項を理解していると仮定するとchmod
、mount
一部の管理者が十分に理解していない非常に役立つツールをいくつか紹介します。
- rsync
- sar / iostat(sysstat パッケージの一部)
- facl の設定 / facl の取得(ほとんどの管理者は、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
を併用すると、非常に便利な機能を実行する簡単なフィルターをすばやく作成できます。たとえば、9 月に "/admin.php" にアクセスしたすべてのユーザーの IP アドレスを見つける必要があるとします。-p
-n
-i
perl -ne '
/([^ ]+).*\[..\/Sep\/2010.*\] "GET \/admin.php / and print "$1\n"' < access_log
わかりましたか? それほど悪くありませんでした。システム管理者として、このようなことを行う方法を知っていることが求められます。
答え3
私はLinuxを少し使っているWindows管理者なので、この質問に直接答える立場にはありません。しかし、私の意見では、基本をきちんと理解すれば、OSに関係なく管理者が知っておくべき最も重要なことは、どこそしてどうやって答えを見つけるために。
答え4
絶対に知っておく必要があることがいくつかあります。
シェルについてよく理解している必要があります (引数を解析する方法、ワイルドカードを展開する方法、厄介なコーナーケースがどこにあるかなど)。
X11 を実行せずにファイルを編集できる必要があります。
ファイル システムをマウントおよびアンマウントできる必要があります。
新しい情報を素早く吸収する能力が必要です。これは、会社のサーバー ファーム全体がクラッシュし、貧弱なコンソール サーバー (シリアル ポートの「コンソール」) や非常に低速の VPN 接続 (X11 ベースのものはすべて非常に困難) 経由でしかアクセスできないときに必要なスキルだからです。そして、それは必ず起こるので、そのための計画を立ててください。