Linux管理者が頭で知っておくべきことは何ですか?


16

私はシステム管理者ではありませんが、Linux、Unix、Windows、およびハードウェアについて十分な知識があります。

Linux管理者が心から知る必要がある最も必要なトピックは何ですか(修正、セットアップ、マニュアルを最大で読まなくても解決できる点、ディストリビューションで一般的なmanページをチェックすること) )?

FOCUS私はこのためにセットしたいのは、会社のネットワークから最も時間のが、だけでなく、いくつかの異なるものを持つことになりますいくつかの同等の機能を有していてもよく、サーバの管理になります。たとえば、会社のサーバーのFTPサーバーが常に表示されるわけではありませんが、ほとんどの場合はSambaが表示される可能性があります。

「読む必要のある本」などと言っているわけではありませんが、Linux管理者としてあなたの日常生活でおそらく必要とされる最も必要な機能を意味します。

お気に入り:

  1. カーネル、iptables
  2. Sendmail、Postfix、qmail、exim
  3. イカ、Samba、NFS、LDAP
  4. Apache、ngxix、lighthttpd
  5. vsftpd、proftpd
  6. 練る
  7. 直面する日々の問題
  8. 日中に最もよく使用した機能は何ですか

これは、順序どおりのリストでも、最も必要なリストでもありません。頭に浮かんだものに名前を付けるだけです。

PS:私はすでに基本的な知識を持っていますが、この分野での毎日の経験はありません。サーバーがあり、いくつかのネットワークを作成しました。さらに、私はそれのいくつかの部分でいくつかの深い知識さえ持っています。ここでこれを更新したかったのです。これは、これがLINUX SYSADMINライフの毎日のリストだと言ったように。

皆さんがトピックをリストできるかどうか、たとえば、その中のどのフィールドが最も使用されているか、記憶することが重要であるかを評価します。

私の質問がふさわしくないと思うなら、私にそれを知らせてください。私はそれを自分で削除します。

回答:


19

日々のことを本当に気にしていますか?個人的には、記憶しておくべきことは、何かが壊れたときにやらなければならないことであり、誰もがネットワークを回復するために首を呼吸していると思います。日々のことは、Linuxボックスがネットワークで何をしているかによって異なる傾向があります。

かなり重要なスキルがいくつかあると思います。

  • ifconfig、route、ipなどのCLIツールのみを使用してネットワークを構成できる必要があります。

    • クライアントがLinuxボックスが失敗したと言ったことが何度かありました。私は彼らにlivecdを起動させました。しかし、サーバーはDHCPのないネットワーク上にありました(DHCPでした)。システムが起動したら、ネットワークとSSHを起動する手順を説明する必要があります。そうすることで、リモートで接続し、問題の診断と修正を支援できます。
    • インターネットにアクセスできない時点にいる可能性があり、オンラインにする方法を知る必要があります。
  • tar、rsync、またはddを使用してシステムの完全バックアップを行う方法を知っている必要があると思います。バックアップや復元の方法がわからない場合は、ほぼ確実にシステムに触れないでください。また、システムを変更する前に、実際にバックアップを作成する必要があります。

  • サーバー上のlivecdからファイルシステムにアクセスする方法を知っている必要があると思います。これは、LVMおよびソフトウェアRAIDベースのドライブをアクティブにし、パーティション情報にアクセスし、ファイルシステムをマウントする方法を知っている必要があることを意味します。

    • サーバーが起動できない場合は、ファイルシステムにアクセスして修正する必要があります。緊急時に実際に物事をマウントする方法を理解しようとすると、かなり苦痛になります。事前に準備してください。
  • 起動時に物事を変更できるように、起動プロセスに十分に精通している必要があります。ほとんどのシステムはGRUBを使用していますが、LILOに遭遇する可能性があります。
    • 重要なのは、シングルユーザーなどの異なる実行レベルで起動する方法を知っていることです。
  • tcpdumpを使用して基本的なキャプチャを実行し、結果を読み取る方法について、少なくとも実用的な知識が必要だと思います。WiresharkのすてきなGUI機能はすべて優れていますが、何かが壊れると、実際にはWiresharkにアクセスできない可能性があります。
    • tcpdumpを実行するだけで、すばやく特定して解決できるネットワークの問題が多数あります。

ネットワークの問題とファイル・システム上に作られた非常に素晴らしいポイントが答え:)感謝
グランプリ

Are you really sure you care about the day-to-day things?mmmmmしかし、1つの日常生活の一部で発生するinst問題?インスタンスのために使用される機能にあなたを導くであろうネットワークあなたが言ったように...など、起こる問題を平準化するもので、デバッグのDHCP ifconfigコマンド
グランプリ

10
良い点。また、その線に沿って:あなたはviエディタの基本を知っている必要があります。毎日の編集にjoe、pico、emacs、またはMS Wordを使用するかどうかにかかわらず、これらはレスキューシステムでは使用できず、viは異なります;)
スヴェン

1
おかげで、私はより多くの時間を学べる言い訳を探していました:q!viのコマンド。
-tovare

私は、ナノを持つシステムを見てきましたが、ナノおよびVI / vimのは、通常、普遍利用可能です
ファハドSadah

11

使用しているツールを知る

事前にすべてを知ることはありません。しかし、あなたあなた何を扱う必要があるかを知ることができます。知っているツールが多ければ多いほど、使用できるようになります。ツールの内容、機能、およびツールに関する詳細情報の入手先がわかっている場合は、それで十分です。

manページをよく理解してください。それらを暗記する必要はありませんが、探しているものをどこで見つけるかを知っている必要があります。man特定のシステムにインストールされているページには、見ているシステムに対応するさまざまな癖やバージョン固有の情報が反映されているため、構文の詳細を検索するのにGoogleよりも優れています。

頻繁に使用apacheする場合は、Apache構成構文を学ぶことをお勧めします。nginx代わりに使用する場合は、代わりにそれを学びます。しかし、どちらにしても、両方が何であり、どのように異なるかを知っておく必要があります。

システムツール

どのような種類のsysadmin作業を行っていても、役立つツールがいくつかあります。以下のように、あなたは基本を知っていると仮定するとchmodmount等を、ここでいくつかの管理者が十分に理解していないいくつかの非常に有用なツールは、以下のとおりです。

  • 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。あなたはそれで深刻なプログラムを書く必要がないかもしれませんが、それがいることを多くのことを行うように設計されたsedawkだけおそらく、もう少し柔軟に、行います。

Perlを使用して、-eオプションを使用してコマンドラインマジックを実行できます。、、およびを使用すると-p、簡単なフィルターをすばやく作成して、非常に便利なことを実行できます。たとえば、9月に「/admin.php」にアクセスした全員のIPアドレスを見つける必要があるとします。-n-i

perl -ne '
  /([^ ]+).*\[..\/Sep\/2010.*\] "GET \/admin.php / and print "$1\n"' < access_log

見る?それはそれほど悪くはありませんでした。システム管理者として、あなたはこのようなことをする方法を知っていることが期待されています。


ここで作成された@tylerlの非常に素晴らしいポイント+1 ...コマンドラインで行う必要のあるほとんどのことをperlを使用して頻繁に特定し、それらが必須であることを確認できます!あなたも普段trhuを走らせているいくつかの問題を投稿してくれませんか?私はそれについても読みたいです、ゾレダッチェの答えを読んだ後、私はそれらに多くの有用なものが出てくることを発見しました。非常に感謝しています !
グランプリ

9

私はWindowsの管理者で、Linuxに少し手を出しています。そのため、質問に直接答えることはできません。しかし、私の意見では OSに関係なく、管理者が知る必要のある最も重要なことは、基本をきちんと把握すれば、答えを見つける場所方法です。


情報マイニングは私の最高のスキルの1つです。私は職務の中で常にそれを使用しています。
sysadmin1138

よく私はすでに基本的な知識を持っていますが、フィールドでの日常的な経験はありません。サーバーがあり、ネットワークを作成しました。さらに、その一部について深い知識さえ持っています...本当にLinuxのSYSADMのために日常的に使用されているもので、よりそこに学ぶからより多くのこの知識を強化するために...私はもっとこの:)のうち、日常生活のリストを取得するに焦点を当てています
グランプリ

2

他の答えに加えて:

また、プロセスの処理方法についても知っておく必要があると思います。

  • / procにあるものを見つけるための基本的な知識
  • ps、top、vmstat、およびより高度なスピンオフ(ntop、htopなど)
  • nagios(過剰すぎる可能性があります)やmuninなど、少なくとも1つの適切な監視ツールの出力を解釈する方法を知っている。

sedを習得する必要はないと思います(少なくともそうではないことは承知しています)、私はgreps(grep、egrep、zgrepなど)の1つを簡単に使いこなすことができます。ただし、基本的な正規表現の構文を知っている必要があります。

メールサーバーを管理する場合は、MTA(後置またはexim)およびMDA(dovecot、cyrus、courier)を操作および/または監視する基本的なコマンドを知っている必要があると思います。実行しない場合でも、ローカル配信の問題の場合のみ、MTAで基本的なSMTPテストを実行できる必要があります。

使用している認証システム(PAM、LDAP)の回避方法を知っておく必要があります。パスワードはどこに保存されていますか?どのような手順を使用していますか?どのアプリケーションがどの認証メカニズムを使用していますか?


iotop :)このような素晴らしいツールはpsなしでは生きられません...はい、コマンドラインから実行できるのはこれらのコマンドまたはperl、python、phpなどの言語のいずれかです。
グランプリ

2

絶対に知っておくべきことがいくつかあります。

シェルを十分に理解する必要があります(引数の解析方法、ワイルドカードの展開方法、隅々にあるケース)。

X11を実行せずにファイルを編集できる必要があります。

ファイルシステムをマウントおよびマウント解除できる必要があります。

新しい情報をすばやく吸収する能力が必要です。これらは、会社全体のサーバーファームがクラッシュしたときに必要なスキルであり、piddlyコンソールサーバー(シリアルポートのように「コンソール」)および/または非常に遅いVPN接続(X11ベースの方法でも)を介してのみアクセスできるためです。痛い)。そして、それは起こるので、それを計画してください。


2

与えられた例はすべて素晴らしいサーバー関連の答えです。しかし、..システム管理は決して100%コンピューターではありません。

私たちの場合、これはマングルメント、Lusers、Contractors、Supplier ....を意味します。

システム管理者の仕事を維持するためには、必要なこと、やりたいこと、やるべきことについて話す方法、他の人に情報を提供すること、ドキュメントなどをすべて知っているカスタマーサービススキルが不可欠です。

プロジェクトに資金を提供して使用したい場合:お金を請求する方法がわからない場合、数字/代替案/ DR計画/見積り/実装計画がない場合、新しいサーバーを取得しようとしても意味がありませんオフィスポリティクスはB ** CHであり、お金は常に次のとおりです。「タイト」..どういう意味でも..幹部の社用車には影響しませんが、可能であればサイトのセキュリティと標準化能力に影響します彼らにあなたの理由を印象づけないでください。

覚えておくべき最も重要なことは、ユーザーが言うことを信用しないことです。電話に応答するときは、そのことを覚えておいてください。彼らが何を言っても、あなた自身のためにそれを理解する必要があります。彼らがあなたの上司を非難するために流行語を満載した段落をまとめることができるからといって、彼らが実際に彼らが言ったことを実際に知っていることを意味しない。

他の考え:

  • UPS の電源が切れたときにすべてをシャットダウンするのに十分な時間があることを確認してください

  • 監視、ダウンしたことを確認してください。ルッシャーが電話するのを待たないでください。

  • BACKUPS BACKUPS BACKUPS ..優れたバックアップシステムがない場合、マルチユーザーシステムは残業する傾向があります。残業は悪いです(ポケットのためではなく、予算とプロ意識の外観のため)。

  • 金曜日、または休日の前日には何も変更しないでください。週末に呼び出されます。それを修正する必要があり、本当に悪い時間になります。

  • 標準化と自動化。スクリプトを作成できるのなら、なぜそうではないのですか?

  • ヘルプデスクシステムの使用方法とインストール方法を把握し、ユーザーがシステムを介して通話を記録できるようにします。これにより、アクティビティを追跡し、上層部にインセンティブを提供して、行った作業に対してより多くの支払いを行い、記録することができます回答(事実上のKB)..すべてをユーザーに進行状況を通知します。ユーザーのクエリ/問題が洪水で失われないようにします。(Spiceworksは無料で、他にもたくさんあります)

  • リモンチェッリによる「システム管理の実践」のコピーを購入しました。これを強くお勧めします。


1

Linux管理者は、ファイル許可を完全に理解する必要があります。また、susudochmodchownなどのツールの使用、ユーザーをグループに追加する方法、新しいユーザーを作成する方法、特定のユーザーにSSH特権を与える方法、またはグループ。



0

学びsedgrepawk:私は、Linuxのシステム管理者として、毎日何をすべきかの多くは、ファイル/コンピュータ/ユーザー/などの膨大なリストをプルダウンです。入力を別のプログラムが使用する別の出力セットに変換します。

具体的な例としては、バグジラやRTなどから破壊されたコンピューターのリストを取得し、上記の3つのツールのいずれかを使用してテキストドキュメントにすばやくコピーして貼り付けた余分な情報をすべて取り出してから出力します。 SSHで接続する必要のある一連のノードのスペース区切りリスト。

また、使用しているシェルの上限を確実に知る必要があります。たいていの場合、古いファイルを大量に削除する必要がある場合は、30k以上のファイルが入ったフォルダーに遭遇する可能性があります。rm *は機能しません。アスタリスクは3万エントリ以上のリストに展開され、使用しているシェルはそのサイズのリストを保持できない可能性が高いためです。これを解決する方法がであるxargs:代わりにrm *、あなたが使用したいls | xargs -i{} rm {}どの、働きます。


0

システム管理者として、私は自分自身をデジタルドクター(または、場合によっては世界クラスの脳外科医)であると考えています。

すべてが機能したら、自分のスキルと管理するシステムを改善するための十分な時間があります。

何かが失敗した場合、すぐに問題を診断し、修正方法を理解できる必要があります。

そのため、管理するサーバーとアプリケーションの基本(およびある程度は内部も)を学習/記憶する必要があります。会社が、NFSを介して提供されるWebルートを使用してWebサイトをホストしているとします。突然、すべてのwwwノードが警告を開始し、サイトが応答しなくなります。何を疑うべきですか?ああ!NFSサーバーがダウンしたばかりで、何らかの理由でフェールオーバークラスタリングも機能しませんでした。

学ぶべきもう1つの重要な側面は、管理するサーバーの基本負荷です。平均負荷、CPU使用量、メモリ使用量などを記憶する方法を学びます。わかりました、実際にすべてを覚える必要はありません-Cactiまたはnet-snmp + mrtgで作成されたグラフは大いに役立ちますが、サーバーXについてのページャーアラームが奇妙に振る舞い、同時にヘルプデスクが他のことについて話すとサーバーやサービスがおかしな場合は、これら2つのことを組み合わせて、ログ、アラーム履歴、グラフを見る前に修正することができます。

また、最悪の事態に備えてください。停電のためにデータセンター全体が停電した場合の対処方法を考えてください。電気が再び利用可能になった後、どのようにすべてを起動しますか?何かが起動しない場合はどうしますか?バックアップをどのように復元しますか?または、サーバーに侵入したクラッカーについて誰かから警告を受けたらどうしますか?(この種のことはチェックリストとして文書化する必要がありますが、ある種の直観を持っていることも良いです)


そして、他の人が述べたように、(半)自動的に実行する必要があることを続けてスクリプトを作成します。シェル/ Perlを学び、遊んでください。彼らは本当にあなたの親友であり、非常に複雑な問題をパイプでつなぐだけで解決できることがよくあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.