1818IP-服务器技术教程,云服务器评测推荐,服务器系统排错处理,环境搭建,攻击防护等

当前位置:首页 - 运维 - 正文

君子好学,自强不息!

对于Linux管理员来说,有很多非常有用的工具可供选择。在这里,我只是列举出其中5个,Linux管理员日常操作都要用到的工具。我认为,功能***的工具可能并不适合你的使用情况,而且绝对有些工具我还忘了把它们统计进来,如果是这样的话,我恳请大家把我没收录的工具在评论中写出来。另外,本文中提到的工具仅供选择,并不是每个人都一定需要它们,而那些没提到的工具,并不是说Linux管理员就不需要使用,像SSH, SCP这样的工具,每个Linux管理员都必须使用并且没有其他选择。

#5. head/tail命令

大多数情况下,登录服务器的唯一目的是诊断某些问题,常规方法是查看日志。有各种不同应用类型的日志,比如Apache日志、MySQL日志、邮件日志等。那么你用什么命令来查看日志呢,难道不是tail吗?这其实与此类似,我们有时候可以使用“head”命令来查看一个文件的开始几行。

几个例子:

*持续检查Apache错误日志文件,可以使用以下命令: 

$tail-f/var/log/httpd/error_log

*查看MySQL日志中的前15行内容,可以使用以下命令: 

$head-15/var/log/mysqld.log 

#4. vi/nano/emacs工具

一般而言,文本编辑器需要频繁地用来创建/更新配置文件。我更喜欢使用vim,使用起来非常舒服,很容易记住它的一些快速编辑命令。

下面是使用vi的几个例子。用vi打开一个文件,而且不进入插入模式(insert mode),那么你可以输入如下所示的有用字符:

=>跳至行末 
$ 
=>跳至行首 
0 
=>删除余下的行 
D 
=>重复上一个命令 
.(点) 
=>给每行的末尾加上“maal”。1表示***行,$表示***一行 
:1,$s/$/maal/ 
=>在5至10行的行首加上“bingo” 
:5,10s/^/bingo/ 
=>文件在光标之后的内容中如果出现foo,则把它替换成bar 
:s/foo/bar/g 
=>删除本行并进入插入模式 
C 
=>去掉windows系统文件中的^M 
:seff=unix 
=>开启/关闭行数显示 
:setnu 
:setnonu 
=>显示文件里的实际行数 
:%!cat-n 
=>定位光标下面的单词 
*(星号) 

#3. screen命令

在nix世界中,screen命令是尚未得到充分利用的命令之一。打个比方,当你***一次在远程服务器上执行一个命令时,如果你发现那个命令需要几个小时才能完成,或者当你需要登录10个服务器并检查东西、在它们之间复制文件的时候,突然之间,你的互联网连接重启了,ssh会话也终结了,这时,你就会用到screen命令,而一旦你开始使用这个命令,你就会被它吸引。Screen是一个终端复用器(terminal multiplexer),允许你通过使用一个物理终端来管理多个进程(比如ssh会话)。每个进程都有自己的虚拟窗口,而你可以在跟每个进程交互的虚拟窗口之间来回切换。

我们再深入的解释一下。假设你有许多服务器,理想情况下你应该把ssh(端口22)访问限制放在特定的IP地址上面。这样,你可以登陆一个允许远程IP访问的服务器。此时,你就可以键入“screen”(所有主要的linux版本都安装了screen命令)并开始执行。你会看到一个状态栏,你可以按Ctrl+ac组合键创建新的screen窗口。用Ctrl+an (下一个)和Ctrl+ap(上一个)组合键在窗口之间进行切换。通常,它提供的功能非常有用,比如远程终端会话管理(分离或共享终端会话),无限窗口数量(这与固定的Linux虚拟控制台数量不一样),在窗口之间复制/粘贴,在窗口中显示活动或静止,把终端分割成多个区(横向以及纵向),共享终端等等。

你可以把你的参数保存在.screenrc文件中,下面是我的.screenrc文件一样,在里面我已经重新定义了状态栏的外观和感觉,并且设置了键f5(上一个窗口)和f6(下一个窗口)的含义:

$cat~/.screenrc 
#请不要有烦人的铃声 
vbellon 

#在挂起时分离 
autodetachon 

#不显示版权页 
startup_messageoff 

#模仿.logout消息 
pow_detach_msg"Screensessionof\$LOGNAME\$:cr:\$:nl:ended."

#告知$TERMCAP硬状态(窗口列表和时钟)支持 
termcapinfoxterm*ti@:te@ 

#把每个窗口中的shell设成登录shell 
shell-$SHELL

defscrollback10000 

#按照某种序列扩展vt100描述 

termcapvt*AF=\E[3%dm:AB=\E[4%dm 
captionalways 
captionstring'%{=wk}[%{k}%H%{k}][%=%{=wk}%?%-Lw%?%{r}(%{r}%n*%f%t%?(%u)%?%{r})%{k}%?%+Lw%?%?%=%{k}][%{b}%d/%m%{k}%c%{k}]' 

#重新定义按键绑定 

bind-kF5prev 
bind-kF6next 

#2. netstat/nmap命令

这两个命令都是非常有用的命令,它们用来诊断网络问题。当然,ping/traceroute可能是最常用的命令,但是若要说哪个更有效,nmap和netstat命令比基本的ping命令用处要大。Netstat可以显示网络状态,Nmap是一种安全/端口扫描器,也可以说成是网络探索命令。

netstat的例子如下:

*显示全部互联网(端口80)连接数量: 
$netstat-an|grep:80|wc-l 
*显示机器上监听的所有端口: 
$netstat-ant|grepLISTEN 
*在你的LAN上面用nmap命令扫描一个机器,并且获悉它的哪些端口是开放的: 
$nmapip 

#1. find和grep命令

日常工作会遇到的问题包括:有多少文件占用了大多数的磁盘空间?删除所有超过两天的临时文件;找出因含有旧服务器名称而引起问题的文件数;把所有后缀名为“.list”的文件改成“.txt”文件。面对这些工作时,命令find和grep会是你***的朋友。

Find命令用来搜索文件。你可以指定很多选项,比如文件创建日期、或者文件大小要大于你指定的容量等。通常,我们也把find跟xargs或者exec结合起来使用,在find命令返回的文件上执行命令。

find命令的例子:

*在/var目录中寻找10个***的文件: 
$find/var-typef-ls|sort-k7-r-n|head-10 

*在/var/log/中寻找大小超过5GB的文件: 
$find/var/log/-typef-size+5120M-execls-lh{}\; 

*寻找今天所有的文件并把它们复制到另外一个目录下面: 
$find/home/me/files-ctime0-print-execcp{}/mnt/backup/{}\; 

*找到所有超过一周的临时文件夹并删除: 
$find/temp/-mtime+7-typef|xargs/bin/rm-f 

*找到并重命名所有的mp3文件(把文件名字中的大写字母变成小写): 
$find/home/me/music/-typef-name*.mp3-execrename'y/[A-Z]/[a-z]/''{}'\; 

grep命令的一些例子: 
*打印Apache的文件根目录名称: 
$grep-idocumentroot/etc/httpd/conf/httpd.conf 

*查看没有评论以及空行的文件内容: 
$grep-Ev“^$|^#”/etc/my.cnf 

*只打印分配给本接口的IP地址: 
$ifconfigeth0|grep'inetaddr:'|cut-d':'-f2|awk'{print$1}'

*查看某个特定日期发送了多少email消息: 
$cat/var/log/maillog|grep"status=sent"|grep"May25"|wc-l 

*在进程列表中找出一个正在运行的process/daemon(多谢网友staranneph的提醒): 
ps-ef|grepmysql 

*你也可以通过使用上面的命令来注释cpu/men的使用情况,比如像下面的命令输出,你可以看到Plesk的统计进程本身就占用了大于18%的cpu性能: 
[root@myserver~]#psaux|grepstatistics 
root818318.40.0583842848?D04:053:00/usr/local/psa/admin/sbin/statistics 

本文来源:1818IP

本文地址:https://www.1818ip.com/post/8420.html

免责声明:本文由用户上传,如有侵权请联系删除!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。