作为Windows / Linux Sysadmin,您绝对应该知道哪些工具?[关闭]


17

在以Linux或Windows Sysadmin身份工作时,您绝对应该知道哪些工具/实用程序。

例如,我在考虑有关在Linux服务器上工作所需的GNU /屏幕的信息


+1为GNU /屏幕-这个星期我才刚刚“发现”它
戴维·海吉

您是在谈论软件还是硬件工具?
dance2die

我当时在考虑软件,但是硬件也很有用。我想我将把该职位转换为CW以列出所有工具。
paulgreg,2009年

Answers:


25

vi-我知道不是每个人都喜欢它,但是它几乎会出现在您遇到的任何* nix服务器上,并且当其他所有问题都损坏时,您将需要编辑配置文件。我也建议出于相同的原因使用csh和sh


4
实际上是vim,但始终知道vanilla vi命令对于没有安装vim的安装很有用。
罗伯·威尔斯,2009年

5
我认为这篇文章还有更多其他答案的潜力。我认为这被过早地标为答案……
dance2die

我更喜欢vi而不是vim,并尝试尽可能多地使用它。:P
罗伊·里科

34

作为Windows Sysadmin,您绝对需要熟悉SysInternals。无论是编程还是诊断机器正在发生什么,这些都是无价的。


2
绝对-这些工具不止一次挽救了我的脖子。
Keithius

哦,我以为他在推荐sysinternal书籍。
Pacerier 2014年

29

PuTTY:适用于Windows的出色免费SSH客户端。我工作过的几乎所有地方都使用它来从Windows连接到Unix服务器。


3
使用别人的计算机远程登录时,我使用PuTTY。但是在我经常使用的计算机上,我必须安装Cygwin / X。在您自己的盒子上显示X客户端是无可替代的。
乔恩·埃里克森

2
+1,腻子由99.98%的纯胜率组成。
艾利·佩恩

只是添加。很多人知道并喜欢油灰。我也喜欢向他们介绍如何使用Pageant。出于某种原因,我认识的开始使用腻子的人们中有75%的人不知道Pageant的存在,直到我通过设置他们的公钥/私钥对使他们走了。现在,他们无法相信他们以前没有。
扎克


17

替代文字

别忘了sysdamin需要使他们的计算机盒变得物理化!

您需要确保至少有一个

  1. 飞利浦螺丝刀
  2. 标准(平头)螺丝刀
  3. 镊子(用来捡起掉落在主板上暗处的螺丝)
  4. 备用SATA电缆
  5. 备用网络RJ45电缆(和交叉电缆)
  6. 压缩空气->清除所有灰尘。

一些花花公子还写了关于他/她认为每个人都应该在工具箱中拥有的十大东西的文章


实际上,我认为许多sysadmin管理员都无需体力劳动。
Pacerier 2014年

14

脚本编写。

我了解到,即使Windows的标准命令外壳也非常有用。无需安装PowerShell或cygwin即可获得不错的脚本功能,尤其是当脚本应部署在客户端计算机上时。


2
我同意脚本编写的重要性,但是我不同意无需安装Cygwin,powershell,Perl或类似工具即可获得不错的脚本编写。与真正的全功能脚本语言相比,批处理文件是一个令人沮丧的笑话。
Christopher Cashell

2
当然,功能全面的脚本语言比bat,cmd或vbs脚本的负载要好。我要说的是,内置的Windows脚本编写工具足以完成许多任务,尤其是当手头没有什么更好的时候。有点像“让我们使用正则表达式!” -现在您有两个问题。”
macbirdie 2010年


7

有很多有用的小型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

您能说出hardstatus字符串产生什么吗?很高兴在这里看到它,而不是在上面解码gobbledegook ...
Hamish Downer

非常真实!这是非常神秘的。它将状态行分为三部分。左边是主机名,中间是所有屏幕的列表,包括其编号和名称,当前屏幕已高亮显示,右侧是日期和时间。里面也有很多不同的颜色。
devin

6

对于Windows PuTTY(对于我来说,它管理远程* nix机器)的完美伴侣是WinSCP,这是一个完美,小型,简单且真正可用的FTP,SCP和SFTP客户端。



5

在任何平台上,您都应该熟悉本机且流行的备份工具。一位不知道如何进行良好备份的系统管理员,没有什么让我感到烦恼的。良好的备份将使您免于几乎犯任何错误。

-ntbackup在Windows上,dd / tar在Linux上-数据库转储命令-tftp到备份交换机/路由器/设备


5

Shell脚本工具:bash / sh,awk,grep,head,tail,less,cat,sort,uniq,wc(及其他)

使用Awk,您可以轻松分析日志文件或其他文件,这在需要诊断问题时至关重要。有人perl为此使用。您不需要了解任何一种工具的所有知识,但您应该了解一些知识,以便可以检查访问日志或http日志,并确定是否发生了异常情况。

将awk与sort,uniq,tail,grep和wc结合使用,使您的生活变得很轻松。

混合一些shell脚本。能够做这样的事情超级方便

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;

这样一来,您就可以在三台服务器上复制日志something。这样的技巧可以为您节省大量时间,而这完全归功于Shell脚本工具。


您应该知道这个宝石:for i in server{1,2,3}.example.com ; do。这样的快捷方式可以节省很多打字时间。
mogsie 2013年


4

tail-在大多数Linux / Unix系统上可用,可让您查看文件的最后几行(或末尾)。tail -f允许您查看添加到文件中的新行,因为它们出现了。

对于Windows,我喜欢BareTail


我不太喜欢,只需键入“ F”(shift + f)。less还会使“正确的文件”尾部紧跟inode,这在您查看日志文件时旋转时会出现问题。
serverhorror

使用tail -F(而不是tail -f)可以为您提供跟随名字的行为,而不是跟随inode。
Christopher Cashell

3

这可能不是您想要的答案,但我只是想分享一些想法。通常,系统管理不仅与工具有关,还与您使用的思维框架有关。简而言之-如果您知道要执行的任务,那么找到执行该任务的工具非常简单。

基本上,sysadmin对于系统没有几个问题要知道:

  1. 我有什么?(硬件,软件清单工具,例如rpm,apt,lshw)
  2. 我最近怎么样 (cpu,内存,磁盘使用率,应用程序使用率工具,例如top,vmstat,sar)
  3. 我将来会如何?(监视工具,例如nagios,zabbix)
  4. 我想要多安全?(防火墙工具,服务器加固工具,例如iptables,snort,ids系统,应用程序的安全模块)
  5. 我要我的服务器做什么?(用于管理应用程序的工具,例如postfix,qmail,apache,java,php等)。
  6. 如何使我的生活更轻松?(用于版本配置文件的工具,将配置部署到多个服务器中,无人参与的安装)

现在,工具的个人选择是..个人的。

顺便说一句,关于vi的答案很棒!


2

优秀的编辑。不管哪一个,我当然都不是在这里发动火焰战争。但是您需要学习一个好的编辑器。

我将Emacs用于几乎所有内容。Vi(m)是另一个好方法。不确定在Windows中最好用什么,但是我猜我提到的2的Win32变体会很好。


如上所述,vi在每台服务器上都可用,因此知道在托管公司中这是无价的。如果您无法连接到互联网,则无法安装所选的编辑器,因此请确保可以使用可用的编辑器编辑配置文件,并花费半小时使用vimtutor(在命令行中键入vimtutor)。尽管纳诺也相当普遍,但学习曲线却很少。
Hamish Downer

2

对于Windows系统管理员:

Cygwin。有时候,你只需要做一个快速的文本文件grepwcawk,或一些会花很长时间来写一个脚本。快速的网络日志,扫描grepawk真的可以节省一天。



2

dmidecode-非常适合获取有关其所运行计算机的各种信息

strace-当您无法弄清为什么您发出的命令无法按您希望的方式工作时

查找 -这个小命令有更多的选项,您可能不知道。阅读手册页并获得启发

xargs-当您需要处理事物列表时,非常非常方便

rsync-了解rsync及其各种选项对于在网络中安全快速地移动数据至关重要

telnet-不起眼的telnet命令可能比过去其他任何命令帮助我诊断了更多的网络连接问题

nmap-也许是nmap

nc -netcat非常适合设置快速服务器以查看客户端正在尝试执行的操作,甚至对于使用udp的“ telnet”而言。阅读教程,看看它到底有多强大

通过安全连接到https服务器的openssl的s_client Telnet来诊断怪异。

我相信最终我还会记得更多。请检查更新;-)



1

我正在成为DTrace的忠实拥护者,尽管目前它不适用于Windows。


Dtrace是否可用于Linux?您甚至如何获得Dtrace?
devin

1
并不是我所知道的,但是systemtap [ sourceware.org/systemtap/]包含一个beta版,该列表可供我使用。看起来它执行与DTrace类似的操作,但对于Linux。
米尔纳2009年

1

我不知道没有人提到VNC


您刚刚+1了。:)仍然像最初出现时一样可行和可用。
Avery Payne

许多系统管理员不使用X来管理其* nix服务器。我更喜欢FreeNX而不是VNC。
摘要

1

我通常使用的一些:

ps:查看当前正在运行的进程
wc:字数统计。显示新行,单词,字节。
grep:查找模式。匹配或不匹配(反向匹配)
>用于将输出重定向到新文件,或>>添加到文件末尾。
| 将命令链接在一起。下一个使用的第一个命令的输出。
tee:将收到的输入写到文件中,并在屏幕上显示文本。

我使用的最常见的链:
ps斧| grep MySQL的


1

对于Windows,请不要忘记NET和NETSH,如果没有它们,您将迷失在网络中。


1

一些工具不是强制性的,但可以使日常生活更轻松:

  • ccze观看颜色日志
  • moreutils包(DEB)
  • cfcat观看无注释的配置文件
  • wget以及如何重定向其输出

0

在Unix上,dmesg。它收集所有系统诊断消息,并在屏幕上很好地显示它们。

是的,它已经被syslogd“淘汰”了,但我仍然没有弄清楚如何获取syslogd设置来像dmesg一样很好地显示内容。


tail /var/log/kern.log
Teddy

0

对我来说,它必须是SSH和Putty:它可以节省大量的日常工作和旅行,这是不真实的,并且不会弄乱图形设置或等待屏幕刷新:-)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.