Chinaunix首页 | 论坛 | 博客
  • 博客访问: 315212
  • 博文数量: 89
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 691
  • 用 户 组: 普通用户
  • 注册时间: 2015-09-20 16:58
文章分类

全部博文(89)

文章存档

2017年(1)

2016年(35)

2015年(53)

我的朋友

分类: LINUX

2015-11-25 11:04:36

一, 系统资源监控:

top
    Top收集/proc下的系统信息并展示给用户,是个最常用的系统监控工具, 监控进程的cpu, 内存等的使用情况,  Top具有交互模式下有多种命令,可以灵活的实现用户的监控需求 常用的命令有:
    k  #kill     杀死进程
    f   #Fields         选择top显示的列
    F  #Fileds        选择top排序的列
    c  #command  显示进程的完整命令
    H #threads       显示进程的子线程


lsof
    可以查看进程open的文件状态, 也可以指定file(广义指: 文件/目录/挂载点/设备/套接字/管道等)来找到使用它的进程, 或者显示系统open的文件
通过进程找文件: lsof -c CMD; lsof -p PID 
通过文件找进程:lsof  -d DIR;  lsof +D DIR;lsof FILE
指定文件类型: lsof -p PID -a -i;lsof -p PID -a -U; lsof -p PID -a -N 

netstat
    查看系统的网络状态,  如:
    netstat -lp;   显示正在listen的进程及端口
    netstat -a;    显示网络所有的连接状态及监听
    netstat -r;     显示内核路由表
    netstat -i;      显示网卡信息

dstat
    查看系统的磁盘IO, 网络流量, cpu, 内存, 中断情况, swap情况, 文件aio, 文件系统状态, ipc状态, 锁状态, socket, tcp,udp等, 每个监控的显示都相对简略, 但是监控项齐全. 
    dstat -a #显示最常见的系统监控项

iostat
    查看系统的磁盘io状态 如:
    iostat -x   1  #显示齐全的io状态, 每隔1秒刷新一次
 
Sar
    可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等.            
   
二, 进程调试工具

pstack
    可以查看当前的堆栈信息, 堆栈信息有进程中所有线程的堆栈信息和线程号等信息, 结合top, perf等工具, 可以知道该线程的运行状态(如占用多少cpu)
    pstack PID

Strace
    可以查看进程的所有系统调用 
    strace -p    PID          #查看进程的系统调用
    starce    CMD    #查看程序的系统调用

gdb
    程序调试工具, 在线调试, 单步调试,

Valgrind
    内存泄漏检查, 锁检查

Perf
    Linux下性能分析工具
    Perf list    #list event
    Perf stat -p    PID
    Perf top -p PID == perf top -e cycles -p PID  #display the cycles event info of      

三, 系统工具

Sysctl  
    动态调整内核参数, 如设置系统能打开的最大文件数:
        临时改变: sysctl fs.nr_open sysctl fs.nr_open=10485760
        永久改变: echo ‘fs.nr_open = 10485760’ >> /etc/sysctl.conf  

ulimit
    查看/设置用户的设置参数  如设置用户进程打开的文件数:
            临时改变 : ulimit -n 10240
            永久改变: echo ‘* - nofile 10240’    >> /etc/ 

四, 网络调试

nc
    简单的流通信工具, 可以用来传输各种数据(如文件,镜像等)如: 
    传输文件(Client -> Service)   
        service:   nc -l port > test.txt   
        client:    cat test.txt  | nc service.ip port   
    传输文件(Service -> Client)   
        Service:  cat test.txt | nc -l port   
        Client: nc service.ip port > test.txt
    传输目录(-:代表标准输出) (Client -> Service)   
        Service: nc -l port | tar xvf -   
        Client:  tar cvf - dir | nc service.ip port   
    传输目录(Service -> Client)    
        Service: tar cvf - dir | nc -l port   
        Client:  nc service.ip port | tar xvf -
    聊天:   
        Service: nc -l port   
        Client: nc service.ip
    port 端口扫描   
        nc -v -w 1 scan.ip -z port_start-port_end 

tcpdump
    网络抓包工具, 如:
 tcpdump -i IF host IP-ADDR and port PORT -w SAVE_FILE   
    其中:
        IF: 网卡
        IP-ADDR: 本地ip地址
        PORT: 本地端口, 可以是连接端口或监听端口
        SAVE_FILE:  保存数据的文件路径,  可以用wireshark分析该文件

Wireshark(Etherea)
    常见的网络协议解析,支持http, nfs, dns, rtmp, samba,ping,icmp,ftp等等1170种协议 

Curl/wget
  curl是一个利用URL规则在命令行下工作的文件传输工具,支持http,ftp协议,   http请求格式如下:  
        curl -X GET -H KEY:VAL URL   
        其中:    
            -X METHOD是http请求的方法如, GET, PUT, POST, DELETE,等   
            -H KEY:VAL是http请求的header, 不同的场合KEY:VAL不同   
            URL:   是htttp请求的url, 如  
        发http Get请求:  curl -X GET -H KEY:VAL URL   
        发http Put请求:  curl -X PUT -T UPLOAD-FILE -H KEY:VAL URL   
            
    wget是一个从网络上自动下载文件(注意:只能下载)的自由工具,支持通过HTTP、HTTPS、FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理。用法: wget URL,

Telnet
    远程登录工具, 由于telnet是明文传输, 现在已经被加密的ssh取代, 但是仍经常用来测试监听端口, 如: telnet HOST PORT

Whois/Host 

Traceroute/ping/Mtr  

iptable
    可以方便的制定网络防火墙规则, 同时支持NAT转换, 上网代理等

五, 硬盘&文件系统

file/lsattr/chattr     
    查看或者改变文件(广义文件)的attr属性 

getfattr/setfattr/attr
    查看或者设置文件(广义文件)的xattr属性  
阅读(2655) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~