linux 僵尸进程孤儿进程、系统优化

linux 僵尸进程孤儿进程、系统优化

1.查看网络状态

1.安装网络调试工具
	yum install net-tools
2.执行 netstat -nutlp          查看本机所有监听的端口 
	[root@localhost ~]# netstat -nutlp
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:80              0.0.0.0:*               LISTEN      1372/nginx: master  
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1286/sshd           
tcp6       0      0 :::80                   :::*                    LISTEN      1372/nginx: master  
tcp6       0      0 :::22                   :::*                    LISTEN      1286/sshd    
	#参数
	-n	不反解       不将ip解析成主机名,不将端口解析成协议名(80--http)
		也可以说   主机名解析成ip,协议解析成端口
-------------------------------------------------------------------
	-u	打印出udp协议的相关信息	
-------------------------------------------------------------------
	-t	代表查看tcp协议的 并且显示主机名、tcp协议是ssh的	
		[root@localhost ~]# netstat -t
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0    372 localhost.localdoma:ssh 192.168.15.1:57097      ESTABLISHED
tcp协议				主机名	 tcp协议是由ssh产生的  当前连接ssh的地址
-------------------------------------------------------------------
	-l	监听 , 分两部分上面是IPv4的,下面是ipv6
	[root@localhost ~]# netstat -l     这是tcp协议 ipv4
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:http            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
tcp6       0      0 [::]:http               [::]:*                  LISTEN     
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN     
Active UNIX domain sockets (only servers)    下面的是ipv6 unix协议
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     STREAM     LISTENING     13811    /run/lvm/lvmetad.socket
unix  2      [ ACC ]     STREAM     LISTENING     13843    /run/lvm/lvmpolld.socket
unix  2      [ ACC ]     SEQPACKET  LISTENING     13862    /run/udev/control
unix  2      [ ACC ]     STREAM     LISTENING     9039     /run/systemd/journal/stdout
unix  2      [ ACC ]     STREAM     LISTENING     13710    /run/systemd/private
unix  2      [ ACC ]     STREAM     LISTENING     18606    /run/dbus/system_bus_socket
	
-------------------------------------------------------------------
	-p	显示PID/Program name    pid和进程名称

2.僵尸进程和孤儿进程

#僵尸进程的三个必要条件    PID 范围 0-65535 不包括0  PID可以更改 
	1.必须是进程
	2.进程的生命周期已经结束
	3.进程一人占着PID 不释放
	单个僵尸进程没有危害,但是多个僵尸进程存在时,大量占用PID,PID被占满,导致不能开启新的进程
#孤儿进程
	1.进程的父ID(PPID)已经结束,但是子进程还在运行
    2.在父进程结束的情况下,子进程被操作系统(PID=1)进程接收
    孤儿进程没有危害,自己执行完自己结束

3.yum源的优化

最起码要有这俩(Centos  base)             epel
自建仓库 或者用一个稳定点的云
base:wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo
epel:可以自己写,创建一个epel.repo
[epel]
name='huawei epel repo'
baseurl=https://repo.huaweicloud.com/epel/7/x86_64/
gpgcheck=0

最大的云服务:阿里云
专利最多的云:华为云

4.系统主机名

hostnamectl set-hostname [新的主机名]   新开个窗口立即生效

vim /etc/hostname       重启生效

5.系统之间的域名解析

vim /etc/hosts
格式ip 主机名    

6.关闭selinux和防火墙

#selinux
	临时关闭:setenforce 0  临时关闭
	永久关闭:vim /etc/selinux/config  设置  SELINUX=disabled

#防火墙:
	systemctl disable --now firewalld    永久关闭
	systemctl start firewalld     # 开启
    systemctl stop firewalld      # 关闭
    systemctl status firewalld    # 查看防火墙状态
	

7.配置ntp时间同步

1.安装ntp
	yum install ntpdate
2.同步时间
	ntpdate [时间服务器的地址]
	
	ntp.aliyun.com  阿里时间服务器
	ntp.tuna.tsinghua.edu.cn   清华网络授时
	等等他们都来自北斗  -->原子钟   他来自-->各种算法
	
	

8.ulimit 设置系统开启进程或者文件句柄数量

-n:最大句柄数量
	ulimit -n 10   临时修改
	#创建一个python代码并执行出来的结果xxx
	#到proc/xxx/fd 查看
	[root@localhost fd]# ls
	0  1  2  3  4  5  6  7  8  9

	#永久修改
    cat >>/etc/security/limits.conf<<EOF     
        * soft nofile 102400
        * hard nofile 102400
        * soft nproc 102400
        * hard nproc 102400
        EOF
    再执行 systel-p   测试
    重启
-u:最大进程数量
	ulimit -u 10
	
ELK elasticserch     -->需要文件句柄65536       一般默认65535  所以需要永久修改

9.设置最大PID数

#获取最大PID   /proc/sys/kernel/pid_max 
	[root@localhost ~]# cat /proc/sys/kernel/pid_max 
	131072
#临时修改  /proc/sys/kernel/pid_max 
	echo 111111 > /proc/sys/kernel/pid_max
	
#永久修改   /etc/sysctl.conf
	echo "kernel.pid_max= 4194303" >> /etc/sysctl.conf 
	sysctl -p 测试

10.调整内核参数

cat >>/etc/sysctl.conf<<EOF
net.ipv4.tcp_fin_timeout = 2             打开文件句柄的超时时间
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.ip_local_port_range = 4000    65000
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384
net.ipv4.tcp_max_orphans = 16384
net.ipv4.ip_forward = 1      打开操作系统网络转发功能。默认是关闭的   
EOF

11.关闭networkmanger

network    一般用这个
networkmanger  网络断开,清理路由,  自定义路由会被清理
他俩只能用一个,一起用会引起冲突
systemctl disable --now networkmanger  禁用networkmanger

12.禁ping

防止主机被ping
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

13.用户提权sudo 普通用户临时使用root用户的权限时

当普通用户临时使用root用户的权限时
需要在/etc/sudoer 文件中添加权限,找到有root的行 添加 (用户名) test1 ALL=(All) ALL
在普通用户执行 sudo vim 1.txt

14.字符处理

1.sort 排序  默认第一个字符进行排序
	参数
	-n:按照数值大小排序  从小到大
		[root@localhost tmp]# cat 1.txt |sort 
	-r:倒序 从大到小
		[root@localhost tmp]# cat 1.txt |sort -n -r
	-k:以某一列排序  比如用第二列排序(默认列的分隔符是空格)    sort -k2 
		[root@localhost tmp]# cat 1.txt |sort -n -k2
	-t:指定分隔符
		[root@localhost tmp]# cat 1.txt |sort -n -k2 -t:
2.uniq 去重(默认去除相邻的数据,一般和sort -n连用,先排序一下在去重)
	参数
	-c:显示每列重复的次数
		[root@localhost tmp]# cat 1.txt |sort -n |uniq -c
	-d:显示重复的列
		[root@localhost tmp]# cat 1.txt |sort -n |uniq -c -d
	-u:显示不重复的列
		[root@localhost tmp]# cat 1.txt |sort -n |uniq -c -u
3.cut 分割字符(默认以空格分割)
	cut有局限性,如果以空格分割,所有的列空格必须一样,如果空格一个多一个少,那分割的就不准
	awk只有有空格就会分
	-d:指定字段分隔符    
		[root@localhost tmp]# cut -d: -f1 2.txt          以:分割,第一列
	-f:显示指定列的内容
		[root@localhost tmp]# cut -d: -f2 2.txt         以:分割,第二列
4.tr(替换)
	[root@localhost tmp]# cat 2.txt | tr "75" "99"
	-d:删除字符  不会实际删除
		[root@localhost tmp]# cat 2.txt | tr -d "75" 
5.wc
	-c:统计字节(包括换行符)
		[root@localhost tmp]# cat 2.txt |wc -c
	-l:统计行数
		[root@localhost tmp]# cat 2.txt |wc -l
	-W:统计单词个数(默认以空格分割)
		[root@localhost tmp]# cat 2.txt | wc -w

15.时间

1.要求打印当前时间 格式为2021-5-5 00:00:00
	#  +不能少
	%F:%Y-%m-%d
	%I:十二小时制
	%W:本年的第多少周
	%s:从1970年到现在的秒数
	
	date +"%Y-%m-%d %H:%M:%S"     
2.设置本机的时间
	date -s "2021-11-11 11:11:11"
posted @ 2021-10-15 08:34  迪迦张  阅读(73)  评论(0编辑  收藏  举报