常用脚本命令

1、请求访问量
cat access.log | cut -f1 -d " " |sort | uniq -c | sort -k 1 -n -r | head -10
2、查看最耗时的页面
cat access.log | sort -k 2 -n -r | head -10




3、curl 来抓取网页和web的服务器监控


4、利用time和dd命令来测试磁盘的写入性能
sync;/usr/bin/time -p bash -c "(dd if=/dev/zero of=test.dd  bs=1M count=20000)"


5、利用hdparm命令来测试磁盘的读性能
hdparm -tT /dev/设备号
6、利用fdisk来查看磁盘详情
fdisk -l


7、使用iostat 来查看磁盘的IO读写性能情况
   iostat -p (加设备)
   iostat 3 表示每3秒执行


8、数据包捕获功能
指定ip和端口
tcpdump -i eth0 -nn net 192.100.4.116 and port 1521
默认:tcpdump -i eth0 -nn
netstat -n | awk '/^tcp/' 连接数
导出tcpdump:tcpdump -i eth0 host 192.100.4.118 -w /tcpdump.cap
9、查看TCP连接数
 netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'


10、查看线程的状态统计
 grep java.lang.Thread.State 11.txt |awk '{print $2$3$4$5}' |sort |uniq -c


11、使用jmap来查询jvm堆的信息
   a。查询jvm内存中的经过GC后还存活的对象:jmap -histo:live 23484|head -10  (head -10 排序查看,不加也行)
   b。查询jvm的信息,以及新生代已使用百分比,以及老生代的已使用:jmap -heap pid
   c。jmap -dump:live,format=b,file=heap.hprof 23484   来生成内存对象的head文件 用eclipse的MAT插件来查看
12、使用jstat 来实时查看jvm内存的使用情况,以及monior gc的次数以及full gc的次数和时间,由此也能看出gc是否频繁
    jstat -gc 23484 5000:每5秒执行打印情况,展示的字节
    jstat -gcutil 23484 5000:展示的是百分比
13、使用jstack 来查看线程的执行情况,多用于造成cpu飙高的情况下
    printf %x\n 子线程   将10进制转为16进制
    printf %d\n 子线程   将16进制转为10进制
    jstack -l pid > 11.txt
13-1、使用jinfo可以在一个正在运行的JVM中动态的开启GC日志功能
jinfo -flag +PrintGCDetails 12278
jinfo -flag +PrintGC 12278
关闭如下:
jinfo -flag -PrintGCDetails 12278
jinfo -flag -PrintGC 12278


14、ab用于压力测试
 ab -c 10 -n 200 url    c表示10个并发。n表示200个请求


15、性能排查工具:pidstat -p 22367 1 3 -u -t
 -u:代表对cpu使用率的监控
 参数1 3:表示每秒采样一次,一共三次
 -t:将监控级别细化到线程 
 1、PID - 被监控的任务的进程号
 2、%usr - 当在用户层执行(应用程序)时这个任务的cpu使用率,和 nice 优先级无关。注意这个字段计算的cpu时间不包括在虚拟处理器中花去的时间。
 3、%system - 这个任务在系统层使用时的cpu使用率。
 4、%guest - 任务花费在虚拟机上的cpu使用率(运行在虚拟处理器)。
 5、%CPU - 任务总的cpu使用率。在SMP环境(多处理器)中,如果在命令行中输入-I参数的话,cpu使用率会除以你的cpu数量。
 6、CPU - 正在运行这个任务的处理器编号。
 7、Command - 这个任务的命令名称。


16、检查之前先查看NFS文件服务和rpcbind服务是否已在运行,service nfs status/service rpcbind status
    安装之后,修改/etc/export文件,添加需要挂载的路径
        检查可以挂载的文件系统:showmount -e 192.168.102.91系统会列出可以挂载的文件
mount -t nfs 192.168.102.91:/usr/local/apache-activemq-5.7.0/data/kahadb /data/activemq 
就将91上目录/usr/local/apache-activemq-5.7.0/data/kahadb挂载到本机目录/data/activemq上
最后将该目录自动挂载,避免系统重启后需手动挂载。自动挂载即修改配置文件/etc/fstab
17、基本脚本
系统


# uname -a               # 查看内核/操作系统/CPU信息
 # head -n 1 /etc/issue   # 查看操作系统版本 
# cat /proc/cpuinfo      # 查看CPU信息
 # hostname               # 查看计算机名 
# lspci -tv              # 列出所有PCI设备
 # lsusb -tv              # 列出所有USB设备 
# lsmod                  # 列出加载的内核模块
 # env                    # 查看环境变量
资源


# free -m                # 查看内存使用量和交换区使用量 
# df -h                  # 查看各分区使用情况 
# du -sh <目录名>        # 查看指定目录的大小 
# grep MemTotal /proc/meminfo   # 查看内存总量
 # grep MemFree /proc/meminfo    # 查看空闲内存量
# uptime                 # 查看系统运行时间、用户数、负载 
# cat /proc/loadavg      # 查看系统负载
磁盘和分区


# mount | column -t      # 查看挂接的分区状态 
# fdisk -l               # 查看所有分区 
# swapon -s              # 查看所有交换分区
 # hdparm -i /dev/hda     # 查看磁盘参数(仅适用于IDE设备) 
# dmesg | grep IDE       # 查看启动时IDE设备检测状况
网络


# ifconfig               # 查看所有网络接口的属性
 # iptables -L            # 查看防火墙设置 
# route -n               # 查看路由表 
# netstat -lntp          # 查看所有监听端口 
# netstat -antp          # 查看所有已经建立的连接
 # netstat -s             # 查看网络统计信息
进程


# ps -ef                 # 查看所有进程 
# top                    # 实时显示进程状态
用户


# w                      # 查看活动用户 
# id <用户名>            # 查看指定用户信息 
# last                   # 查看用户登录日志 
# cut -d: -f1 /etc/passwd   # 查看系统所有用户 
# cut -d: -f1 /etc/group    # 查看系统所有组 
# crontab -l             # 查看当前用户的计划任务
服务


# chkconfig --list       # 列出所有系统服务 
# chkconfig --list | grep on    # 列出所有启动的系统服务
程序


# rpm -qa                # 查看所有安装的软件包


18、防火墙的使用:firewall
查看当前设置:firewall-cmd --list-all
开放8080端口:firewall-cmd --add-port 8080/tcp
禁用8099端口:firewall-cmd --remove-port 8099/tcp
启动服务: firewall-cmd --add-service http
禁用服务: firewall-cmd --remove-service http
查看状态: firewall-cmd --state
上面的操作都是临时配置,重启之后均会失效,如果要永久配置,则添加选项参数--permanent
重新加载 firewall-cmd --reload
仅允许部分IP访问本机服务配置
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4"
source address="192.168.0.0/24" service name="http" accept"
禁止远程IP访问ssh
firewall-cmd --permanent --zone=public --add-rich-rule=’rule family=ipv4
source address=192.168.0.0/24 service name=ssh accept’
查看rich规则
firewall-cmd  --list-rich-rules
删除rich规则
firewall-cmd --permanent --zone=public --remove-rich-rule=’rule family=ipv4
source address=192.168.0.0/24 service name=ssh accept’
仅允许部分IP访问本机端口配置
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4"
source address="192.168.0.0/24"port protocol="tcp" port="8080" accept"
(例:rule family="ipv4" source address="192.100.4.0/24" port port="1521" protocol="tcp" accept
        rule family="ipv4" source address="192.168.12.0/24" port port="1521" protocol="tcp" accept
        rule family="ipv4" source address="210.73.152.72/32" port port="1521" protocol="tcp" accept)
172.25.1.0/24网段内的客户端不能访问主机的SSH
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4"
source address="192.168.0.0/24" service name=ssh drop"


19、工具检测端口是否开放
1、使用telnet检测端口是否开放:服务器端口即使处于监听状态,但是防火墙iptables屏蔽了该端口,
  是无法通过该方法检测端口是否开放的
2、netcat工具检测端口是否开放:nc -vv 192.168.42.128 1521

你可能感兴趣的:(Liunx)