linux 命令
查找:
Linux命令大全(手册) – 真正好用的Linux命令在线查询网站 (linuxcool.com)
大数据运维相关命令
sar 命令
sar命令是Linux下系统运行状态统计工具,它将指定的操作系统状态计数器显示到标准输出设备。
sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据。取样数据和分析的结果都可以存入文件,使用它时消耗的系统资源很小
yum install sysstat systemctl start sysstat systemctl enable sysstat
参考: Linux sar命令详解:分析系统性能 (biancheng.net)
top 命令
top # 查看进程cpu使用情况 shift + p 将进程按照CPU占用从大到小排序 shift + m 将进程按照内存占用从大到小排序 top -H -p pid # 查看某个进程的线程cpu的使用情况 q 退出
ps 命令
ps aux | sort -rn -k 3|head -n 10 # 查询当前 cpu 使用率最高的 10 个进程的相关信息。
jstack 命令
jstack tid # 查看线程的堆栈信息 这个命令可以查看代码的错误信息
du 和 df 命令
du命令: 来自于英文词组“Disk Usage”的缩写,其功能是用于查看文件或目录的大小。人们经常会把df和du命令混淆,df是用于查看磁盘或分区使用情况的命令,而du命令则是用于按照指定容量单位来查看文件或目录在磁盘中的占用情况。
df命令来自于英文词组”Disk Free“的缩写,其功能是用于显示系统上磁盘空间的使用量情况。df命令显示的磁盘使用量情况含可用、已有及使用率等信息,默认单位为Kb,建议使用-h参数进行单位换算,毕竟135M比138240Kb更利于阅读对吧~
区别:
du,disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计算的大小就是当前他认为存在的所有文件大小的累加和。 df,disk free,通过文件系统来快速获取空间大小的信息,当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了,当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件, df记录的是通过文件系统获取到的文件的大小,他比du强的地方就是能够看到已经删除的文件,而且计算大小的时候,把这一部分的空间也加上了,更精确了。 当文件系统也确定删除了该文件后,这时候du与df就一致了。
free 命令
free命令的功能是显示系统内存使用量情况,包含物理和交换内存的总量、使用量和空闲量情况。
以默认的容量单位显示内存使用量信息: [root@linuxcool ~]# free total used free shared buff/cache available Mem: 2013304 1372796 87432 17620 553076 444040 Swap: 2097148 1804 2095344 以MB位单位显示内存使用量信息: [root@linuxcool ~]# free -m total used free shared buff/cache available Mem: 1966 1342 123 14 499 434 Swap: 2047 9 2038 以易读的单位显示内存使用量信息,每个10秒刷新一次: [root@linuxcool ~]# free -hs 10 total used free shared buff/cache available Mem: 1.9Gi 1.3Gi 119Mi 14Mi 500Mi 430Mi Swap: 2.0Gi 9.0Mi 2.0Gi total used free shared buff/cache available Mem: 1.9Gi 1.3Gi 119Mi 14Mi 500Mi 430Mi Swap: 2.0Gi 9.0Mi 2.0Gi
iostat 命令
iostat被用于监视系统输入输出设备和CPU的使用情况。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。
每隔两秒报告一次: [root@linuxcool ~]# iostat -d 2 示sda与sdc的统计数据,每2秒报告一次,持续6次: [root@linuxcool ~]# iostat -x sda sdc 2 6
iotop
iotop命令是一个用来监视磁盘I/O使用状况的top类工具。iotop具有与top相似的UI,其中包括PID、用户、I/O、进程等相关信息。
Linux下的IO统计工具如iostat,nmon等大多数是只能统计到per设备的读写情况,如果你想知道每个进程是如何使用IO的就比较麻烦,使用iotop命令可以很方便的查看。
参考实例 使用-o参数只显示IO操作进程: [root@linuxcool ~]# iotop -o 使用-b参数批量显示,无交互: [root@linuxcool ~]# iotop -b 使用-u参数显示root用户的IO进程: [root@linuxcool ~]# iotop -u root
lsof
lsof命令来自于英文词组“list opened files”的缩写,其功能是用于查看文件的进程信息。既然Linux系统中的一切都是文件,那么使用lsof命令查看进程打开的文件,又或是查看文件的进程信息,都能够很好的帮助用户了解相关服务的运行状态,是一个不错的系统监视工具
参考实例
查看当前系统中全部文件与进程对应信息: [root@linuxcool ~]# lsof COMMAND PID TID TASKCMD USER FD TYPE DEVICE SIZE/OFF NODE NAME systemd 1 root cwd DIR 253,0 224 128 / systemd 1 root rtd DIR 253,0 224 128 / ………………省略部分输出信息……………… 显示指定目录中被调用的文件信息: [root@linuxcool ~]# lsof +d /root COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME dbus-daem 2158 root cwd DIR 253,0 4096 33575041 /root gdm-wayla 2161 root cwd DIR 253,0 4096 33575041 /root gnome-ses 2164 root cwd DIR 253,0 4096 33575041 /root gnome-she 2223 root cwd DIR 253,0 4096 33575041 /root gvfsd 2240 root cwd DIR 253,0 4096 33575041 /root ………………省略部分输出信息……………… 递归显示指定目录中全部被调用的文件信息: [root@linuxcool ~]# lsof +D /root COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME pulseaudi 2147 root mem REG 253,0 696 781661 /root/.config/pulse/d035ea0c9f884c418d9855119085f3f0-card-database.tdb pulseaudi 2147 root mem REG 253,0 12288 781660 /root/.config/pulse/d035ea0c9f884c418d9855119085f3f0-stream-volumes.tdb pulseaudi 2147 root mem REG 253,0 8192 781659 /root/.config/pulse/d035ea0c9f884c418d9855119085f3f0-device-volumes.tdb ………………省略部分输出信息………………
、
netstat
netstat命令来自于英文词组”network statistics“的缩写,其功能是用于显示各种网络相关信息,例如网络连接状态、路由表信息、接口状态、NAT、多播成员等等。
参考实例
显示系统网络状态中的所有连接信息:
[root@linuxcool ~]# netstat -a Active Internet connections (servers and established) 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:https 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:ms-wbt-server 0.0.0.0:* LISTEN
显示系统网络状态中的UDP连接信息:
[root@linuxcool ~]# netstat -nu Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 172.19.226.238:68 172.19.239.253:67 ESTABLISHED
显示系统网络状态中的UDP连接端口号使用信息:
[root@linuxcool ~]# netstat -apu Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name udp 0 0 linuxcool:bootpc _gateway:bootps ESTABLISHED 1024/NetworkManager udp 0 0 localhost:323 0.0.0.0:* 875/chronyd udp6 0 0 localhost:323 [::]:* 875/chronyd
显示网卡当前状态信息:
[root@linuxcool~]# netstat -i Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 31945 0 0 0 39499 0 0 0 BMRU lo 65536 0 0 0 0 0 0 0 0 LRU
显示网络路由表状态信息:
[root@linuxcool ~]# netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface default _gateway 0.0.0.0 UG 0 0 0 eth0 172.19.224.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0
找到某个服务所对应的连接信息:
[root@linuxcool ~]# netstat -ap | grep ssh unix 2 [ ] STREAM CONNECTED 89121805 203890/sshd: root [ unix 3 [ ] STREAM CONNECTED 27396 1754/sshd unix 3 [ ] STREAM CONNECTED 89120965 203890/sshd: root [ unix 2 [ ] STREAM CONNECTED 89116510 203903/sshd: root@p unix 2 [ ] STREAM CONNECTED 89121803 203890/sshd: root [ unix 2 [ ] STREAM CONNECTED 29959 1754/sshd unix 2 [ ] DGRAM 89111175 203890/sshd: root [ unix 3 [ ] STREAM CONNECTED 89120964 203903/sshd: root@p