感谢支持
我们一直在努力

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显示所有进程

显示进程的真实名称

-N反向选择

显示环境变量

显示程序间的关系

-H显示树状结构

显示当前终端的进程

显示当前终端的所有程序

指定用户的所有进程

-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_mau 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

9】、压缩(gzip)和删除(rm)

1)压缩(gzip)

gzipfilename               压缩一个文件,压缩后原文件会被删除

gunzipfilename.gz           解压后.gz的文件会被删除

gzip-d  filename.gz        解压缩

gzip -c filename>> filename.gz  实现压缩原文件同时保留原文件 

gzip -n filename            自定义压缩级别(级别<1-9>越高压缩比越高,但是速度越慢,默认是6

zcatfilename.gz              不解压缩的情况下查看压缩文件的内容

2)归档(tar)

tar  -zcvf filename.tar.gz  file1 file2 file3  归档并压缩这三个文件   

tar  -zxvf filename.tar.gz     解压缩并解档

tar  -jcvf filename.tar.bz2 file1 file2 file3 解压缩并解档

tar  -jxvf filename.tar.bz2    解压缩并解档

3)删除(rm)

语法:

rm[option] file…

命令参数:

    -f, –force    忽略不存在的文件,从不给出提示

    -i, –interactive 进行交互式删除

    -r, -R, –recursive  指示rm将参数中列出的全部目录和子目录均递归地删除

    -v, –verbose    详细显示进行的步骤

      –help    显示此帮助信息并退出

      –version  输出版本信息并退出

 

用法:处理磁盘将满问题

案例分析:“/xxx/xxxx:”filesystem over xx% full (xxxMB free)

 

实例1:以/var为例

1). 打包旧文件

> cd  /var/log/httpd

> ls –l h 

-rw-r–r–1 root root  16M Mar 10 00:00access_log.3

-rw-r–r–1 root root  16M Mar  3 00:00 access_log.4 —oldest log

-rw-r–r–1 root root  14M Mar 10 00:00ssl_access_log.3

-rw-r–r–1 root root  14M Mar  3 00:00 ssl_access_log.4 —oldest log

>gzip access_log.4  # 打包旧文件

2). 磁盘将满问题依然存在,删除旧压缩文件

>rm access_log.4 and access_log.4.gz

3).查看磁盘情况

>df –kh

 

实例2:以/usr为例

Zipthe oldest log , if disk full still problem than delete the oldest log inhousekeep

1). 

> cd /usr/local/disc/router/log 

> ls –l h 

-rw-r–r–    1 disc    users        9.2M Mar 24 23:59router.log.2016-03-24.gz    <-oldestlog

-rw-r–r–    1 disc    users        8.6M Mar 25 23:59router.log.2016-03-25.gz

-rw-r–r–    1 disc    users        9.1M Mar 26 23:59router.log.2016-03-26.gz

-rw-r–r–    1 disc    users        9.9M Mar 27 23:59router.log.2016-03-27.gz

-rw-r–r–    1 disc    users        143M Mar 28 23:59router.log.2016-03-28    <-oldest logwhich not zip yet

-rw-r–r–    1 disc    users        140M Mar 29 23:59router.log.2016-03-29

-rw-r–r–    1 disc    users        163M Mar 30 23:59router.log.2016-03-30

-rw-r–r–    1 disc    users        5.9M Mar 23 23:59router-smtp.debug.log.2016-03-23.gz  <-oldest log

-rw-r–r–    1 disc    users        5.9M Mar 24 23:59router-smtp.debug.log.2016-03-24.gz

-rw-r–r–    1 disc    users        5.8M Mar 25 23:59router-smtp.debug.log.2016-03-25.gz

-rw-r–r–    1 disc    users        6.4M Mar 26 23:59router-smtp.debug.log.2016-03-26.gz

-rw-r–r–    1 disc    users        6.4M Mar 27 23:59router-smtp.debug.log.2016-03-27.gz

-rw-r–r–    1 disc    users        79M Mar 28 23:59router-smtp.debug.log.2016-03-28      <-oldest log which not zip yet

-rw-r–r–   1 disc    users        76M Mar 29 23:59router-smtp.debug.log.2016-03-29

-rw-r–r–    1 disc    users        78M Mar 30 23:59router-smtp.debug.log.2016-03-30                       

>gzip router.log.2016-03-28

>gzip router-smtp.debug.log.2016-03-28       

2).磁盘将满问题依然存在,删除旧压缩文件

>rm router.log.2016-03-24.gz orrouter-smtp.debug.log.2016-03-23.gz

3). df –kh

 

 

10】、查找指定时间内修改过的文件(find)

部分常用参数说明:

-name  filename  查找名为filename的文件

-mtime  -n +n   按文件更改时间来查找文件,-nn天以内,+nn天以前

-execfind命令对匹配的文件执行该参数所给出的shell命令相应命令的形式为‘command’ { } \;,注意{ }\;之间的空格

 

用法:一般用于处理磁盘将满问题

案例分析:“/xxx/xxxx:”filesystem over xx% full (xxxMB free)

实例1:查找超过特定时间的文件并予以删除

1).查看磁盘占用情况

> df -h

2).查找.csv.gz结尾且超过六十天的文件并予以删除

>cd /opt/smartone/backup/exception

>find ./ -name “*.csv.gz” -mtime +60 -exec ls -l ‘{}”;’

>find ./ -name “*.csv.gz” -mtime +60 -exec rm ‘{}’ ‘;’

3).再次查看磁盘状况

> df -h   

实例2:查找.pcap结尾且超过7天的文件并予以删除           

[root@testncap]# find ./ -name “*.pcap” -mtime +7 -exec rm ‘{}”;’

[root@test ]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/map/VolGroup00-LogVol00

                      3.6T  4.7G 3.4T  1% /

/dev/sda1              99M  41M   54M 44% /boot

tmpfs                5.9G    0 5.9G  0% /dev/shm

/dev/mapper/VolGroup01-lvol0

                      48T  46T 2.3T  96% /ncap_data

                                     

实例3:修改脚本参数                                 

1).当前值为60

>vi /usr/local/MeX/james/apps/james/logs/housekeep.ksh

        cd /usr/local/james/logs

    find ./ -name “pop3server*.log”-mtime +3 | awk ‘{printf “gzip “$1″\n”}’ | sh

    find ./ -name “smtpserver*.log”-mtime +3 | awk ‘{printf “gzip “$1″\n”}’ | sh

    find ./ -name “smtpserver*”-mtime +60 | awk ‘{printf “rm -f “$1″\n”}’ | sh

    find ./ -name “pop3server*”-mtime +60 | awk ‘{printf “rm -f “$1″\n”}’ | sh

2).修改当前值为59 

>Cat /usr/local/james/logs/housekeep.ksh (example)

        cd /usr/local/james/logs

    find ./ -name “pop3server*.log”-mtime +3 | awk ‘{printf “gzip “$1″\n”}’ | sh

    find ./ -name “smtpserver*.log”-mtime +3 | awk ‘{printf “gzip “$1″\n”}’ | sh

    find ./ -name”smtpserver*” -mtime +59 | awk ‘{printf “rm -f”$1″\n”}’ | sh

    find ./ -name”pop3server*” -mtime +59 | awk ‘{printf “rm -f”$1″\n”}’ | sh

3).  运行脚本

>/usr/local/james/logs/housekeep.ksh

4).查看   

>df –kh 

 

 

11】、系统定时任务的执行(crontab

一般用在修改某些固定执行任务或重新建立某些定时任务

修改某些固定执行任务

基本格式:

*  *  *  *  *  command

     命令

 

实例1. 修改固定参数,即编辑/etc/crontab文件(系统级别)   

[root@test~]# vi /etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=””

HOME=/

 

#run-parts

01* * * * root run-parts /etc/cron.hourly

024 * * * root run-parts /etc/cron.daily

224 * * 0 root run-parts /etc/cron.weekly

424 1 * * root run-parts /etc/cron.monthly

 

实例2)crontab -e (用户级别)

使用命令crontab -e 然后直接编辑定时脚本

这样执行以后,属于用户自定义的,会被写到/var/spool/cron 目录下,生成一个和用户名一致的文件

一般情况下,系统管理员常用来修改某些日志产生的频率,追踪一些服务的报告

或添加一些定时执行的任务,免去手动执行的繁琐如超过多长时间的日志予以删除等等

[root@test ~]# crontab -e     

##########################DeleteAndroid data 10 days ago ################################

#300 * * * /bin/bash /home/sherman/MySQLdatadelete.sh >>/home/sherman/mysqldatadelete.log 2>&1

##########################Proxy Monitor ################################

#150 * * * /bin/bash /home/proxy/source/scpfiles.sh >/home/proxy/logs.txt2>&1

05,20,35,50*/1 * * * /bin/sh /home/proxy/source/savexmldata.sh > /home/proxy/logs.txt2>&1

编辑加入相应的定时任务,

wq

 

 

12】、进程占用内存或资源(kill)

命令格式:

kill[option][PID]

说明:

一般情况下,先使用ps命令或者jobs 命令查看特定进程号

kill PID将发送指定的信号到相应进程以终止相应进程如不指定型号则默认发送SIGTERM15)终止指定进程

如果仍旧无法终止该程序可用“-KILL”参数,其发送的信号为SIGKILL(9),将强制结束进程

注意root用户将影响用户的进程,非root用户只能影响自己的进程

命令参数:

-l  信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称

-a  当处理当前进程时,不限制命令名和进程号的对应关系

-p  指定kill 命令只打印相关进程的进程号,而不发送任何信号

-s  指定发送信号

-u  指定用户

常用的信号:

HUP    1    终端断线

INT    2   中断(同Ctrl + C

QUIT    3    退出(同Ctrl + \

TERM  15    终止

KILL    9    强制终止

CONT  18    继续(与STOP相反,fg/bg命令)

STOP  19    暂停(同 Ctrl+ Z

 

案例分析:一般用于disk full 之类的情况,

此时系统中某进程占用大量内存产生大量日志进而引发磁盘占满等一系列问题

步骤:

1.Check the disk space

> df-h

2.Find the process vid with large size

> cd/xx/xxx/

> ls-ltr|tail

3.Kill the problem process

    > ps -ef|grep [vid]

    > kill -9 [process ID]

4.Delete the problem log

> cd/xx/xxx/

> rm[vid]

5.Check the disk space again

> df-h

 

实例分析:

>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

drwxrwxrwx 3950 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|grep2quZ0443

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 46974702

[root@test ph]# ps -ef|grepYLWb0443

root      4220    1 74 17:13 pts/1    00:26:27/var/www /pdup /var/www/ YL/YLWb0443 /transcoder /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 -vf dsize=336:224:0,scale=0:0,expand=336:224……

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

[root@test ph]# kill -9 4220 4225

[root@test ph]# 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/smartone

/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

>4.删除文件

[root@test ph]# rm YLWb0443 2quZ0443

rm:remove regular file `YLWb0443′? y

y

rm:remove regular file `2quZ0443′? y

[root@test ph]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/mapper/vg00-lvol01

                      20G  1.8G  17G 10% /

/dev/mapper/vg00-lvol04

                      9.7G  1.7G 7.6G  19% /var

 

13】、邮件服务(mail)

使用mail发邮件时,必须先将sendmail服务启动

mail –s “邮件主题”–c”抄送地址”–b “密送地址”– -f 发送人邮件地址 –F 发件人姓名< 要发送的邮件内容

常见参数:

i 忽略 tty 的中断讯号。(interrupt)

I 强迫设成互动模式。(Interactive)

v 列印出讯息,例如送信的地点、状态等等。(verbose)

n 不读入mail.rc 设定档。

s 邮件标题。

c cc 抄送邮件地址。

b bcc密送邮件地址。

 

1)、三种常用格式发信

mail-s test field_yang@xxx.xx.cn

把当前shell当成编辑器来用,编辑完内容后Ctrl-D结束

echo“mail content”|mail -s test field_yang@xxx.xx.cn

使用管道命令发送邮件信息

mail-s test field_yang@xxx.xx.cn < file #

file的内容为邮件内容发信

2)、指定特定的发送人:

$ mail -s”just a test” 收信人邮箱地址< 要发送的邮件内容文件— -f 发送人邮件地址-F 发件人姓名

信件内容将发送收信人邮箱,显示的发送人为发送人姓名<发送人邮件地址>,显示的内容为发送的邮件内容

3)、包含命令执行结果的MAIL发送:

echo -e`ls /tmp`|mail -s “test” fff@aaa.com < /tmp/dd.txt — -fcc@aaa.com -F cc

说明:

需要sendmailpostfix服务

如果单纯的发文件文件可以用

catxxxx.txt |mail -s “主旨“abc@xxx.com fff@xxx.com

4)、说明

如果需要发送附件需要安装uuencode来编码 (yum install sharutils)

单独发附件,这样xxxx@xxx.com会收到一个data.txt的附件

uuencode/tmp/data_process.log  data.txt |mailxxx@xxx.com

如果需要正文和附件一起发:

uuencode/tmp/data_process.log  data.txt >/tmp/data_temp.txt

 

案例分析:公司内部特定时间的邮件服务器测试。

步骤:

>su –

>date> date.log

>mail-s “hello” testing@gmail.com < date.log

>sleep60

>greptesting@gmail.com /var/log/maillog | grep google.com

 

>echo`date` | mail -s “hello” testingsmc@gmail.com

>sleep60

>greptesting@gmail.com /var/log/maillog | grep google.com

 

实例:邮件检测

[gz_fieldyang@test ~]$ su –

Password:

[root@test ~]# echo `date` + “This is a test mail,Pleaseignore.”| mail -s “hello” Field_Yang@gmail.com

[root@test ~]# sleep 30

[root@test ~]# grep Field_Yang@gmail.com /var/log/maillog | grepField_Yang

Feb14 11:53:49 gimei-test sendmail[25264]: u1E3rnV6025264: to=Field_Yang@gmail.com, ctladdr=root (0/0), delay=00:00:00, x)

Feb14 11:53:49 gimei-test sendmail[25267]: u1E3rn2A025265:to=<Field_Yang@gmail.com>, ctladdr=<root@test-v)

Feb15 16:35:04 gimei-test sendmail[15040]: u1E3rnV6025264: to=Field_Yang@gmail.com, ctladdr=root (0/0), delay=00:00:00, x)

Feb15 16:35:04 gimei-test sendmail[15043]: u1E3rn2A025265:to=<Field_Yang@gmail.com>, ctladdr=<root@test-v)

[root@test ~]#

 

 

14】、查看系统内存使用情况(free)

分析;free命令相对于top 提供了更简洁的查看系统内存的使用情况方法。

            total      used      free    shared    buffers    cached

Mem:      2075608    2006420     69188          0      58580   1105924

-/+buffers/cache:    841916    1233692

Swap:      2097144        552   2096592

[gz_fieldyang@test~]$ free -m

            total      used      free    shared    buffers    cached

Mem:          2026      1959        67          0        57      1079

-/+buffers/cache:        822      1204

Swap:        2047         0      2047

[gz_fieldyang@test~]$

 

1)、相关说明:  

Mem:表示物理内存统计

-/+ buffers/cached:表示物理内存的缓存统计

Swap:表示硬盘上交换分区的使用情况

        系统的总物理内存:2075608Kb2026M),

        但系统当前真正可用的内存并不是第一行free 标记的 69188Kb,它仅代表未被分配的内存。

 

我们将 Mem各项数据标记为1-/+ buffers/cache各项数据标志为2,做进一步分析:

total1    表示物理内存总量。

used1    表示总计分配给缓存(包含buffers cache )使用的数量,但其中可能部分缓存并未实际使用。

free1    未被分配的内存。

shared1  共享内存,一般系统不会用到。

buffers1  系统分配但未被使用的buffers 数量。

cached1  系统分配但未被使用的cache 数量。

used2    实际使用的buffers cache 总量,也是实际使用的内存总量。

free2    未被使用的buffers cache 和未被分配的内存之和,这就是系统当前实际可用内存。

2)、各参数间等式:

total1 =used1 + free1

total1 =used2 + free2

used1  = buffers1 + cached1 + used2

free2  = buffers1 + cached1 + free1

3)、cache buffer的区别:

Cache高速缓存,是位于CPU与主内存间的一种容量较小但速度很高的存储器。

由于CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周期,Cache中保存着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据时可从Cache中直接调用,这样就减少了CPU的等待时间,高了系统的效率。Cache又分为一级Cache(L1 Cache)和二级Cache(L2 Cache)L1 Cache集成在CPU内部,L2 Cache早期一般是焊在主板上,现在也都集成在CPU内部,常见的容量有256KB512KB L2 Cache

Buffer:缓冲区,一个用于存储速度不同步的设备或优先级不同的设备之间传输数据的区域。通过缓冲区,可以使进程之间的相互等待变少,从而使从速度慢的设备读入数据时,速度快的设备的操作进程不发生间断。

buffer: 作为buffer cache的内存,是块设备的读写缓冲区

cache: 作为page cache的内存, 文件系统的cache

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-04/130077.htm

赞(0) 打赏
转载请注明出处:服务器评测 » Linux系统管理员常用命令实例分析
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏