Linux系统管理员常用命令实例分析

作为一名Linux系统管理员,熟悉并熟练运用一些常用的命令是必不可少的,对设备即文件的Linux系统来说,Linux系统管理的命令是它正常运行的核心。笔者根据实际工作总结一些常用指令,附上一些相对常见的警报处理方法,以供共同学习。

【1】、查看命令(ls)

语法:

ls
[option] [dirname]

常用参数:

-a,–all列出目录下的所有文件,包括以
.开头的隐含文件

-h,–human-readable以容易理解的格式列出文件大小
(例如 1K
234M 2G)

-i,–inode印出每个文件的
inode号

-l除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。

 

[gz_fieldyang@
test ~]$ ls -ltr

total192

-rw-rw-r–1
gz_fieldyang gz_fieldyang  88 Mar 4 14:36 test.html

-rw-rw-r–1
gz_fieldyang gz_fieldyang  18 Mar 4 14:47 sed-n.sed

-rw-rw-r–1
gz_fieldyang gz_fieldyang 182 Mar 4 15:21 test.txt

-rw-rw-r–1
gz_fieldyang gz_fieldyang  50 Mar 4 16:06 example.txt

 

案例分析:

一般用于PortLinkStatus
(Integer): down或者more than 1 CDR
update process之类的警报,查看cdr

>login

>cd/opt/xxx/pcp

>ls-lt
| more

>cd/opt/xxx/cdr

>ls-lt
| more

 

【2】、查看进程存在与否
(ps)

语法:ps[option]

命令参数:

a 显示所有进程

-a显示同一终端下的所有程序

-A显示所有进程

c 显示进程的真实名称

-N反向选择

e 显示环境变量

f 显示程序间的关系

-H显示树状结构

r 显示当前终端的进程

T 显示当前终端的所有程序

u 指定用户的所有进程

-au显示较详细的资讯

-aux显示所有包含其他使用者的行程

-C<命令>列出指定命令的状况

–lines<行数>每页显示的行数

–width<字符数>每页显示的字符数

–help显示帮助信息

–version显示版本显示

 

[gz_fieldyang@test
~]$ ps aux

USER 
    PID %CPU %MEM   VSZ  RSS TTY     STAT START  TIME COMMAND

(用户)(进程ID)(进程耗CPU比)(进程耗物理内存比)(耗虚拟内存量)(耗固定内存量)(运行终端机)(状态信息)(触发时间)(运作时间)(实际指令)

root 
      1 0.0 0.0  2064  592 ?       Ss   2015  2:24 init [5]       

root 
      2 0.0 0.0     0    0 ?       S<   2015  8:33
[migration/0]

root 
      3 0.0 0.0     0    0 ?       SN   2015  0:06
[ksoftirqd/0]

root 
  30641 2.0 0.0  9916 2812 ?       Ss  10:41  0:00 sshd: gz_fieldyang
[priv]

871 
   30644 0.0 0.0 10048 1672 ?       S   10:41  0:00 sshd:
gz_fieldyang@pts/2

871 
   30646 1.5 0.0  4528 1388 pts/2   Ss  10:41  0:00 -bash

871 
   30677 0.0 0.0  4248  936 pts/2   R+  10:41  0:00 ps -aux

root 
  31137 0.0 0.0     0    0 ?       S   Apr10  0:04 [pdflush]

说明:

官方澳门新永利下载,USER:该
process 使用者的账号

PID:该
process的号码

%CPU:该
process 使用掉的
CPU资源百分比

%MEM:该
process 所占用的物理内存百分比

VSZ:该
process使用掉的虚拟内存量
(Kbytes)

RSS:该
process占用的固定的内存量
(Kbytes)

TTY:该
process是在那个终端机上面运作,若与终端机无关,则显示
?,

     
 另外,tty1-tty6是本机上面的登入者程序,若为
pts/0等等的,则表示为由网络连接进主机的程序。

STAT:该程序目前的状态,主要的状态有

R:该程序目前正在运作,或者是可被运作

S:该程序目前正在睡眠当中
(可说是
idle状态),但可被某些讯号(signal)唤醒。

T:该程序目前正在侦测或者是停止了

Z:该程序应该已经终止,但是其父程序却无法正常的终止他,造成
zombie(疆尸)程序的状态

START:该
process 被触发启动的时间

TIME:该
process实际使用
CPU运作的时间

COMMAND:该程序的实际指令

 

案例分析:

配合grep查找特定进程,一般用于出现诸如Application
process ‘…’ not running 或者disk
full之类的警报

ps
-ef |grep …

实例1:

[gz_fieldyang@test
~]$ ps -ef | grep mysqld

root 
   7370    1 0 2011 ?       00:00:00 /bin/sh
/usr/local/mysql/bin/mysqld_safe –user=mysql–skip-slave-start

mysql 
  7427 7370 0 2011 ?       7-02:05:47 /usr/local/mysql/bin/mysqld

–basedir=/usr/local/mysql–datadir=/usr/local/mysql/data
–user=mysql

–skip-slave-start–log-error=/usr/local/mysql/data/test.com.err

–pid-file=/usr/local/mysql/data/test.com.pid

836 
   20670 20606 0 15:26 pts/1   00:00:00 grep mysqld

 

实例2:

>1.查看磁盘情况

[root@test
~]# df -h

Filesystem 
         Size Used Avail Use% Mounted on

/dev/mapper/vg00-lvol01

 
                    20G  20G    0 100% /

/dev/mapper/vg00-lvol04

 
                   9.7G 1.7G 7.6G 19% /var

/dev/mapper/vg00-lvol06

 
                    20G 5.2G  14G 29% /var/www
/dev/mapper/vg00-lvol05

 
                    20G  10G 8.4G 55% /home

/dev/mapper/vg00-lvol07

 
                    20G 912M  18G  5% /housekeep

/dev/mapper/vg00-lvol03

 
                   9.7G 5.7G 3.6G 62% /usr

/dev/cciss/c0d0p1 
   99M  12M  82M 13% /boot

tmpfs 
               12G    0  12G  0% /dev/shm

>2.切换至警报路径寻找大文件进程号

[root@test
~]# cd /trans/ph/

[root@test
ph]# ls -ltr|tail

….

-rw-r–r– 
 1 root root 9562558464 Mar 7 17:48 YLWb0443

drwxrwxrwx3950
root root    184320 Mar 7 17:48 mov

-rw-r–r– 
 1 root root 9322479616 Mar 7 17:48 2quZ0443

[root@test
ph]# ps -ef|grep 2quZ0443

root 
   4697    1 74 17:13 pts/1   00:25:40 …..

root 
   4702 4697 21 17:13 pts/1   00:07:25…..

root 
  19935 17542 0 17:48 pts/4   00:00:00 grep 2quZ0443

>3.杀死进程

[root@test
ph]# kill -9 4697 4702

[root@test
ph]# ps -ef|grep YLWb0443

root 
   4220    1 74 17:13 pts/1   00:26:27/var/www /pdup /var/www/
YL/YLWb0443 /transcoder/iphone/mov/YL/YLWb0443.mov

root   
 4225 4220 21 17:13 pts/1   00:07:41/var/www/ /ipmplayer -quiet -endpos
+3600 -cache-min 0 -cache-seek-min 90
-vfdsize=336:224:0,scale=0:0,expand=336:224……

root 
  21602 17542 0 17:48 pts/4   00:00:00 grep YLWb0443

  

【3】、查看日志文件是否运行,显示指定文件末尾内容,不指定文件时,作为输入信息进行处理
(tail)

语法:

tail[必要参数][选择参数][file] 

命令参数:

-f循环读取

-q不显示处理信息

-v显示详细的处理信息

-c<数目>显示的字节数

-n<行数>显示行数

–pid=PID与-f合用,表示在进程ID,PID死掉之后结束.

-q, –quiet,
–silent从不输出给出文件名的首部

-s,
–sleep-interval=S与-f合用,表示在每次反复的间隔休眠S秒

  

一般用于出现诸如Application
process ‘…’ not running或者(update.sh)’…‘ is
not synced

或者 App_Procs
port18506 ERROR之类的警报,或者配合grep查找特定状态信息

/var/www/…/…/log

tail-f
xxx.log

 

实例1:(update.sh)’…‘
is not synced

[gz_fieldyang@test]
cd /gz/util/HealthCheckScript/

[gz_fieldyang@test
HealthCheckScript]$ tail -20 healthcheck_log.txt

2016-04-0815:19:03
(resume.sh) cg1 is synced gzBehavior: 0

2016-04-0815:19:04
(resume.sh) cg2 is not synced gzcBehavior: 0

2016-04-0815:19:05
(resume.sh) cg3 is synced gzBehavior: 0

2016-04-0815:19:06
(resume.sh) cg4 is synced gzBehavior: 0

2016-04-0815:19:06
(resume.sh) cg5 is synced gzBehavior: 0

 

实例2:切换到特定文件夹,查看日志

cd/home/…/log

tail-f
portxxxxx.log

 

实例3:配合grep查找特定状态信息

[root@test
upelogs]# tail -f upe-debug.log | grep status@S

[2016-03-2418:53:07.962][http-80-1]
DEBUG – Reply with response <?xml version=’1.0′

……

<Result>id@….status@S|ove….></soap:Envelope>

 

【4】、启动进程(start,reatart)

一般用于出现诸如Application
process ‘…’ not running或者 connection
fail或者 request time
out之类

重启步骤如下:

1).checkthe
process if running

ps-ef|grep
mysqld

2).if
not running then restart

/etc/init.d/mysqldrestart

/sbin/servicentpd
restart

/sbin/servicentpd
status

login

>bash

>xxxstatus

>cd/var/xxxx/LOG

>tail-f
xxxxx.log

>xxxx
stop

>xxx
status

>xxxx
start

>xxx
status

 

 

【5】、文件传输(ftp)

failed
to FTP file to … Procedure 

可能原因是磁盘将满或者vsFTPd进程未运行

 

实例1:磁盘将满

[fieldyang@test~]$
ftp 127.0.0.1

Connectedto
127.0.0.1.

220(vsFTPd
2.0.5)

530Please
login with USER and PASS.

530Please
login with USER and PASS.

KERBEROS_V4rejected
as an authentication type

Name(127.0.0.1:fieldyang):

[fieldyang@test
~]$ df -h

Filesystem 
         Size Used Avail Use% Mounted on

/dev/map/vg00-lvol01

 
                   2.0G 683M 1.2G 37% /

/dev/map/vg00-lvol05

 
                    97G  18G  76G 19% /home

/dev/map/vg00-lvol04

 
                   4.9G 3.7G 927M 81% /var

/dev/map/vg00-lvol03

 
                   7.8G 4.5G 3.0G 61% /usr

/dev/map/vg00-lvol06

 
                   242G  85G 147G 37% /smc

/dev/sda1 
           99M  18M  77M 19% /boot

tmpfs 
              4.0G    0 4.0G  0% /dev/shm

 

实例2::vsFTPd进程是否运行

1).检测FTP服务是否开启

①查看进程是否存在ps
-ef | grep ftp 

[gz_fieldyang@test
~]$ ps -ef | grep ftp 

nobody 
 3461 6064 0 Mar24 ?       00:00:00
/usr/sbin/vsftpd/etc/vsftpd/vsftpd.conf

gup 
    3477 3461 0 Mar24 ?       00:02:31
/usr/sbin/vsftpd/etc/vsftpd/vsftpd.conf

root 
   6064    1 0 2011 ?       00:08:36 /usr/sbin/vsftpd
/etc/vsftpd/vsftpd.conf

若并未找到任何包含ftp关键字的进程信息,可判断服务未开启。

②.查询vsftpd服务是否存在service vsftpd
status

vsftpd是最常见的FTP服务器,一般Linux系统都是通过vsftpd来搭建FTP服务环境。

[gz_fieldyang@test
~]$ /sbin/service vsftpd status

vsftpddead
but subsys locked

2).开启FTP服务

/sbin/servicevsftpd
start 

3).查看状态

/sbin/servicevsftpd
status

 

附:编辑vsftpd.conf简单配置实现匿名上传下载

vivsftpd.conf

anon_upload_enable=YES

anonymous_enable=YES

write_enable=YES

Anon_mkdir_write_enable=yes

 

 

【6】、检查linux服务器的文件系统的磁盘空间占用情况(df)

Df命令在运维中使用广泛,使用参数相对单一,大多数情况下都是用(df
–kh)来查看磁盘占用情况,以便获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

语法:

df
[option] [file]

参数:

必要参数:

-a全部文件系统列表

-h方便阅读方式显示

-i显示inode信息

-k区块为1024字节

-l只显示本地文件系统

–no-sync忽略 sync命令

-P输出格式为POSIX

–sync在取得磁盘信息前,先执行sync命令

-T文件系统类型

选择参数:

–block-size=<区块大小>指定区块大小

-t<文件系统类型>只显示选定文件系统的磁盘信息

-x<文件系统类型>不显示选定文件系统的磁盘信息

–help显示帮助信息

–version显示版本信息

 

实例:如:“/:” filesystem
over 98% full(819MB free)

[gz_fieldyang@test
~]$ df -kh

Filesystem 
         Size Used Avail Use% Mounted on

(文件系统) (容量)(已用)(可用)(已用占比)(挂载点)

/dev/mapper/vg00-lvol01

 
                   2.0G 807M 1.1G 43% /

/dev/mapper/vg00-lvol03

 
                   4.9G 3.9G 780M 84% /usr

/dev/mapper/vg00-lvol04

 
                   4.9G 2.7G 2.0G 58% /var

/dev/mapper/vg00-lvol05

 
                    15G  11G 3.2G 78% /home

/dev/mapper/vg00-lvol06

 
                    20G  14G 5.3G 73% /smc

/dev/sda1 
           99M  18M  76M 19% /boot

tmpfs 
             1014M    0 1014M  0% /dev/shm

[gz_fieldyang@test
~]$

 

 

【7】、建立用户帐号和创建用户的起始目录(useradd)

语法:

useradd
[-d
home] [-s shell]
[-c
comment] [-m [-ktemplate]]
[-f
inactive] [-eexpire ]
[-p
passwd] [-r]name

主要参数

 -c:加上备注文字,备注文字保存在passwd的备注栏中。 

 -d:指定用户登入时的启始目录。

 -D:变更预设值。

 -e:指定账号的有效期限,缺省表示永久有效。

 -f:指定在密码过期后多少天即关闭该账号。

 -g:指定用户所属的群组。

 -G:指定用户所属的附加群组。

 -m:自动建立用户的登入目录。

 -M:不要自动建立用户的登入目录。

 -n:取消建立以用户名称为名的群组。

 -r:建立系统账号。

 -s:指定用户登入后所使用的shell。

 -u:指定用户ID号。

useradd可用来建立用户账号,它和adduser命令是相同的。账号建好之后,再用passwd设定账号的密码。

使用useradd命令所建立的账号,实际上是保存在/etc/passwd文本文件中。

 

实例:建立一个新用户账户,并设置ID:

 [root@
test ~]#useradd Kin_ma-u
544

 

groupadd:将新组加入系统。

语法:

groupadd
[-g
gid] [-o]]
[-r]
[-f]groupname

 3.主要参数

 -g
gid:指定组ID号。

 -o:允许组ID号,不必惟一。

 -r:加入组ID号,低于499系统账号。

 -f:加入已经有的组时,发展程序退出。

  

【8】、修改用户帐号(usermod)

语 法:

usermod
[-LU][-c<备注>][-d
<登入目录>][-e
<有效期限>][-f
<缓冲天数>][-g
<群组>][-G
<群组>][-l
<帐号名称>][-s
<shell>][-u <uid>][用户帐号]

补充说明:usermod可用来修改用户帐号的各项设定。

参  数:

 -c<备注> 修改用户帐号的备注文字。

 -d登入目录> 修改用户登入时的目录。

 -e<有效期限> 修改帐号的有效期限。

 -f<缓冲天数> 修改在密码过期后多少天即关闭该帐号。

 -g<群组> 修改用户所属的群组。

 -G<群组> 修改用户所属的附加群组。

 -l<帐号名称> 修改用户帐号名称。

 -L 锁定用户密码,使密码无效。

 -s<shell> 修改用户登入后所使用的shell。

 -u<uid> 修改用户ID。

 -U 解除密码锁定。

 

groupmod(groupmodify)

功能说明:更改群组识别码或名称。

语  法:groupmod [-g
<群组识别码>
<-o>][-n <新群组名称>][群组名称]

补充说明:需要更改群组的识别码或名称时,可用groupmod指令来完成这项工作。

参  数:

 -g
<群组识别码> 设置欲使用的群组识别码。

 -o 重复使用群组识别码。

 -n
<新群组名称> 设置欲使用的群组名称。

 

实例:修改已辞职管理员账户jack为新管理员账户Field

[root@
test ~]#
usermod-l gz_fieldyang gz_jack

[root@
test ~]# usermod -d/home/gz_fieldyang gz_fieldyang

[root@
test ~]# groupmod -ngz_fieldyang gz_jack

[root@
test ~]# mv /home/gz_jack/home/gz_fieldyang

[root@
test ~]# passwd gz_fieldyang

 

示例:修改组名.

[root@
test ~]# groupadd linuxso

[root@
test ~]]# tail -1 /etc/group

linuxso:x:500:

[root@
test ~]# tail -1 /etc/group

linuxso:x:500:

[root@
test ~]# groupmod -n linuxlinuxso

[root@
test ~]# tail -1 /etc/group

linux:x:500:

更多详情见请继续阅读下一页的精彩内容
http://www.linuxidc.com/Linux/2016-04/130077p2.htm

官方澳门新永利下载 1

发表评论

电子邮件地址不会被公开。 必填项已用*标注