Linux常用命令

source /etc/profile: 使配置文件生效
ps -aux | grep java:查看进程
jstat -gcutil 30996 3000 :每3秒显示一次进程号为30996的Java进程GC情况

问题排查

倒数300行并进入实时监听文件写入模式

1
tail -300f shopbase.log

查看端口被那个进程占用

netstat

netstat命令用来打印Linux中网络系统的状态信息

1
2
# 查看哪个进程占用了16808端口,即正在监听16808断口
netstat -tunlp | grep 16808

-t--tcp:显示TCP传输协议的连线状况
-u--udp:显示UDP传输协议的连线状况
-p--programs:显示正在使用Socket程序识别码程序名称
-n--numeric:直接使用ip地址,而不通过域名服务器
-M--masquerade:显示伪装的网络连线
-l--listening:显示监控中的服务器的Socket
-a--all:显示所有连线中的Socket

lsof

lsof命令需要访问核心内存和各种文件,所以需要root用户执行,用于查看进程开打的文件打开文件的进程进程打开的TCPUDP端口

Linux环境中任何事物都以文件的形式存在,通过文件不仅可访问常规数据,还可访问网络连接硬件,如传输控制协议TCP和用户数据报协议UDP套接字等,系统在后台为应用程序分配一个文件描述符,无论该文件本质如何,该文件描述符应用程序基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看该列表对系统监测以及排错将是很有帮助的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 基本语法
lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
# 查看16808端口被那个进程占用
lsof -i:16808
# 获取IPv6流量或lsof -i6
lsof -i 6
# 获取IPv4流量或lsof -i4
lsof -i 4
# 仅仅显示TCP链接信息或lsof -i TCP
lsof -iTCP
# 仅仅显示到指定主机172.16.12.5的连接
lsof -i@172.16.12.5
# 显示基于主机与端口的连接
lsof -i@172.16.12.5:22
# 找出监听端口,正等候连接的端口
lsof -i -sTCP:LISTEN
lsof -i | grep -i LISTEN
# 显示任何已经连接的连接
lsof -i -sTCP:ESTABLISHED
lsof -i | grep -i ESTABLISHED
# 显示指定用户eleven打开的进程
lsof -u eleven
# 显示除开eleven用户打开的进程
lsof -u ^eleven
# 正在使用的文件和网络连接
lsof -c syslog-ng
# 查看指定进程ID已打开的内容
lsof -p 10075
# 干掉使用16808端口的进程
kill -9 $(lsof -t -i:16808)
  • -a:列出打开文件存在的进程
  • -c<进程名>:列出指定进程所打开的文件
  • -g:列出GID号进程详情
  • -d<文件号>:列出占用该文件号的进程
  • +d<目录>:列出目录下被打开的文件
  • +D<目录>:递归列出目录下被打开的文件
  • -n<目录>:列出使用NFS的文件
  • -i<条件>:列出符合条件的进程,如46协议:端口@ip
  • -p<进程号>:列出指定进程号所打开的文件
  • -u:列出UID号进程详情
  • -t:只显示去重后的PID
文件类型
  • DIR:表示目录。
  • CHR:表示字符类型。
  • BLK:块设备类型。
  • UNIX: UNIX域套接字。
  • FIFO:先进先出 (FIFO) 队列。
  • IPv4:网际协议 (IP) 套接字。
  • DEVICE:指定磁盘的名称
  • SIZE:文件的大小
  • NODE:索引节点(文件在磁盘上的标识)
  • NAME:打开文件的确切名称

查看进程占用的句柄数

Too many open files问题主要指进程企图打开一个文件,或者叫句柄,但是现在进程打开的句柄已达到上限,无法打开新句柄了。

1
lsof -n | awk '{print $2}' | sort | uniq -c | sort -nr | more

SecureCRT

无操作自动登出

echo $TMOUT 查看无操作自动登出时间,将该时间稍微调小一点设置到SecureCRT Session中

CRT不超时设置

文件上传下载
  • rz:将文件从本地上传到服务器
  • sz [file1] [file2] [dir/*]:本地从服务器上下载文件