LinuxまたはWindowsシステム管理者として作業する際に絶対に知っておくべきツール/ユーティリティは何ですか。
例えば、Linuxサーバーで作業している場合に必要になるGNU / screenについて考えています。
LinuxまたはWindowsシステム管理者として作業する際に絶対に知っておくべきツール/ユーティリティは何ですか。
例えば、Linuxサーバーで作業している場合に必要になるGNU / screenについて考えています。
回答:
Windowsシステム管理者は、SysInternalsに精通している必要があります。プログラミングと、マシンで何が起こっているかを診断するために、これらは非常に貴重です。
PuTTY:Windows用の優れた無料のSSHクライアント。私が働いていたほぼどこでも、これを使用してWindowsからUnixサーバーに接続しました。
sysdaminがコンピューターボックスで物理的に取得する必要があることを忘れないでください!
少なくとも1つ持っていることを確認する必要があります
スクリプティング。
私は、Windowsの標準コマンドシェルでさえ非常に役立つことがわかった。特にクライアントマシンにスクリプトを展開する場合は、PowerShellやcygwinをインストールして適切なスクリプト機能を取得する必要はありません。
役に立つたくさんの小さなUNIX / Linuxツールがあります
grep、strace、GNU Screen、locate、rsync、sed、awk、tripwireも非常に興味深いものです。
リストは本当に続いていますが、ここにリストしたものよりもはるかに忘れてしまったことでしょう。また、。* rcファイルの構成など、これらのツールを必要に応じて構成する方法についても学習します。これにより、すべてが非常に便利になります。たとえば、スクリーンに興味があるように見えるので、ここに私の.screenrcファイルがあります。
1 startup_message off
2 hardstatus alwayslastline
3 hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{=kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B}%Y-%m-%d %{W}%c %{g}]'
4
5 # Window numbering starts at 1, not 0.
6 bind c screen 1
7 bind 0 select 10
8
9 # Default screens
10 screen -t shell1 1
11 screen -t shell2 2
12 screen -t shell3 3
パワーシェル!Powershellは、.NETフレームワーク上に構築されたWindows用の素晴らしいコマンドシェルです。
シェルスクリプトツール:bash / sh、awk、grep、head、tail、less、cat、sort、uniq、wc(およびその他)
Awkを使用すると、問題を診断する必要があるときに重要なログファイルまたはその他のファイルを簡単に分析できます。一部の人々perl
はこれに使用します。どちらのツールについてもすべてを知っている必要はありませんが、何かを知っている必要があります。そのため、そのアクセスログまたはhttpログを確認して、異常なことが起こっているかどうかを判断できます。
awkをsort、uniq、tail、grep、wcと組み合わせて、あなたの人生をとても簡単にします。
シェルスクリプトをいくつか混ぜます。次のようなことができるのはとても便利です
for i in server1.example.com server2.example.com server3.example.com ; do
xterm -e "ssh ${i} tail -f /var/log/message | grep something ";
done;
これにより、3つのサーバーでログをgrepできますsomething
。このようなコツは時間を大幅に節約しますが、それはすべてシェルスクリプトツールによるものです。
for i in server{1,2,3}.example.com ; do
。このようなショートカットは、多くの入力を節約します。
tail
-ほとんどのLinux / Unixシステムで使用できるため、ファイルの最後の行(または末尾)を表示できます。tail -f
ファイルに追加された新しい行を表示することができます。
tail -F
(ではなくtail -f
)を使用すると、follow-by-inodeの代わりに、name-by-by-nameの動作が得られます。
これはおそらくあなたが望んだ答えではありませんが、私はいくつかの考えを共有したかっただけです。一般に、システム管理はツールだけでなく、使用するメンタルフレームワークも重要です。要するに-あなたがしたいタスクを知っていれば、それを行うツールを見つけることは非常に簡単です。
基本的に、システムについてシステム管理者が知っておくべき質問はほとんどありません。
現在、ツールの個人的な選択は..個人的です。
ところで、viについての答えは素晴らしいです!
m
優れたエディター。どちらでも構いませんが、私は炎の戦争を始めるためにここにいるわけではありません。ただし、優れたエディターを学ぶ必要があります。
私はほぼすべてにEmacsを使用しています。Vi(m)もまた良いものです。Windowsで何が最適かはわかりませんが、先ほど触れた2のWin32バリアントが良いと思います。
dmidecode-実行中のマシンに関するあらゆる種類の情報を取得するのに最適
strace-あなたが発行しているコマンドが希望通りに動作しない理由がわからない場合
find-この小さなコマンドには、おそらく知っているよりも多くのオプションがあります。マニュアルページを読んで、啓発される
xargs-物事のリストを処理する必要がある場合、非常に、非常に便利です
rsync -rsyncとそのさまざまなオプションを知ることは、ネットワーク内でデータを安全かつ迅速に移動するために不可欠です。
telnet-謙虚なtelnetコマンドは、おそらく他のコマンドよりも何年も多くのネットワーク接続の問題を診断するのに役立ちました
nmap-多分nmapを除く
nc -netcatは、クライアントが何をしようとしているかを確認するためのクイックサーバーのセットアップ、またはudpを使用した「telnet」にも最適です。チュートリアルを読んで、それがどれほど強力かを確認してください
opensslのs_client Telnetで安全な接続を介してhttpsサーバーに接続し、異常を診断します。
私は最終的に覚えているより多くのトンがあると確信しています。アップデートを確認してください;-)
私はDTraceの大ファンになりつつありますが、現時点ではWindowsでは使用できません。
UNIXでは、dmesg。すべてのシステム診断メッセージを収集し、画面にきれいに表示します。
そして、それはsyslogdによって「時代遅れ」になりましたが、私はまだdmesgがうまく物事を表示するためにsyslogdのセットアップを取得する方法を理解していませんでした。
tail /var/log/kern.log