标签 linux 下的文章

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

前面的 netstat -n是netstat的命令,window和linux都可以用,结果显示内容差不多

后面的 awk'/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 是linux下的命令,主要作用是对netstat输出的结果进行过滤和处理

运行这一句之后,显示的结果类似如下:

TIME_WAIT 27       
FIN_WAIT1 435
FIN_WAIT2 89
ESTABLISHED 82
SYN_RECV 64
CLOSING 4
LAST_ACK 90

这些结果代表啥意思呢?如下:

TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认
FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2:从远程TCP等待连接中断请求
ESTABLISHED:代表一个打开的连接
SYN-RECV:再收到和发送一个连接请求后等待对方对连接请求的确认
SYN-SENT:再发送连接请求后等待匹配的连接请求
CLOSING:等待远程TCP对连接中断的确认
CLOSED:没有任何连接状态
CLOSE-WAIT:等待从本地用户发来的连接中断请求
LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认
LISTEN:侦听来自远方的TCP端口的连接请求

#列出php-fpm进程,按内存排序
ps -ylC php-fpm --sort:rss

1.png

#列出所有用户的进程
ps aux | grep php-fpm

Linux上进程有5种状态: 

进程状态 含义 对应ps命令的状态码
运行 正在运行或在运行队列中等待 R 运行 runnable (on run queue) 
中断 休眠中, 受阻, 在等待某个条件的形成或接受到信号 S 中断 sleeping 
不可中断 收到信号不唤醒和不可运行, 进程必须等待直到有中断发生 D 不可中断 uninterruptible sleep (usually IO) 
僵死 进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放 Z 僵死 a defunct (”zombie”) proces
停止 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行 T 停止 traced or stopped 

 ps命令有很多参数,具体如下:

命令 含义
e 显示所有进程,环境变量
f 全格式
h 不显示标题
l 长格式
w 宽输出
a 显示终端上地所有进程,包括其他用户地进程
r 只显示正在运行地进程
x 显示没有控制终端地进程
u 以用户为主的格式来显示程序状况
au 显示较详细的资讯
aux 显示所有包含其他使用者的行程
-C<命令> 列出指定命令的状况
--lines<行数> 每页显示的行数
--width<字符数> 每页显示的字符数
--help 显示帮助信息
--version 显示版本显示

其中STAT状态位常见的状态字符有
D      //无法中断的休眠状态(通常 IO 的进程); 
R      //正在运行可中在队列中可过行的; 
S      //处于休眠状态; 
T      //停止或被追踪; 
W      //进入内存交换 (从内核2.6开始无效); 
X      //死掉的进程 (基本很少见); 
Z      //僵尸进程; 
<      //优先级高的进程 
N      //优先级较低的进程 
L      //有些页被锁进内存; 
s      //进程的领导者(在它之下有子进程); 
l      //多线程,克隆线程(使用 CLONE_THREAD, 类似 NPTL pthreads); 
+      //位于后台的进程组;

磁盘读写状况:

#注:每1秒 显示 1次 显示 10次
sar -b 1 10

19时54分35秒 tps rtps wtps bread/s bwrtn/s
19时54分36秒 0.00 0.00 0.00 0.00 0.00
19时54分37秒 0.00 0.00 0.00 0.00 0.00
平均时间:   0.00 0.00 0.00 0.00 0.00

tps: 每秒向磁盘设备请求数据的次数,包括读、写请求,为rtps与wtps的和。出于效率考虑,每一次IO下发后并不是立即处理请求,而是将请求合并(merge),这里tps指请求合并后的请求计数。

rtps: 每秒向磁盘设备的读请求次数

wtps: 每秒向磁盘设备的写请求次数

bread: 每秒从磁盘读的bytes数量

bwrtn: 每秒向磁盘写的bytes数量

说明

查看io进程

命令:iotop
注:DISK TEAD:n=磁盘读/每秒 DISK WRITE:n=磁盘写/每秒。
注:标黄的可查看磁盘的读写速率,下面可以看到使用的io。

# hostnamectl -h

  -h --help              显示帮助
     --version           显示安装包的版本
     --transient         修改临时主机名
     --static            修改瞬态主机名
     --pretty            修改灵活主机名
  -P --privileged        在执行之前获得的特权
     --no-ask-password   输入密码不提示
  -H --host=[USER@]HOST  操作远程主机

Commands:
  status                 显示当前主机名设置
  set-hostname NAME      设置系统主机名
  set-icon-name NAME     为主机设置icon名
  set-chassis NAME       设置主机平台类型名

CentOS7中有三种定义的主机名:
静态的(static)、瞬态的(transient)、和灵活的(pretty)。
静态主机名也称为内核主机名,是系统在启动时从/etc/hostname内自动初始化的主机名。
瞬态主机名是在系统运行时临时分配的主机名。
灵活主机名则允许使用特殊字符的主机名。

1.查看状态

# hostnamectl 或者 # hostnamectl status   (显示的结果都一样)

2.修改主机名称

# hostnamectl set-hostname Linuxprobe
# hostnamectl status

有时候,我们害怕别人修改我们创建的文件,或者是误删我们创建的文件,那么我们可以使用下面的方法进行控制即可

1.创建不可删除文件

Linux:/qinys/oliver # touch test.sh
Linux:/qinys/oliver # chattr +i test.sh 
Linux:/qinys/oliver # rm -rf test.sh 
rm: cannot remove `test.sh': Operation not permitted

2.将文件设置可以删除

Linux:/qinys/oliver # chattr -i test.sh 
Linux:/qinys/oliver # rm -rf test.sh

此时就可以删除了!

详解:

一 chattr命令格式
chattr [+-=] [选项] 文件或目录名
+:增加权限
-:删除权限
=:等于某权限
chattr选项包括:i和a
a等价于append
i等价于insert
i:如果对文件设置了i属性,那么不允许对文件进行删除,改名,也不能添加和修改数据;如果对目录设置了i属性,那么只能修改目录下文件的数据,但不允许建立和删除文件。
a:如果对文件设置了a属性,那么只能在文件中增加数据,但是不能删除也不能修改数据;如果对目录设置了a属性,那么只允许在目录中建立和修改文件,但是不允许删除。
注意:对root用户生效
 
二 lsattr命令格式
lsattr 选项 文件名
选项:
-a 显示所有文件和目录
-d 若目标是目录,仅列出目录本身的属性,而不是子文件的属性
————————————————
版权声明:本文为CSDN博主「cakincqm」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/chengqiuming/article/details/78602006