Linux实践

iptables

  1. 临时性生效
    service iptables status
    service iptables save
    iptables -A INTPUT -p tcp --sport 27017 -j ACCEPT
    iptables -D INPUT number

  2. 修改配置文件(永久性生效)
    可以增加/删除端口
    cat /etc/sysconfig/iptables
    vi /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 27017 -j ACCEPT
注意:(1)-m state --state为一个完整参数
(2)必须注意顺序。
被允许的端口必须放在REJECT之前。
(3)不需要增加-A OUTPUT 规则。
重启iptables则生效: service iptables restart
-A INPUT -p tcp -m state --state NEW -m tcp --dport 27017 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

service iptables status查看端口结果
5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:27017
6 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

  1. es
    需要开放两个port:
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 9200 -j ACCEPT
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 9300 -j ACCEPT

  2. 查看现有规则链中详情
    iptables -L

linux 系统监测工具

  1. iostat,通过yum安装
    iostat -d -x 2
    观察avctm, await 两个参数

  2. netstat -ant
    查看tcp网络连接

netstat -antu
查看tcp/udp网络连接

netstat -antup
查看tcp/udp网络连接,以及进程名字

-p 查看进程名
-n 能显示为数字的全部转成数字

  1. 查看系统的负载
    vmstat -S m 2
    -S: 使用指定单位显示

  2. 查看网络通信,用wireshark更强大
    tcpdump -i eth0
    eth0 为第一个网卡, lo 为localhost。通过ifconfig查看

  3. 查看内存和CPU
    top
    等同于: uptime, free, mpstat
    先top,然后按1,切换到多核模式,查看各个CPU情况

shift + M 按内存大小排序

mpstat 可以查看Linux版本与CPU个数

%MEM 进程使用的物理内存百分比
RES 进程使用的物理内存
VIRT 进程使用的物理内存

  1. telnet 可以探测端口是否开放
    telnet ip port
    e.g. telnet 10.11.42.151 6379
    退出telnet: ctrl+],然后按q

ping 探测主机是否存活

  1. iptables,配置防火墙规则
    出口表
    入口表
    iptables -A OUTPUT -p tcp --dport 6379 -j DROP
    iptables -D OUTPUT -p tcp --dport 6379 -j DROP

-p 协议
--dport 端口
-j 动作,指定如何处理
-D 删除规则
-A 在当前链的最后新增一个规则

  1. ps
    查看pid为10696中线程情况
    tid为线程号
    time为占用cpu时间
    注意:THREAD,tid,time间不能有空格
    ps -mp 10696 -o THREAD,tid,time
    ps -mp 10696 -o THREAD,tid,time,rss,size,%mem
    ps aux
    ps -ef

  2. 打印java堆栈信息
    29ca为j将tid转换成16进制的结果
    jstack 10696 | grep 29ca -A 30

  3. 查看线程的内存占用
    分析具体的对象数目和占用内存的大小
    jmap -histo:live 10696 | head -n 100

  4. 查看进程中各个线程CPU占用
    10696 为pid
    top -p 10696 -H

  5. 查看java进程
    jps
    top -p 10696 -H
    jstack 10696 | grep 29ca -A 30

  6. 高CPU占用问题排查
    jps
    查看线程占用cpu时间(有两个命令)
    ps -mp 10696 -o THREAD,tid,time
    top -p 10696 -H
    jstack 10696 | grep 29ca -A 30

  7. 高内存问题排产
    jmap -histo:live 10696 | head -n 100

  8. 查找应用程序所在位置
    which jvm
    whereis搜索更大范围
    whereis jvm

  9. Linux中采取监控数据
    dstat
    ntop
    snmp 简单网络管理协议

  10. linux下软件安装与卸载命令
    rpm: redhat package manager
    rpm -qa | grep iotop

  11. 查看磁盘读写速度
    iostop -o

  12. 输出重定向
    iotop -o >>bi_disk.txt

原文地址:https://www.cnblogs.com/sunzhuli/p/9696625.html