基础教程,Linux系统日常管理1

pidof

    大家领略各种小孩一出生就能够四个全国独一的编号来对其展开标记,用于未来上学,办社会养老保险等,正是大家的身份ID号。那么在Linux系统中,用来保管运作程序的标志叫做PID,正是大家熟练的进程ID。那么什么样来找到程序的PID了,那么就需求用到命令pidof,其效率首要用来查看运维程序的PID。

FUSER

fuser功能
fuser 可以显得出近来哪些程序在动用磁盘上的有些文件、挂载点、以至互联网端口,并交由程序进程的事无巨细新闻.

fuser呈现采取内定文件大概文件系统的长河ID.暗中同意情状下各样文件名背后跟一个假名代表访谈类型。

拜候类型如下:
c 代表当前目录
e 将此文件作为程序的可进行对象使用

f 张开的文本。暗中认可不呈现。
F 打开的文书,用于写操作。私下认可不突显。

r 根目录。
m 映射文件可能分享库。

s 将此文件作为分享库(或任何可装载对象)使用
当钦命的文本并没有被访谈,只怕出现谬误的时候,fuser会再次回到非零。
为了查看使用tcp和udp套接字的历程,要求-n选项并点名名称空间。默许IpV4和IpV6都会来得。套接字能够是本地的要么是长间隔的端口,和远程的地点。全部的域是可选的,可是其前方的','必得存在。如下:
[lcl_port][,[rmt_host][,[rmt_port]]]
对于ip地址和port,名称和数字代表都足以利用。
fuser只把PID输出到正规输出,其余的都输出到正式错误输出。
常用选项
-a 显示全体命令行中内定的文本,暗中同意意况下被访问的公文才会被出示。
-c 和-m一样,用于POSIX兼容。
-k 杀掉访谈文件的长河。若无一点名-signal就能发送SIGKILL时限信号。
-i 杀掉进度在此之前询问客户,若无-k那一个选项会被忽略。
-l 列出富有已知的实信号名称。
-m name 钦点一个挂载文件系统上的公文可能被挂载的块设备(名称name)。那样有着访问这几个文件可能文件系统的长河都会被列出来。假设钦命的是贰个目录会自动调换来"name/",并选择具备挂载在老大目录下边包车型大巴文件系统。
-n space 钦定叁个见仁见智的命名空间(space).这里扶助不一样的半空中文件(文件名,此处暗中同意)、tcp(本地tcp端口)、udp(当地udp端口)。对于端口, 能够钦定端口号恐怕名称,假设不会挑起歧义那么能够利用简易表示的款式,举个例子:name/space (即形如:80/tcp之类的意味)。
-s 静默形式,那时候-u,-v会被忽略。-a不可能和-s一齐行使。
-signal 使用钦点的复信号,并不是用SIGKILL来杀掉进度。能够透过名称或然号码来表示时域信号(譬如-HUP,-1),这几个选项要和-k一同行使,不然会被忽略。
-u 在每种PID前面增添进度具备者的客户名称。
-v 详细方式。输出似ps命令的输出,包罗PID,USELAND,COMMAND等重重域,借使是根本访问的那么PID为kernel. -V 输出版本号。
-4 使用IPV4套接字,不能够和-6共同行使,只在-n的tcp和udp的命名存在时不被忽视。
-6 使用IPV6套接字,不能够和-4一并利用,只在-n的tcp和udp的命名存在时不被忽略。

  • 重新设置全数的选项,把实信号设置为SIGKILL. 

应用示例

突显应用某些文件的历程音信
$ fuser -um /dev/sda2
/dev/sda2: 6378c(quietheart) 6534c(quietheart) 6628(quietheart)
6653c(quietheart) 7429c(quietheart) 7549c(quietheart) 7608c(quietheart)
其一命令在umount的时候很有用,能够找到还应该有何样用到这么些装置了。

杀死展开readme文件的前后相继

$fuser -m -k -i readme
此地,会在kill早先询问是不是鲜明。最棒增进-v以便理解就要杀这一个进度。

查阅这些程序选用tcp的80端口
$fuser -v -n tcp 80

$fuser -v 80/tcp
fuser分歧时限信号的接纳
用 -l参数能够列出fuser所知的确定性信号
# fuser -l
HUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM
STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS
UNUSED
fuser能够发送它已知的随机信号给访谈的钦定文件进程而代表-k参数暗中认可发送的SIGKILL,比方:只是挂起经过,那么发送HUP功率信号就足以了
# fuser -v /root/install.log
用户 进程号 权限 命令
/root/install.log: root 3347 f.... tail
# fuser -k -SIGHUP /root/install.log
/root/install.log: 3347
# fuser -v /root/install.log

一,为啥要使用fuser?
   先说 fuser的作用,
   fuser能识别出正在对某些文件或端口访谈的历程
   大家想转手,还恐怕有哪位命令具有这些意义?
   没错,是lsof,
   我们前边讲过, lsof能够寻找正在对点名文件访谈的进度,
   那么它们两个之间有什么差距?
   fuser有一个特意的用法在于它能够三遍杀死那个正在访谈内定文件的历程    

二,如何使用fuser?
 
   1,怎么着用fuser得到正在接纳钦命文件的长河?
     用法: fuser 文件
     表明:它会把正在使用当前文件的经过id列出

     [root@localhost lhd]# umount /
     umount: /: device is busy.
           (In some cases useful info about processes that use
            the device is found by lsof(8) or fuser(1))
     [root@localhost lhd]# fuser /
      /:                       1rc     2rc     3rc     4rc     5rc     6rc     7rc    80rc    82rc    84rc    85rc   153rc   157rc   158rc

                               160rc   165rc   168rc  203rc   204rc   205rc   253rc   441rc   444rc   516rc   521rc   524rc   582rc   583rc

                               584rc   633rc  1052rc  1392rc  1394rc  1417rc  1597rc  1609rc  1617rc  1620rc  1683rc  1744rc  1783r  1785rc

                               1788rc  1806r  1808r  1810rc  1811rc  1812rc  1813rc  1814rc  1815rc  1848rc  1886rc  1899rc  1900rc  2001rc

                               ......太多不一一列出

      说明:
      这么些进程号后边的rc是怎么看头?
     
      c 将此文件作为当前目录使用。
      e 将此文件作为程序的可实践对象使用。
      r 将此文件作为根目录使用。
      s 将此文件作为分享库(或任何可装载对象)使用

   2,如何列出进程的详细音信,而不仅仅是经过id?
     用 -v参数就能够
     表达: -v:  含义是:verbose output,详细的输出音讯
     例子:

     [root@dev ~]# fuser /var/log
     /var/log:             4196c
     [root@dev ~]# fuser -v /var/log      

                          USER        PID ACCESS COMMAND
     /var/log:            root       4196 ..c.. bash

    3,怎么样列出进度所属的客商?
     用 -u参数就可以
     表明: -u: 含义:display user IDs,展现客商id
    
     例子:
     [root@dev ~]# fuser -u /var/log
     /var/log:             4196c(root)
     说明: -n: 含义:获得正在访谈某一端口的长河号,然后能够用kill命令杀死。

     [root@dev ~]# fuser -un tcp 25
      25/tcp:             4196(root)
     4,怎么样杀死全体正在访问钦点文件的历程?
     用 -k参数即可
     说明: -k:含义: kill processes accessing the named file

     例子:

     [root@localhost lhd]# fuser -v /root/install.log

                          用户     进程号 权限   命令
     /root/install.log:   root       3185 f.... tail
     [root@localhost lhd]# fuser -k /root/install.log
     /root/install.log:    3185
     [root@localhost lhd]# fuser -v /root/install.log

     表明: -k参数能够杀死全体的正在访谈钦命文件的进程,所以用来杀进度时相当方便
     表达之二: fuser怎样杀死的历程?
             它发送的是以此功率信号:SIGKILL

三,多学一些文化

    1,fuser能够列出它所知的实信号:
     用 -l参数就能够
    
     例子:
     [root@dev ~]# fuser -l
     HUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM
     STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS
     UNUSED

    2,fuser能够发送它已知的复信号给访谈的钦定文件进程而代表-k参数暗许发送的SIGKILL
      举例:只是挂起经过,那么发送HUP功率信号就能够了
    
      例子:
      [root@localhost lhd]# fuser -v /root/install.log

                           用户     进程号 权限   命令
      /root/install.log:   root       3347 f.... tail
      [root@localhost lhd]# fuser -k -SIGHUP /root/install.log
      /root/install.log:    3347
      [root@localhost lhd]# fuser -v /root/install.log

centos Linux系统常常管理1  cpuinfo cpu核数   命令 w, vmstat, uptime ,top ,kill ,ps ,free,netstat ,sar, ulimit ,lsof ,pidof 第十四节课

从她的名字就会看书这些工具的用途:查询给定文件或目录的顾客或进程消息;

主干用法

pidof [选项] [程序名]

其常用选项参数如下所示:

选项 说明
-s 仅返回一个PID
-c 仅返回具有相同root目录的PID
-x 显示由脚本开启的进程
-o omitpid 忽略指定的PID
pidof命令的返回值通常只有两个:
- 0:pidof命令至少找到一个对应的PID
- 1:pidof没有找到任何匹配的PID

LSOF

lsof 具备越来越多的职能
# lsof -i 看系统中有如何开放的端口,哪些进度、顾客在使用它们,比 netstat -lptu 的出口详细。

# lsof -i 4  查看IPv4类型的进程
COMMAND    PID        USER   FD   TYPE DEVICE SIZE NODE NAME
exim4     2213 Debian-exim    4u  IPv4   4844       TCP *:smtp (LISTEN)
dhclient3 2306        root    4u  IPv4   4555       UDP *:bootpc

# lsof -i 6  查看IPv6类型的历程
COMMAND  PID        USER   FD   TYPE DEVICE SIZE NODE NAME
exim4   2213 Debian-exim    3u  IPv6   4820       TCP *:smtp (LISTEN)

# lsof -i @192.168.1.2  查看与有些具体的IP相关联的进度
COMMAND  PID USER   FD   TYPE DEVICE SIZE NODE NAME
amule   3620 root   16u  IPv4  11925       TCP 192.168.1.2:42556->77.247.178.244:4242 (ESTABLISHED)
amule   3620 root   28u  IPv4  11952       TCP 192.168.1.2:49915->118-166-47-24.dynamic.hinet.net:5140 (ESTABLISHED)

# lsof -p 5670 查看PID为5670的历程打开的文件。

 

lsof也具备类似的效劳,它也能够寻觅正在对点名文件访谈的长河,两个的差异是fuser在于它可以壹次杀死这一个正在访谈钦赐文件的进程。

用法示例

1、突显运营程序的PID

[root@localhost ~]# pidof sshd
34128 34059 28835 28820 24697 24627 23228 23215 1995

在显示的结果能够看出共有9个PID,则表明服务器上9个进度均是由sshd运维的。

2、显示Shell的进程

[root@localhost ~]# cat test.sh
#!/bin/bash
i=1;
while [ $i -le 10000 ]
do
 echo $i
 i=$((i 1))
 sleep 120s
done
[root@localhost ~]# ./test.sh &
[root@localhost ~]# pidof -x test.sh
36554

3、展现钦定程序的PID

[root@localhost ~]# pidof -s sshd
7524

4、忽视钦命的PID

[root@localhost ~]# pidof sshd
9104 9103 7524 7434 4474 4462 1995
[root@localhost ~]# pidof sshd -o 1995
11979 11978 7524 7434 4474 4462

上半节课

fuser常用的地方是:

lsof

    在Windows中剔除文件时,会现出被占有而临时不或者删除的情景,这么些我们会一款极度好用的软件Unlocker,那么在Linux中就疑似的图景如什么地方理了?前些天大家来上学lsof命令。
    lsof全称list open files。用于查看进程张开的文本、目录和套接字等消息。

w
uptime

fuser可用于查询文件、目录、socket端口和文件系统的行使过程,并且可以动用fuser关闭进度。

焦点用法

pidof [选项] [文件名]

其常用选项参数如下所示:

选项 说明
-?或-h 显示帮助信息
-a 显示打开文件存在的进程
-c 进程名 显示指定进程所打开的文件
-d FD 显示文件描述符(FD)占用的进程
d 目录名 显示当前目录下被打开的文件
D 目录名 递归显示当前目录下被打开的文件
-i 条件 显示符合条件的进程
-p pid 显示指定PID打开的文件
-u uid 显示指定UID打开的文件
-g 显示所属组标识符PGID
R 显示父进程PPID

当中选取 -i 扶持的尺码如下所示:

条件 说明 示例
4/6 IPv4/ IPv6 lsof -i
protocol UDP/TCP lsof -i TCP
hostname 网络主机名 lsof -i@localhost
hostaddr 网络地址 lsof -i@192.168.8.8
service 服务名称,可查看/etc/services lsof -i:ssh
port 端口 lsof -i:22

lsof输出的详细消息解释如下:

  • COMMAND:进程名称,假若名称较长,则暗中同意只体现前9个字符
  • PID:进程标志符,假设加上-RAV4参数,则展现父进度PPID
  • USELacrosse:进程全数者,即便加上-g参数,则展现组标志符PGID
  • FD:文件叙述符
  • TYPE:文件类型,常见类型如下所示:
    DI库罗德:表示目录
    REG:表示平日文书
    CH中华V:表示字符类型
    BLK:表示块设备档期的顺序
    UNIX:表示UNIX套接字
    FIFO:表示先进先出队列
    IPv4:表示IPv4套接字
    IPv6:表示IPv6套接字

文本陈说符FD,但却足以代表两类内容:

  • 首先类是文件陈说符
    0:标准输入
    1:规范输出
    2:标准错误输出
    n:其余文件陈说符的数值

图片 1

  • 第二类描述文件特征的标志
    CWD:表示应用程序的当前职业目录,即程序运维的目录
    txt:表示文件类型为程序代码或数量
    mem:内部存款和储蓄器映射文件
    pd:父目录
    rtd:根目录
    DEL:表示文件已经删除但还存在于内部存款和储蓄器中

 

当文件系统umount报device busy时,常用到fuser查询并关闭使用相应文件系统的长河。(在DRBD切换的时候能够用到啊);

用法示例

1、通过文件定位占用的长河

[root@localhost ~]# top -d 2 > top.txt
[root@localhost ~]# lsof top.txt
lsof:WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
  Output information may be incomplete.
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF      NODE NAME
top     8900 root    1w   REG    8,2    69035 469790741 top.txt

2、通过文件陈述符定位进度

[root@localhost ~]# lsof -d 5 | head -3
lsof:WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
   Output information may be incomplete.
COMMAND  PID  USER   FD   TYPE      DEVICE SIZE/OFF NODE       NAME
systemd  1    root   5u   a_inode   0,10     0     7450       [signalfd]
Xvnc     2678 root   5u   IPv6      41776    0t0   TCP *:6003 (LISTEN)

3、通过进度定位文件

[root@localhost ~]# ps -ef |grep -i  mysql | grep -v grep
mysql 2680  1  2 7月19 ?  11:44:50 /usr/libexec/mysqld --basedir=/usr
[root@localhost ~]# lsof -p 2680 | head -3
lsof:WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
     Output information may be incomplete.
COMMAND  PID  USER   FD    TYPE  DEVICE SIZE/OFF  NODE   NAME
mysqld  2680  mysql  cwd   DIR   8,2    4096      319571 /var/lib/mysql
mysqld  2680  mysql  rtd   DIR   8,2    254       512    /

4、查看客商展开的文书

[root@localhost ~]# lsof -u root | tail -3
lsof:WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
   Output information may be incomplete.
COMMAND   PID   USER  FD     TYPE DEVICE  SIZE/OFF NODE NAME
kworker/3 39337 root  cwd    DIR  8,2     254      512  /
kworker/3 39337 root  rtd    DIR  8,2     254      512  /
kworker/3 39337 root  txt   unknown                     /proc/39337/exe

5、查看程序所攻陷的端口

[root@localhost ~]# lsof -i:22
COMMAND PID    USER   FD  TYPE  DEVICE      SIZE/OFF NODE NAME
sshd    27597  root   3u  IPv4 1460505039   0t0      TCP *:ssh (LISTEN)
sshd    27597  root   4u  IPv6 1460505041   0t0      TCP *:ssh (LISTEN)

下半节课

动用办法:

fuser

    fuser首要用来体现过程正在利用的文本、套接字、挂载点等。

top
kill命令
vmstat
ps
free
netstat
ulimit
sar
lsof
pidof

图片 2

主旨用法

fuser [选项] [文件名]

其常用选项如下所示:

选项 说明
-a ,--all 显示命令行中指定的所有文件
-c 同-m选项,用于兼容POSIX
-k, --kill 杀掉使用文件的进程
-i, --interactive 杀掉进程前需要用户确认,如果无-k参数则默认忽略该参数
-l, --list-signals 显示所有已知的 signal名称
-m NAME, --mount NAME 指定一个挂载的文件系统或被挂载的设备
-n SPACE 指定一个不同的命名空间,支持不同的命名空间文件(默认为文件名)、UDP(本地UDP端口)、TCP(本地TCP端口),为避免歧义,可以使用name/space形式,如80/tcp
-w 仅杀掉拥有写入权限的进程,如果无-k参数则默认忽略该参数
-s, --silent 静默模式,-u和-v忽略该参数
-u, --user 在PID后显示所属的用户名
-v, --verbose 显示详细信息
-4, --ipv4 仅搜索IPv4的套接字
-6, --ipv6 仅搜索IPv6的套接字

fuser展现钦点文件或文件系统的经过PID,在私下认可情势中,每一种文件名背后会用三个字母代表访问类型,如下所示:

  • c:表示当前目录
  • e:表示该公文为可实施文件
  • f:表示被张开的文书,默许方式中f不彰显
  • F:表示被张开的文书,用于写入操作,暗中认可形式中F不显得
  • r:根目录
  • m:映射文件或共享lib
-f 和 -F 只有与选项 -v 一起使用的时候才会显示,其他情况则默认不显示

 

基本上使基本上用-v 能够显示好多剧情:

用法示例

1、杀掉全数占用/home的长河

[root@localhost ~]# fuser -km /home

2、呈现本地全数mysql上端口进度

[root@localhost ~]# fuser mysql/tcp
mysql/tcp:            2680

3、显示详细的音讯

[root@localhost ~]# fuser -v top.txt
                     用户     进程号  权限   命令
/root/top.txt:       root     15847 F....  top

4、查看有三个进度正在选取有个别目录下文件系统,富含子目录

[root@localhost ~]# fuser -v -m /home/data
                     用户     进程号 权限   命令
/home/data:          root     kernel mount /home/data

5、通过端口定位进度

[root@localhost ~]# fuser -v -n tcp 22
                     用户     进程号 权限   命令
22/tcp:              root      27597 F.... sshd
                     root      31119 F.... sshd
或
[root@localhost ~]# fuser -v 22/tcp
                     用户     进程号 权限   命令
22/tcp:              root      27597 F.... sshd
                     root      31119 F.... sshd

 

图片 3

fuser与lsof对比

对比项 fuser lsof
定位方式 通过文件查找进程 通过进程查找文件
所属标准 POSIX -
参数类型 文件/网络端口 文件/PID/网络端口
进程输出 PID PID详细信息
是否可发送信息 可以,使用-k 不可以

 

/root 目录下的使用者,进度ID,PID后边的c代表进程的办事目录,前面是具体的通令;

ps

    在Windows系统中用来查看进度平时是透过职责管理器。而在Linux中,大家用ps(Process Status)命令来查看进度。

 

access还有另外选取:

基本用法

ps [选项]

其常用选项如下所示:

选项 说明
-A 显示所有进程,同选项-e
-a 显示所有进程,但排除新会话的首进程和无控制终端的进程
-d 显示所有进程,但排除新会话的首进程
-e 显示所有进程,同选项-A
r 仅显示正在运行的进程
-C cmdlist 显示指定命令的进程信息
-p pidlist 显示指定PID的进程
-t ttylist 显示指定tty的进程
-u userlist 显示指定有效用户ID或名字的进程
-c 显示CLS和PRI列
-f 添加详细列信息,通常与其他选项联合使用
-x 没有关联到终端上的进程也进行显示
-o 仅显示自定义的列
-l 仅显示属于当前登录用户的PID与相关信息列表
--sort spec 对输出信息进行排序 升序排序 - 降序排序

 

e:该公文为经过的可推行文件;

用法示例

1、不带参数的演示

[root@localhost ~]# ps
  PID TTY          TIME CMD
11047 pts/0    00:00:00 ps
24892 pts/0    00:00:00 su
25142 pts/0    00:00:00 bash

2、仅体现与当前客商相关的长河和连锁新闻

[root@localhost ~]# ps -l
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 R     0 22720 25142  0  80   0 - 38292 -      pts/0    00:00:00 ps
4 S     0 24892 22641  0  80   0 - 58599 do_wai pts/0    00:00:00 su
4 S     0 25142 24892  0  80   0 - 29305 do_wai pts/0    00:00:00 bash
  • F:表示经过表明,表明当前经过的权杖,若为4意味着经过权限为root,若为1意味着些子进度仅可实行复制(fork)而无法实际运作
  • S:表示经过情形,主要意况有:
      奥迪Q5:进度正在运作
      S:进度处于睡眠情状,但足以被提醒
      D:进度处于不可被提醒的睡觉情状,平常该进程大概在伺机I/O
      T:结束状态,也许是在做事调节或除错状态
      Z:尸鬼状态,进行已经终止但却力不能够及自由内部存储器等
  • UID/PID/PPID:实行的所属UID/PID/PPID
  • C:CPU使用率,单位为%
  • PENCOREI/NI:Priority/Nice缩写,表示经过被CPU执行的优先级,数值越小越快被CPU执行
  • ADD奥迪Q7:与内部存款和储蓄器相关,ADDPAJERO代表该进度在内部存款和储蓄器的哪些部分,假如是Running进度,会来得 -
  • SZ:与内部存款和储蓄器相关,表示该进程使用了某些内部存款和储蓄器;
  • WCHAN:与内部存储器相关,表示该进程前段时间是或不是正在运维,-表示正在运作中
  • TTY:运营进度的顶点名称
  • TIME:进度的实在CPU占用时间之和,单位为秒
  • CMD:进度命令

3、查看系统有着进度

[root@localhost ~]# ps aux
USER PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root   2  0.0  0.0      0     0 ?        S    8月08   0:00 [kthreadd]
root   3  0.0  0.0      0     0 ?        S    8月08   0:03 [ksoftirqd/0]
root   5  0.0  0.0      0     0 ?        S<   8月08   0:00 [kworker/0:0H]
root   8  0.0  0.0      0     0 ?        S    8月08   0:00 [migration/0]
  • USE奥迪Q7:进度所属客商
  • PID:进度标志符
  • %CPU:进程的CPU占比
  • %MEM:进程物理内部存款和储蓄器占比
  • VSZ:进度虚构内部存款和储蓄器(KB)使用量
  • RAV4SS:进程占用的定点内部存款和储蓄器量(KB)
  • TTY:运维进度的终极名称
  • STAT:进程情状
  • START:进程运维时间
  • TIME:进度的其实CPU占用时间之和
  • COMMAND:进程命令

在Linux中ps经常常有三种不一致的书写格式

  • BSD格式:选项前不加短横线 - ,八个选项可以整合使用如ps aux
  • UNIX格式:选项前加短横线 -,多少个选项可以构成使用如ps -aux
  • GNU长格式:选项前加双短横线 --,如 ps --context

据此ps aux 和ps -aux 在体现的出口信息是同样的。

4、彰显自定义列

[root@localhost ~]# ps -eo pid,user,cmd
PID USER     CMD
  2 root     [kthreadd]
  3 root     [ksoftirqd/0]
  5 root     [kworker/0:0H]
  8 root     [migration/0]

5、对出口结果实行排序

[root@localhost ~]# ps -ef --sort=uid,-ppid, pid
UID  PID    PPID  C STIME TTY        TIME CMD
root 31637 31624  0 17:42 pts/1  00:00:00 less -s
root 40772 25142  0 17:44 pts/0  00:00:00 ps -ef --sort=uid,-ppid, pid
root 40773 25142  0 17:44 pts/0  00:00:00 more
root 25142 24892  0 15:32 pts/0  00:00:00 bash
root 31624 24164  0 17:42 pts/1  00:00:00 man ps
root 24164 23955  0 15:32 pts/1  00:00:00 bash
root 23955 23586  0 15:32 pts/1  00:00:00 su root
root 24892 22641  0 15:32 pts/0  00:00:00 su root

 

f:该文件被进度张开,暗中同意f不显得;

pstree

    在动用ps查看进度极度惠及,但若想查看详细经过和子进度时,则要求使用pstree全命令。由于pstree不是系统自带,须求活动设置

yum -y install pstree

监督检查系统状态命令:w, vmstat, uptime ,top

F:该公文被进度打开,并写入,暗中认可F不出示;

主干语法

pstree [选项]

常用选项如下所示:

选项 说明
-a 显示每个进程的完整指令,包括路径、参数等
-h 高亮显示当前进程及父进程
-g 显示PGID
-n 相同父进程下,按各自的PID进行排序
-p 显示PID
-s 显示父进程
-u username 显示UID信息

 

r:表示该目录为经过的根目录;

kill

    在Windows系统中,当有些八个前后相继现身假死或无影响时,我们日常张开职责管理器,找到呼应的进度,然后杀掉该进程。在命令行盛行的Linux中,大家该利用哪个命令?常用于杀掉进度的命令非kill莫属了。

 

m:表示经过使用该文件进行内部存款和储蓄器映射,或然该公文为分享库文件,被进度映射至内部存款和储蓄器;

主导用法

kill [选项] [PID]

其常用选项如下所示:

选项 说明
-s signal 向目标进程发送指定的信号类型,信号可以为名称或数字
-l 显示信号名称列表,如果在-l加编号则查看信号名称,反之亦然
-a 处理当前进程时,不限制命令和PID的对应关系
-p 指定kill命令仅显示相关进程的进程号,而不发送任何信号
  • 无选项:表示向目的经过发送默许的结束复信号,即SIGTERM
  • PID>0:表示向指标经过发送非确定性信号,此处的PID能够是两个PID,用空格举办分隔
  • PID=0:表示向当前经过组的具有进度发送时域信号
  • PID=-1:表示向除当前 kill 进度和 init 进度之外的装有进程发送信号
  • PID<-1:表示向经过组PGID的保有进度发送能量信号,如-123,则向进度组PGID为123的具备进度发送时域信号

w

对socket端口使用者的情事实行查询:

用法示例

1、显示随机信号列表
图片 4

除上述呈现实信号,还也许有二个特种的编号0为测量检验非复信号,其效劳如下:

  • 用于测量检验目的经过是不是存在
[root@localhost ~]# kill -l 0
T
[root@localhost ~]# kill -0 99999
bash: kill: (99999) - 没有那个进程
  • 用于测量检验当前客商是还是不是享有向该过程发送非实信号的权柄
[admin@localhost ~]# kill -0 2325
bash: kill: (2325) - 操作不被允许

2、查看随机信号对应的号子或称谓

[root@localhost ~]# kill -l SIGHUP
1
[root@localhost ~]# kill -l KILL
9
[root@localhost ~]# kill -l 9
KILL

在Linux中常用信号如下所示:

信号名称 编号 解释
HUP 1 终端断线
INT 2 中断(同Ctrl C)
QUIT 3 退出(同Ctrl )
KILL 9 强制终止
TEEM 15 终止
CONT 18 继续(与STOP相反)
STOP 19 暂停(同Ctrl Z)

3、强制结束进度

[root@localhost ~]# kill -9 26744
[root@localhost ~]# kill -kill 30470

在采纳kill -9须要注意的事项如下所示:

  • kill无法杀死进度为1的init进度
  • 在利用kill -9时是强行终止进度且并未打招呼指标经过打开自身清理,而是猛然被中断,能够引致财富不可能平常释放,数据不能同步到磁盘等,在动用前须要三思

正文同步在微信订阅号上宣布,如各位小同伙们喜欢本身的稿子,也足以关怀笔者的微信订阅号:woaitest,或扫描下边包车型地铁二维码增添关切:
图片 5

# w
12:27:16 up 16 min (运行天数), 2 users (时下系统登入客商数 若是要刨除某些客户能够查阅有微微客户登陆了系统),

图片 6

load average: 0.06, 0.03, 0.00 单位时间段内CPU平均消耗 

翻开某文件系统的选择状态:

两个数分别表示区别一时候间段的种类平均负载(一分钟、五分钟、十五分钟)
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 12:26 5.00s 0.01s 0.00s -bash (当地客商
root pts/0 192.168.0.101 12:26 0.00s 0.07s 0.00s w  (长途客户

图片 7

图片 8

kill掉对有个别文件正在访谈的历程:

 

fuser是对相关进程发送SIGKILL时限信号。除了发送SIGKILL时限信号之外,fuser还足以发送以下时限信号:

留心:load average的最大值不或然当先CPU逻辑核数,举例8逻辑核CPU,load average不恐怕到达9.00 !

图片 9

老是远程连接Linux都会显得w命令信息

fuser -v -k filename;

 15:18:09 up 4 days, 21:19,  2 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
steven   pts/0    113.x.x.x  15:15   41.00s  0.01s  0.02s sshd: steven [priv]
steven   pts/1     113.x.x.x 15:18    0.00s  0.01s  0.02s sshd: steven [priv]

要终结全数对某文件系统举办访谈的历程:

 

fuser -ck /data (某文件系统挂载的目录);

ab(apache benchmark测验工具):测量试验apache

Linux fuser命令详解 

 

lsof也存有类似的效用,它也能够寻觅正在对点名文件访问...

uptime

# uptime
14:43:50 up 2 days, 20:45, 1 user, load average: 0.00, 0.00, 0.00

 

 


 

下半节课

 

 

top

# top
top - 14:46:57脚下光阴 up 2 days, 20:48 已经运维了多少时间, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 89 total 89个进程, 1 running, 88 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.3%sy, 0.0%ni, 99.7%id, 0.0%wa io等待cpu, 0.0%hi, 0.0%si, 0.0%st
Mem: 1922484k total 2G内存, 449604k used, 1472880k free, 166384k buffers
Swap: 0k total 无swap, 0k used, 0k free, 173156k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND
1 root 20 0 19356 1492 1192 S 0.0 0.1 0:00.58 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd

us:用户态
sy:内核态
wa:wait等待时间
id:空闲
ni:优先值
buffer:缓冲
cache:缓存
上边部分
PR:优先级
NI:NICE 优先值 -20~19 数值越小优先级越高,客商层概念 nice 值可调动的限定为 -20 ~ 19 # nice [-n 数字] command
VIRT:虚构内部存款和储蓄器  RES SWAP,包括mmap分配的内部存款和储蓄器
RES:真正内存 未有被换出的, 要关注
SH奇骏:分享内部存款和储蓄器
S:状态
%CPU:CPU百分比 top默认以CPU排序 8逻辑核CPU 当%CPU为800的时候 才表明CPU才完全占满
%MEM:内部存款和储蓄器百分比
TIME :在CPU运维了多久
COMMAND:命令

 

用以动态监察和控制进度所占系统能源,每隔3秒变一遍。
RES 这一项为经过所占内部存储器大小,而 %MEM 为利用内存百分比
按 “shift m”, 能够根据内部存储器使用大小排序。
按 “shift p”, 可以根据CPU使用排序。
按数字 ‘1’ 能够列出各颗cpu的选用情况。
top -bn1 它象征非动态打印系统能源使用处境,能够用在shell脚本中
top -c 最右侧的通令能够显得更详实的音讯 譬如命令路径

 

 

kill命令

少使用  kill -9 进程ID 
尽量用  killall 进程名 

 

w,uptime,top突显的第一行都以一致的

 

 

 

vmstat

#vmstat 1  //每一秒打印一次
#vmstat 1 10   //每一秒打印一次 打印十次后结束打印

-t参数:试行vmstat命令,该命令将会在每一行输出后都带二个时间戳   vmstat -t  1 5
-s参数:将出口各类风云计数器和内部存储器的总括消息。   vmstat -s
-d参数:将会输出全部磁盘的总结新闻。  vmstat -d
-S和-M参数:(大写和MB)将会以MB为单位输出。vmstat私下认可以KB为单位输出总括音信。  vmstat -S -M  1  5

vmstat各目的意义:

--proc进度有关-------------------------------------------------------------------------------
r :run 代表运转和等待cpu时间片的历程数,若是长时间过量服务器cpu的个数,则表达cpu远远不足用了;
b :表示等待财富的历程数,举例等待I/O, 内部存款和储蓄器等,那列的值假诺长日子超越1,则须求关切一下了
--swap 交流分区相关的---------------------------------------------------------------------------
si :由调换区走入内部存储器的数额; swap--》内部存款和储蓄器
so :由内部存储器步向沟通区的多寡;
--io 磁盘---------------------------------------------------------------------------------------
bi :从块设备读取数据的量(读磁盘); 磁盘--》内部存款和储蓄器
bo: 从块设备写入数据的量(写磁盘);
--system 系统相关的-----------------------------------------------------------------------
in : 每秒的软中断次数,包罗机械钟中断;
cs : 每秒的上下文切换次数;
--cpu cpu相关的-----------------------------------------------------------------------
wa :表示I/O等待所占用cpu时间百分比.
us :用户态
sy :内核态
id :空闲


 

 

ps
ps 查看系统经过  process show

-A 突显全部进程(等价于-e)(utility)
-a 显示贰个终端的装有进度,除了会话引线
-C  ps -C nginx 只体现某些程序的保有进程
-N 忽略接纳。
-d 突显全部进度,但轻巧全体的对话引线(utility)
-x 呈现未有决定终端的进程,同临时间显示各类命令的切实路径。dx不可合用。(utility)
-p pid 进度使用cpu的时间
-u uid or username 选取有效的客户id只怕是顾客名
-g gid or groupname 呈现组的持有进度。
U username 突显该客商下的装有进度,且展现各种命令的事无巨细路线。如:ps U zhang;(utility)
-f 全部列出,常常和别的选取联用。如:ps -fa or ps -fx and so on.
-l 长格式(有F,wchan,C 等字段)
-j 作业格式
-o 客商自定义格式。
v 以设想存款和储蓄器格式展现
s 以时域信号格式呈现
-m 彰显全部的线程
-H 展现进度的档次(和任何的命令合用,如:ps -Ha)(utility)
e 命令之后显得情状(如:ps -d e; ps -a e)(utility)
h 不显示第一行

ps aux / ps -elf
PID :进度的id,那么些id很有用,在linux中基本管理进程就得靠pid来辨别和管制某四个程,
例如说自身想终止某叁个经过,则用 ‘kill 进度的pid’偶尔并无法杀死,则供给加一个-9选项 kill -9 进度pid

ps aux
%CPU 进程的cpu占用率
%MEM 进度的内部存款和储蓄器占用率
VSZ 进度所利用的虚存的大小(Virtual Size)
XC90SS 进度使用的驻留集大小恐怕是实际内部存款和储蓄器的尺寸,单位 KB。

 

 ps -eo ppid,pid,user,args |grep mysql
 1  7348 root     /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql/mysql3306/data --pid-file=/data/mysql/mysql3306/tmp/mysql.pid
 7348  8463 mysql    /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql/mysql3306/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysqlmysql3306/logs/error.log --pid-file=/data/mysql/mysql3306/tmp/mysql.pid --socket=/data/mysql/mysql3306/tmp/mysql.sock --port=3306

ps axjf
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
0 2 0 0 ? -1 S 0 0:00 [kthreadd]
2 3 0 0 ? -1 S 0 0:00 _ [migration/0]
2 4 0 0 ? -1 S 0 0:18 _ [ksoftirqd/0]

STAT :表示经过的情况,进度意况分为以下几种
D 无法暂停的进度(经常为IO)
PAJERO 正在运作中的进度
S 已经搁浅的进程,系统中山高校部进度都以以此场所
T 已经甘休可能暂停的进程,假使我们正在运作一个指令,举个例子说 sleep 10 如若大家按一下ctrl -z 让他暂停,那么大家用ps查看就可以展现T那几个景况
X 已经死掉的经过(那么些未有会现出)
Z 活死人进度,杀不掉,打不死的废品进度,占系统一点点能源,但是未有涉嫌。假设太多,就有题目了,只可以重启服务器消除。
< 高优先级进度
N 低优先级进度
L 在内部存款和储蓄器中被锁了内部存款和储蓄器分页
s 主进程
l 二十八线程进程

  • 在前台的进度

 

watchdog:监视非常关键的经过,开采死掉的话扶持拉起首要进程

 

 

 

free

翻开内部存储器使用状态

-b  以Byte为单位出示内部存储器使用状态。
-k  以KB为单位出示内部存款和储蓄器使用状态。
-m  以MB为单位显示内部存款和储蓄器使用情形。
-g   以GB为单位出示内部存款和储蓄器使用境况。
-o  不展现缓冲区域地质调查解列。
-s   <间距秒数>  持续观看内部存储器使用情况。
-t  呈现内部存储器总和列。
-V  展现版本音讯。
free 暗中认可以k为单位出示
mem(total):内部存款和储蓄器总的数量;
mem(used):已经分配的内部存款和储蓄器; 实际不是实在已用
mem(free):未分配的内部存款和储蓄器;  并不是当真剩余内部存款和储蓄器
mem(buffers):系统分配但未被应用的buffers;
mem(cached)系统一分配配但未被运用的cache
buffers/cache(used):实际使用的buffers与cache 总的数量,也是事实上应用的内存;
buffers/cache(free):未被选取的buffers与cache和未被分配的内部存款和储蓄器之和,那就是系统  当前实在可用内部存款和储蓄器
buffers是快要要被写入磁盘的
cached是被从磁盘中读出来的

 

redhat7支持  free -h 

系统运维的时候就能够从内部存款和储蓄器拿出部分内部存款和储蓄器作为buffers和cached

 

 

netstat
netstat 查看网络情形 一遍握手 捌遍挥手
输出分为两部分:八个是TCP/IP网络部分,另一个是Unix socket部分
Unix socket是本机内的长河间通讯,並且连接非常多
-n :展现ip ,不显示机器名
netstat -lnp 查看当前系统开启的端口以至socket,全部ip,比方十一个ip,13个ip都监听
netstat -an 查看当前系统全数的总是情况
netstat -lntp 只有tcp,不列出socket
netstat -lnup 只有udp,不列出socket
netstat -an|awk '/ESTABLISHED/'|wc -l 检查机器并发

 

 

zabbix监听端口:10050
mysql监听端口:3306
nginx监听端口:80
stmp sendmail监听端口:25

sendmail和postifx都得以发邮件

 

 

sar

sysstat软件手提包含sar、iostat、mpstat多少个指令,iostat的cpu总括和磁盘总括跟sar命令大约
sar查看网络状态 跟vmstat用法差不离 1 10 每间距一秒打字与印刷,打印拾遍甘休
尚未这么些命令,使用  yum install -y sysstat 
网卡流量  n:network  DEV device  sar -n DEV ,  sar -n DEV 1 10 
读取内定文件数量,不加-f 暗许显示今天黎明(Liu Wei)到现行反革命完工: sar -n DEV -f /var/log/sa/sa24  
查看历史负载  sar -q  ldavg 1分钟5分钟 15分钟
查阅磁盘读写  sar -b  bread/s bwrtn/s

图片 10

翻开互连网状态还或者有别的二个工具:iftop

笔录文件要求敞开sysstat服务:ls /etc/init.d/sysstat

 

 


查阅cpu的个数和核数

cpu核数

cat /proc/cpuinfo
cat /proc/cpuinfo |grep 'core id'
processor :线程数  逻辑主题数   从0开首算  ,度量品质
core id:核心数  物理核心数 从0开端算

 

 

 cat /proc/cpuinfo |grep processor   //唯有一个逻辑核
processor : 0

 # cat /proc/cpuinfo |grep 'core id'   //独有二个物理核
core id : 0


并发连接数不会超过65536  文件汇报符 socket文件接二连三 最大65535
ulimit -n

 

# ulimit -a    //腾讯云
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 14860
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 100001   //10W  关注
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 14860     //  关注
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

 

ulimit -a    //家里centos6
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 7764
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 7764
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

 

 

楼方鑫HZ(37223884)  17:24:34
起动onecache前要设一下ulimit -n
ulimit -n 16384

 

概述

系统个性一贯是二个受关切的话题,怎么样通过最简便的安装来促成最有效的性质调优,怎么样在少数财富的

规范化下保障程序的运作,ulimit 是大家在管理那些主题材料时,通常选取的一种简双臂段。

ulimit 是一种 linux**系统的内建功效,它有着一套参数集,用于为由它生成的 shell 进度及其子进程的财富使用安装限制**。

正文就要前面的章节中详细表明 ulimit 的成效,使用以致它的影响,并以具体的事例来详细地解说它在限制资

源使用方面包车型客车熏陶。

 

 

ulimit 的功效和用法

ulimit 作用简述
纵然有那样一种意况,当一台 Linux 主机上同时登录了 12个人,在系统财富Infiniti制的情事下,
那 10 个顾客同期打开了 500 个文书档案,而只要每一种文书档案的高低有 10M,这时系统的内存能源就
会遭到巨大的挑衅。

而实际上接纳的条件要比这种若是复杂的多,比如在三个嵌入式开垦条件中,外省方的财富都以非凡
缺少的,对于开启文件汇报符的数目,分配货仓的深浅,CPU 时间,虚构内部存储器大小,等等,都有非
常严苛的供给。能源的合理性限定和分配,不止是保障系统可用性的需求条件,也与系统上软件运
行的属性兼备紧凑的维系。那时,ulimit 能够起到相当的大的功效,它是一种轻松何况有效的落实
财富限制的办法。

ulimit 用于限制 shell 所攻陷的能源,扶持以下各种类型的限量:所创制的木本文件的大
小、进度数据块的尺寸、Shell 进程创建文件的尺寸、内部存款和储蓄器锁住的深浅、常驻内部存款和储蓄器集的深浅、张开
文件陈述符的数目、分配货仓的最大尺寸、CPU 时间、单个客户的最大线程数、Shell 进度所能使
用的最大设想内部存款和储蓄器。相同的时候,它帮衬硬财富和软能源的限定。

作为不经常限制,ulimit 能够成效于经过应用命令登陆的 shell 会话,在对话终止时便甘休限制,并
不影响于任何 shell 会话。而对此长期的一贯限制,ulimit 命令语句又有啥不可被增添到由登陆 shell 读
取的公文中,功效于特定的 shell 顾客

 

ulimit 通过一些参数选项来保管分化档案的次序的系统财富。在本节,大家将执教那几个参数的应用。

ulimit 命令的格式为:ulimit [options] [limit]
具体的 options 含义以至简单示例能够参照以下表格。

表 1. ulimit 参数表明
选项 [options]
含义
例子

-H
设置硬财富限制,一旦设置不可能扩大。
ulimit – Hs 64;限制硬能源,线程栈大小为 64K。

-S
设置软财富限制,设置后得以扩大,可是不可能超越硬财富设置。
ulimit – Sn 32;限制软财富,32 个公文陈述符。

-a
来妥善前抱有的 limit 新闻。
ulimit – a;展现当前具备的 limit 音讯。

-c
最大的 core 文件的轻重缓急, 以 blocks 为单位。
ulimit – c unlimited; 对转移的 core 文件的尺寸不开展界定。

-d
进度最大的数据段的高低,以 Kbytes 为单位。
ulimit -d unlimited;对经过的数额段大小不实行界定。

-f
进程可以创建文件的最大值,以 blocks 为单位。
ulimit – f 2048;限制进度可以创造的最大文件大小为 2048 blocks。

-l
最大可加锁内部存款和储蓄器大小,以 Kbytes 为单位。
ulimit – l 32;限制最大可加锁内存大小为 32 Kbytes。

-m
最大内部存储器大小,以 Kbytes 为单位。
ulimit – m unlimited;对最大内部存款和储蓄器不开展限制。

-n
能够展开最大文件叙述符的多寡。
ulimit – n 128;限制最大能够应用 128 个文件陈说符。

-p
管道缓冲区的高低,以 Kbytes 为单位。
ulimit – p 512;限制管道缓冲区的大大小小为 512 Kbytes。

-s
线程栈大小,以 Kbytes 为单位。
ulimit – s 512;限制线程栈的轻重缓急为 512 Kbytes。

-t
最大的 CPU 占用时间,以秒为单位。
ulimit – t unlimited;对最大的 CPU 占用时间不进行限定。

-u
顾客最大可用的长河数。
ulimit – u 64;限制客商最多能够利用 64 个进程。

-v
进度最大可用的虚构内部存储器,以 Kbytes 为单位。
ulimit – v 300000;限制最大可用的设想内部存款和储蓄器为 两千00 Kbytes。

 

作者们可以透过以下两种情势来采用 ulimit:

在用户的起步脚本中
假如客商使用的是 bash,就足以在客户的家目录下的 .bashrc 文件中,到场ulimit – u 64,
来界定顾客最多能够动用 64 个进度。另外,能够在与 .bashrc 功效分外的启航脚本中投入 ulimt。

 

 

在应用程序的运转脚本中
设若顾客要对有些应用程序 myapp 举办限定,能够写多个轻易的脚本 startmyapp。

客户进度的平价限制

ulimit 作为对财富选拔限制的一种办法,是有其效劳范围的。那么,它界定的目的是单个顾客,单个
进度,照旧整个系统吧?事实上,ulimit 限制的是当下 shell 进度以致其派生的子进程。举个例子来讲,
假如顾客同有时候运维了五个 shell 终端进度,只在其间叁个情况中施行了 ulimit – s 100,则该 shell
进度里创制文件的大小收到相应的范围,而还要另三个 shell 终端包涵其上运维的子程序都不会受其震慑:

Shell 进程 1

Shell 进程 2

 

 

ulimit 管理系统财富的事例

ulimit 提供了在 shell 进度中限制系统财富的功效。本章列举了有个别选择ulimit 对顾客进
程进行限定的例证,详述了那些限制行为以致相应的影响,以此来声明 ulimit 怎么样对系统财富开展限定,进而达到调解系统质量的意义。

 

采纳 ulimit 限制造进程序所能创立的 socket 数量

思虑两个切实可行中的实际供给。对于三个 C/S 模型中的 server 程序来讲,它会为多少个 client
次第央浼创制四个 socket 端口赋予响应。即便刚好有大气的 client 同不平日间向 server 发出请
求,那么此时 server 就能要求成立大气的 socket 连接。但在二个系统个中,往往需求限制单
个 server 程序所能使用的最大 socket 数,以供其余的 server 程序所利用。那么大家怎么着
来成功那或多或少啊?答案是咱们得以通过 ulimit 来兑现!留神的读者恐怕会发觉,通过前边章节的
介绍就像未有限制 socket 使用的 ulimit 选项。是的,ulimit 并不曾哪位选项直接正是用来
限定 socket 的数额的。可是,大家有 -n 那些选项,它是用于限制贰个历程所能打开的公文描
述符的最大值。在 Linux 下全方位能源皆文件,普通文书是文本,磁盘打字与印刷机是文件,socket 当
然也是文本。在 Linux 下创办二个新的 socket 连接,实际上正是创制二个新的文书陈说符。如
下图所示(查看某些进度近年来展开的文书陈说符新闻):

图片 11

就此,我们能够通过运用 ulimit – n 来限制造进度序所能展开的最大文件陈说符数量,进而
直达限制 socket 成立的数量。

 

 

每当二个新的线程被创制时都亟需新分配一段大小为 1232KB (1MB)的内存空间

 

主题素材陈述:

延续祖宗门户情况意识CPU满负荷运转,MongoDB的连接数始终突破不断1000。

消除方案:

1、查看mongodb的日志,报上面包车型客车错误:
Wed Nov 21 15:26:09 [initandlisten] pthread_create failed: errno:11 Resource temporarily unavailable   
Wed Nov 21 15:26:09 [initandlisten] can't create new thread, closing connection

2、在一台一样的centos5的机器上测量检验,发现三番五次三千个接二连三一点标题都并没有。  
3、上google查找难题,关键字“mongod.conf can’t create new thread, closing connection”    
4、找到难题所在,原本centos6与事先centos5不一致,多了多个默许的界定客户nproc的布署文件 :/etc/security/limits.d/90-nproc.conf ,暗中认可把普通客商的nproc设置成1024,而mongodb正好又是利用mongod这几个非root客商跑的,所以连接数一向上不去了。    
5、退换/etc/security/limits.d/90-nproc.conf ,把1024改成20480 ,难点化解。 

代码:

[root@test ~]# cat /etc/security/limits.d/90-nproc.conf    # Default limit for number of user's processes to prevent    # accidental fork bombs.    # See rhbz #432903 for reasoning.*          soft    nproc     20480

#注意,root客商不受nproc限制

 

 

打开文件句柄数和最大顾客进度数限制:

在Linux上边安插应用的时候,一时候会遇上Socket/File: Can’t open so many files的主题材料;那么些值也会影响服务器的最大并发数,其实Linux是有文件句柄限制的,何况Linux暗中认可不是异常高,通常都以1024,生产服务器用实际很轻易就完毕那几个数额。上面说的是,如何通过正解配置来改正那么些体系默许值。

翻开药方法

大家得以用ulimit -a来查看全数限制值

复制内容到剪贴板

代码:

[root@test ~]# ulimit -a    core file size          (blocks, -c) 0    data seg size           (kbytes, -d) unlimited    scheduling priority             (-e) 0    file size               (blocks, -f) unlimited    pending signals                 (-i) 256469    max locked memory       (kbytes, -l) 64    max memory size         (kbytes, -m) unlimited    open files                      (-n) 64000    pipe size            (512 bytes, -p) 8    POSIX message queues     (bytes, -q) 819200    real-time priority              (-r) 0    stack size              (kbytes, -s) 10240    cpu time               (seconds, -t) unlimited    max user processes              (-u) 65536    virtual memory          (kbytes, -v) unlimited

file locks                      (-x) unlimited

中间 "open files (-n)"是Linux操作系统对多少个历程打开的公文句柄数量的限制,暗中同意是1024。  
(也暗含张开的SOCKET数量,可影响数据库的出现连接数目)。

正确的做法,应该是修改/etc/security/limits.conf  
里面有很详细的解说,比方    
hadoop  soft   nofile   32768    
hadoop hard nofile 65536

hadoop soft   nproc   32768  
hadoop hard nproc 65536

  
就足以将文件句柄限制统一改成软32768,硬65536。配置文件最前头的是指domain,设置为星号代表全局,别的你也能够针对分化的客商做出差别的限定。

注意:那么些当中的硬限制是实际的限定,而软限制,是warnning限制,只会做出warning;其实ulimit命令本人就有分软硬设置,加-H正是硬,加-S正是软

暗许显示的是软限制,若是运维ulimit命令修改的时候从不增添的话,正是四个参数一齐退换。

RubiconHE6及然后 nproc的改造在/etc/security/limits.d/90-nproc.conf中

 

 

哪些修改连接数限制:

权且更改(当前shell下转移客户可张开进度数):

复制内容到剪贴板

代码:

# ulimit -u xxx

永远修改, 保障的做法是同时修改/etc/security/limits.d/90-nproc.conf 和 /etc/security/limits.conf如下:

limits_conf = /etc/security/limits.conf: 
*   soft   nproc    s1    
*   hard   nproc    h1

nproc_conf = /etc/security/limits.d/90-nproc.conf:  
*   soft    nproc    s2    
*   hard    nproc    h2

s1,h1,s2,h2必需是切实有意义的数. 此时ulimit -u展现的值为=min(h1,h2)

因而普通就设置s1=s2=h1=h2, 比方在limits_conf和nproc_conf中并且插足:  
*   soft   nproc   65536    
*   hard   nproc   65536

 

 limits.conf的格式如下:
username|@groupname type resource limit

username|@groupname:设置须要被界定的客户名,组名前边加@和客商名分别。也得以用通配符*来做有所客商的界定。

type:有 soft,hard 和 -,soft 指的是眼下系统生效的设置值。hard 申明系统中所能设定的最大值。soft 的限制无法比har 限制高。用 - 就声明同有时间安装了 soft 和 hard 的值。

resource:
core - 限制内核文件的轻重缓急
date - 最大数量大小
fsize - 最大文件大小
memlock - 最大锁定内部存款和储蓄器地址空间
nofile - 展开文件的最大数据
rss - 最大悠久设置大小
stack - 最大栈大小
cpu - 以分钟为单位的最多 CPU 时间
noproc - 进程的最大数量
as - 地址空间限制
maxlogins - 此客户同意登入的最大数目

要使 limits.conf 文件配置生效,供给求保管 pam_limits.so 文件被参与到起步文件中。查看 /etc/pam.d/login 文件中有:
session required /lib/security/pam_limits.so

暂且地,适用于通过 ulimit 命令登陆 shell 会话期间。
永远地,通过将贰个对应的 ulimit 语句增添到由登录 shell 读取的公文之一(举例 ~/.profile),即一定于 shell 的客商能源文件;或然经过编写制定 /etc/security/limits.conf。
    何谓core文件,当四个程序崩溃时,在经过当前专业目录的core文件中复制了该进度的蕴藏图像。core文件仅仅是叁个内部存储器映象(同不时候充裕调试新闻),首若是用来调治的。  core文件是个二进制文件,必要用相应的工具来分析程序崩溃时的内部存款和储蓄器影象。
 
系统暗中认可core文件的轻重缓急为0,所以未有创立。能够用ulimit命令查看和退换core文件的分寸。
$ulimit -c
0
$ ulimit -c 1000
$ ulimit -c
1000
-c 钦点修改core文件的轻重,一千点名了core文件大小。也得以对core文件的高低不做限定,如:
# ulimit -c unlimited
#ulimit -c
unlimited
假若想让修改永远生效,则要求修改配置文件,如 .bash_profile、/etc/profile或/etc/security/limits.conf。
 2.nofile - 张开文件的最大数量
对此急需做过多套接字连接并使它们处于打开状态的应用程序来说,最棒通过应用 ulimit –n,只怕经过安装nofile 参数,为顾客把文件陈诉符的数量设置得比暗许值高级中学一年级些
 
 
用ulimit -n 2048 修改只对现阶段的shell有效,退出后失效:
如A程序已经运营,此时ulimit -n为1024;之后ulimit -n 2048,那时在运转B程序;退出当前shell客商,再度张开shell,之后运行C程序;这时唯有B程序用的是2048,另外用的都以1024


 

lsof命令

 

在极限下输入lsof就能够呈现系统张开的公文,因为 lsof 要求拜见基本内部存款和储蓄器和各类文件,所以必需以 root 客商的身份运维它才可以尽量地球表面达其作用

各列解释

每行显示贰个开垦的文书,若不钦点条件私下认可将体现全数进度张开的具备文件

lsof输出各列音讯的含义如下:
COMMAND:进度的称谓
PID:进度标记符
USERAV4:进度全体者
FD:文件描述符,应用程序通过文件汇报符识别该公文。如cwd、txt等
TYPE:文件类型,如DI冠道、REG等
DEVICE:内定磁盘的称呼
SIZE:文件的深浅
NODE:索引节点(文件在磁盘上的标志)
NAME:张开文件的适宜名称

 

 

选项

lsof  filename 展现张开钦命文件的全数进度
lsof -a 表示八个参数都必得满意时才显得结果
lsof -c string   呈现COMMAND列中富含内定字符的历程具备展开的文书
lsof -u username  展现所属user进度打开的公文
lsof -g gid 展现所属gid的长河意况
lsof d /DITiguan/ 展现目录下被进度展开的文件
lsof D /DILacrosse/ 同上,可是会递归找寻,不过会寻觅目录下的有所目录,时间相对较长
lsof -d FD 突显钦赐文件陈说符的长河
lsof -n 不将IP调换为hostname,缺省是不增添-n参数
lsof -p  <pid>  查看指定过程张开的文本
lsof -i[46] [protocol][@hostname|@hostaddr][:service|port]
            46 --> IPv4 or IPv6
            protocol --> TCP or UDP
            hostname --> Internet host name
            hostaddr --> IPv4地址
            service --> /etc/services 中的 service name (能够不只三个)
            port --> 端口号 (能够不只一个)

 

lsof |grep deleted ,呈现文件系统中一度被删除的文件可是因为被引用所以还没办法删除
lsof -i:3四千,突显应用3四千端口的长河
lsof -u root,突显以root运行的主次
lsof -c php-fpm,突显php-fpm进程张开的文书
lsof php.ini,呈现张开php.ini这几个文件的经过。

 

lsof -i :873|grep -v "PID"|awk '{print "kil -9",$2}'|sh
grep -v "PID":去除行头

 

# lsof -i 4  查看IPv4类型的长河
COMMAND    PID        USER   FD   TYPE DEVICE SIZE NODE NAME
exim4     2213 Debian-exim    4u  IPv4   4844       TCP *:smtp (LISTEN)
dhclient3 2306        root    4u  IPv4   4555       UDP *:bootpc

# lsof -i 6  查看IPv6类型的进度
COMMAND  PID        USER   FD   TYPE DEVICE SIZE NODE NAME
exim4   2213 Debian-exim    3u  IPv6   4820       TCP *:smtp (LISTEN)

# lsof -i @192.168.1.2  查看与某个具体的IP相关联的长河
COMMAND  PID USER   FD   TYPE DEVICE SIZE NODE NAME
amule   3620 root   16u  IPv4  11925       TCP 192.168.1.2:42556->77.247.178.244:4242 (ESTABLISHED)
amule   3620 root   28u  IPv4  11952       TCP 192.168.1.2:49915->118-166-47-24.dynamic.hinet.net:5140 (ESTABLISHED)

# lsof -i:873  依据进程号查阅进程对应的可实施程序
COMMAND PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
rsync   702 root    4u  IPv4 3792149      0t0  TCP *:rsync (LISTEN)

lsof -p 702  依据进度号查阅进度对应的可试行程序
# lsof -p 702
COMMAND PID USER   FD   TYPE  DEVICE SIZE/OFF   NODE NAME
rsync   702 root  cwd    DIR   252,1     4096 311297 /root
rsync   702 root  rtd    DIR   252,1     4096      2 /
rsync   702 root  txt    REG   252,1   410536 240090 /usr/bin/rsync
rsync   702 root  mem    REG   252,1    18712 147514 /lib64/libattr.so.1.1.0
rsync   702 root  mem    REG   252,1   154528 147463 /lib64/ld-2.12.so
rsync   702 root    0u   CH奇骏     1,3      0t0   3787 /dev/null  前八个文件陈述符  标准输入 标准输出 标准错误 第多个开首文件陈说符
rsync   702 root    1u   CHR     1,3      0t0   3787 /dev/null
rsync   702 root    2u   CHR     1,3      0t0   3787 /dev/null
rsync   702 root    4u  IPv4 3792149      0t0    TCP *:rsync (LISTEN)

# lsof /usr/bin/rsync
COMMAND PID USER  FD   TYPE DEVICE SIZE/OFF   NODE NAME
rsync   702 root txt    REG  252,1   410536 240090 /usr/bin/rsync

 

# lsof -u steven
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 19640 steven cwd DIR 252,1 4096 2 /
sshd 19640 steven rtd DIR 252,1 4096 2 /
sshd 19640 steven txt REG 252,1 567128 239837 /usr/sbin/sshd
sshd 19640 steven DEL REG 0,4 6892665 /dev/zero
sshd 19640 steven mem REG 252,1 18600 147602 /lib64/security/pam_limits.so

# lsof -c rsync
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rsync 702 root cwd DIR 252,1 4096 311297 /root
rsync 702 root rtd DIR 252,1 4096 2 /
rsync 702 root txt REG 252,1 410536 240090 /usr/bin/rsync
rsync 702 root mem REG 252,1 18712 147514 /lib64/libattr.so.1.1.0
rsync 702 root mem REG 252,1 1921176 147470 /lib64/libc-2.12.so
rsync 702 root 0u CHR 1,3 0t0 3787 /dev/null
rsync 702 root 4u IPv4 3792149 0t0 TCP *:rsync (LISTEN)

 

 

lsof简介

lsof(list open files)是贰个列出当前系统张开文件的工具。在linux环境下,任何事物都是文件的方式存在,通过文件不但能够访谈常规数量,还能访问网络连接和硬件。所以如传输调整合同(TCP) 和客商数量报公约 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文书描述符,无论那一个文件的面目如何,该文件陈述符为应用程序与功底操作系统之间的相互提供了通用接口。为应用程序展开文件的陈说符列表提供了大气关于这个应用程序自己的音讯,因而通过lsof工具能够查阅那些列表对系统监测以致排错将是很有扶持的。
大多数与 lsof 相关的新闻都存储于以进度的 PID 命名的目录中,即 /proc/1234 中含有的是 PID 为 1234 的长河的音信。

lsof使用
lsof输出音讯意义

在终端下输入lsof就可以展现系统展开的公文,因为 lsof 供给探望基本内部存款和储蓄器和各个文件,所以必需以 root 顾客的地位运营它手艺够丰盛地公布其效果。

COMMAND    PID      USER   FD      TYPE     DEVICE     SIZE       NODE      NAME
init       1         root  cwd      DIR       3,3       1024       2         /
init       1         root  rtd      DIR       3,3       1024       2         /
init       1         root  txt      REG       3,3       38432      1763452  /sbin/init
init       1         root  mem      REG       3,3       106114     1091620  /lib/libdl-2.6.so
init       1         root  mem      REG       3,3       7560696    1091614  /lib/libc-2.6.so
init       1         root  mem      REG       3,3       79460      1091669  /lib/libselinux.so.1
init       1         root  mem      REG       3,3       223280     1091668  /lib/libsepol.so.1
init       1         root  mem      REG       3,3       564136     1091607  /lib/ld-2.6.so
init       1         root  10u      FIFO      0,15                  1309     /dev/initctl

每行呈现一个开荒的文本,若不点名条件私下认可将显得全体进度打开的持有文件。lsof输出各列音讯的含义如下:

COMMAND:进度的称谓
PID:进度标记符
USEKoleos:进度全体者
FD:文件描述符,应用程序通过文件陈说符识别该文件。如cwd、txt等
TYPE:文件类型,如DI奥迪Q5、REG等
DEVICE:钦点磁盘的称呼
SIZE:文件的高低
NODE:索引节点(文件在磁盘上的标记) 文件inode
NAME:张开文件的适当路线

FD 列表示文件陈说符
cwd 表示应用程序的当前工作目录,那是该应用程序运行的目录,除非它本人对那个目录实行更改。

txt 代表的文件是程序代码,如应用程序二进制文件本人或分享库,如上列表中展示的 /sbin/init 程序。

u 代表该其次数值表示应用程序的文本描述符,那是开拓该文件时再次来到的贰个子弹头。如上的尾声一行文件/dev/initctl,
其文件叙述符为 10。
文本被打开并处于读取/写入格局,并不是只读或只写格局。同一时间还会有大写的W表示该应用程序具有对全部文件的写锁。
该公文叙述符用于确认保证每一次只可以展开叁个应用程序实例。开端张开各样应用程序时,都负有八个公文描述符,
从 0 到 2,分别代表职业输入、输出和错误流。所以大多数应用程序所张开的公文的 FD 都以从 3 此前。

Type 列表示文件类型
文本和目录分外号为 REG 和 DI宝马X5
CH科雷傲 和 BLK,分别表示字符和块设备
UNIX、FIFO 和 IPv4,分别表示 UNIX 域套接字、先进先出 (FIFO) 队列和互联网左券 (IP) 套接字

lsof常用参数
lsof 常见的用法是找寻应用程序张开的文书的名目和多少。可用来查寻找有些特定应用程序将日志数据记录到哪个地方,或然正在追踪有个别难点。
比方,linux限制了经过能够开荒文件的数目。常常那个数值十分的大,所以不会发生难题,並且在要求时,应用程序能够央求更加大的值(直到某
个上限)。假诺您思疑应用程序耗尽了文本描述符,那么能够使用 lsof 总括张开的文书数量,以拓宽表达。lsof语法格式是:

lsof [options] filename

常用的参数列表:
lsof  filename 突显打开钦点文件的装有进度
lsof -a 表示三个参数都无法不满意时才呈现结果
lsof -c string   显示COMMAND列中富含钦点字符的进度具备张开的文书
lsof -u username  呈现所属user进度展开的文件
lsof -g gid 彰显所属gid的进度意况
lsof d /DI昂科拉/ 展现目录下被进程打开的文书
lsof D /DIKuga/ 同上,可是会递归寻找,但是会寻觅目录下的享有目录,时间相对较长
lsof -d FD 展现钦赐文件叙述符的进程
lsof -n 不将IP调换为hostname,缺省是不增加-n参数
lsof -p  <pid>  查看钦命进度展开的文本
lsof -i[46] [protocol][@hostname|@hostaddr][:service|port]
            46 --> IPv4 or IPv6
            protocol --> TCP or UDP
            hostname --> Internet host name
            hostaddr --> IPv4地址
            service --> /etc/services 中的 service name (能够不只贰个)
            port --> 端口号 (能够不只一个)

            
            
lsof使用实例

一、查找哪个人在运用文件系统

在卸载文件系统时,假如该文件系统中有别的张开的文书,操作经常将会停业。那么通过lsof能够寻觅那几个经过在利用当前要卸载的文件系统,如下:

# lsof  /GTES11/
COMMAND  PID USER   FD   TYPE DEVICE SIZE NODE NAME
bash    4208 root  cwd    DIR    3,1 4096    2 /GTES11/
vim     4230 root  cwd    DIR    3,1 4096    2 /GTES11/

二、苏醒删除的文本
当LinuxComputer受到凌犯时,常见的事态是日记文件被删去,以覆盖攻击者的踪影。管理破绽百出也或者引致敬外删除首要的文件,譬如在清理旧日志时,意内地删除了数据库的移动职业日志。
奇迹能够经过lsof来平复这么些文件。
当进度伸开了有些文件时,只要该进程保持开辟该公文,尽管将其除去,它依旧存在于磁盘中。那意味,进度并不知道文件已经被剔除,它仍旧能够像张开该文件时提需求它的文本叙述符实行读取和写入。
除了那几个之外该进程之外,这一个文件是不可以看到的,因为已经删除了其相应的目录索引节点inode。

在/proc 目录下,当中包括了展现基本和进度树的各个文件。/proc目录挂载的是在内存中所映射的一块区域,所以那几个文件和目录并官样文章于磁盘中,由此当我们对这几个文件进行读取和写入时,实际上是在从内部存款和储蓄器中获取有关消息。大非常多与 lsof 相关的新闻都存款和储蓄于以进程的 PID 命名的目录中,即 /proc/1234 中蕴藏的是 PID 为 1234 的历程的新闻。每种进程目录中存在着各样文件,它们得以使得应用程序简单地领会进度的内部存储器空间、文件陈诉符列表、指向磁盘上的公文的符号链接和其他系统音信。lsof 程序行使该消息和别的有关基本内部景观的音讯来发出其出口。所以lsof 能够来得进度的公文陈诉符和相关的公文名等音信。也正是大家通过拜见进度的文书陈述符能够找到该公文的有关音信。
ll /proc/8775/exe
lrwxrwxrwx 1 root root 0 Mar 29 19:02 /proc/8775/exe -> /usr/sbin/sshd

当系统中的有个别文件被意各市删除了,只要今年系统中还可能有进度正在访谈该公文,那么我们就可以通过lsof从/proc目录下复苏该公文的内容。 若是由于误操作将/var/log/messages文件删除掉了,那么此时要将/var/log/messages文件恢复生机的章程如下:

先是使用lsof来查阅当前是或不是有过程张开/var/logmessages文件,如下:
# lsof |grep /var/log/messages
syslogd   1283      root    2w      REG        3,3  5381017    1773647 /var/log/messages (deleted)

从上边的新闻方可以预知到 PID 1283(syslogd)张开文件的公文叙述符为 2。同期还是可以看出/var/log/messages已经标识被剔除了。因而大家得以在 /proc/1283/fd/2 (fd下的各样以数字命名的公文表示经过对应的公文呈报符)中查阅相应的音讯,如下:

# head -n 10 /proc/1283/fd/2
Aug  4 13:50:15 holmes86 syslogd 1.4.1: restart.
Aug  4 13:50:15 holmes86 kernel: klogd 1.4.1, log source = /proc/kmsg started.
Aug  4 13:50:15 holmes86 kernel: Linux version 2.6.22.1-8 (root@everestbuilder.linux-ren.org) (gcc version 4.2.0) #1 SMP Wed Jul 18 11:18:32 EDT 2007
Aug  4 13:50:15 holmes86 kernel: BIOS-provided physical RAM map:
Aug  4 13:50:15 holmes86 kernel:  BIOS-e820: 0000000000000000 - 000000000009f000 (usable)
Aug  4 13:50:15 holmes86 kernel:  BIOS-e820: 000000000009f000 - 00000000000a0000 (reserved)
Aug  4 13:50:15 holmes86 kernel:  BIOS-e820: 0000000000100000 - 000000001f7d3800 (usable)
Aug  4 13:50:15 holmes86 kernel:  BIOS-e820: 000000001f7d3800 - 0000000020000000 (reserved)
Aug  4 13:50:15 holmes86 kernel:  BIOS-e820: 00000000e0000000 - 00000000f0007000 (reserved)
Aug  4 13:50:15 holmes86 kernel:  BIOS-e820: 00000000f0008000 - 00000000f000c000 (reserved)

若是得以经过文件叙述符查占卜应的多寡,那么就能够动用 I/O 重定向将其复制到文件中,如:
cat /proc/1283/fd/2 > /var/log/messages

对于众多应用程序,非常是日记文件和数据库,这种苏醒删除文件的办法十分管用

 

查找误删文件具体步骤

举个例子寻觅/var/log/messages

1、使用lsof查看/var/log下边包车型地铁公文所用的公文陈说符
lsof D /var/log
COMMAND    PID   USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
auditd    1138   root    5w   REG  253,0   724625 1312257 /var/log/audit/audit.log
rsyslogd  1168   root    1w   REG  253,0     1111 1312269 /var/log/messages
rsyslogd  1168   root    2w   REG  253,0    55962 1312253 /var/log/cron
rsyslogd  1168   root    4w   REG  253,0     1763 1312270 /var/log/secure
mcelog    1493   root    3w   REG  253,0        0 1312155 /var/log/mcelog
zabbix_ag 2054 zabbix    1w   REG  253,0   263546 1312233 /var/log/zabbix/zabbix_agentd.log
zabbix_ag 2054 zabbix    2w   REG  253,0   263546 1312233 /var/log/zabbix/zabbix_agentd.log
zabbix_ag 2058 zabbix    1w   REG  253,0   263546 1312233 /var/log/zabbix/zabbix_agentd.log
zabbix_ag 2058 zabbix    2w   REG  253,0   263546 1312233 /var/log/zabbix/zabbix_agentd.log

2、找到使用/var/log/messages的进程的pid ,和/var/log/messages所使用的公文呈报符次数  这里次数为1
ll /proc/1168/fd
total 0
lrwx------ 1 root root 64 Mar 25 11:00 0 -> socket:[10156]
l-wx------ 1 root root 64 Mar 25 11:00 1 -> /var/log/messages
l-wx------ 1 root root 64 Mar 30 10:24 2 -> /var/log/cron
lr-x------ 1 root root 64 Mar 25 11:00 3 -> /proc/kmsg
l-wx------ 1 root root 64 Mar 30 10:24 4 -> /var/log/secure

3、cat一下文件叙述符为1的公文
cat /proc/1168/fd/1
Mar 28 10:37:01 steven rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1168" x-info="] rsyslogd was HUPed
Mar 28 11:49:21 steven fail2ban.filter[2075]: INFO Log rotation detected for /var/log/secure
Mar 28 12:40:12 steven kernel: e1000: eth0 NIC Link is Down
Mar 28 12:40:22 steven kernel: e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
Mar 28 13:36:27 steven kernel: e1000: eth0 NIC Link is Down
Mar 28 13:36:38 steven kernel: e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
Mar 28 18:24:48 steven yum[4880]: Installed: sysstat-9.0.4-27.el6.x86_64
Mar 28 19:13:41 steven kernel: e1000: eth0 NIC Link is Down
Mar 28 19:13:53 steven kernel: e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
Mar 29 12:34:14 steven kernel: e1000: eth0 NIC Link is Down
Mar 29 12:34:23 steven kernel: e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
Mar 29 19:01:57 steven kernel: e1000: eth0 NIC Link is Down
Mar 29 19:02:09 steven kernel: e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None

4、实行相比较,开采确实是千篇一律的
at /var/log/messages
Mar 28 10:37:01 steven rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1168" x-info="] rsyslogd was HUPed
Mar 28 11:49:21 steven fail2ban.filter[2075]: INFO Log rotation detected for /var/log/secure
Mar 28 12:40:12 steven kernel: e1000: eth0 NIC Link is Down
Mar 28 12:40:22 steven kernel: e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
Mar 28 13:36:27 steven kernel: e1000: eth0 NIC Link is Down
Mar 28 13:36:38 steven kernel: e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
Mar 28 18:24:48 steven yum[4880]: Installed: sysstat-9.0.4-27.el6.x86_64
Mar 28 19:13:41 steven kernel: e1000: eth0 NIC Link is Down
Mar 28 19:13:53 steven kernel: e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
Mar 29 12:34:14 steven kernel: e1000: eth0 NIC Link is Down
Mar 29 12:34:23 steven kernel: e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
Mar 29 19:01:57 steven kernel: e1000: eth0 NIC Link is Down
Mar 29 19:02:09 steven kernel: e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None

5、备份下来
cat /proc/1168/fd/1> /var/log/messages


pidof命令

 

pidof  进程名

 

21852是libvirtd  进度的进度号

[root@gz]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:5905                0.0.0.0:*                   LISTEN      21945/qemu-kvm      
tcp        0      0 0.0.0.0:16509               0.0.0.0:*                   LISTEN      21852/libvirtd      
tcp        0      0 0.0.0.0:9022                0.0.0.0:*                   LISTEN      1150/sshd           
tcp        0      0 127.0.0.1:8000              0.0.0.0:*                   LISTEN      1173/python         
tcp        0      0 0.0.0.0:6080                0.0.0.0:*                   LISTEN      1171/python         
tcp        0      0 0.0.0.0:5903                0.0.0.0:*                   LISTEN      21977/qemu-kvm      
tcp        0      0 :::9022                     :::*                        LISTEN      1150/sshd           

[root@gzy1]# pidof libvirtd
21852

 

f

本文由星彩网app下载发布于星彩网app下载,转载请注明出处:基础教程,Linux系统日常管理1

TAG标签: 星彩网app下载
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。