Linux下常用命令

基础操作

#创建用户名xiaoming  将密码设置为123456
useradd -ou 0 xiaoming -g 0
echo '123456' | passwd --stdin xiaoming

#内存资源过大手动释放
sync
echo 3 >/proc/sys/vm/drop_caches


# 文件操作
# 查看文件夹个数
ls -l|grep "^d"| wc -l

# 查看当前文件数量
ls -l|grep "^-"| wc -l

文件设置权限防止误删

# 添加权限防止误删
chattr +i authorized_keys


# 去掉权限防止误删
chattr -i authorized_keys

https://man.linuxde.net/chattr

磁盘容量

df -lh
Filesystem            容量  已用 可用 已用% 挂载点
/dev/hda8              11G  6.0G  4.4G  58% /
/dev/shm              236M     0  236M   0% /dev/shm
/dev/sda1              56G   22G   35G  39% /mnt/sda1

#当前分区情况查看
fdisk -l

#显示SCSI硬盘的每个分区情况
fdisk -lu 

#查看当前文件目录
ls -lht

#大文件查看
sudo du -h --max-depth=1|grep G
#查看opt文件有多少大于1G的
find /opt -type f -size +1G

内存查看

# 查看剩余可用内存情况(M)
free -m
# 查看内存消耗前5的进程
ps auxw | head -1;ps auxw|sort -rn -k4|head -5 
# 内存释放

sync

echo 3 >/proc/sys/vm/drop_caches

redis操作

#redis集群连接
redis-cli -h 192.168.1.2 -p 7001 -c --raw
#单实例连接
redis-cli -h 192.168.1.2 -p 7001 -c --raw

#查询集群单实例所有keys为“helloWork”值的
./redis-cli -h 192.168.1.2  -p 7001 -c --scan --pattern "helloWork:*" | wc -l

#删除集群单实例所有keys为“helloWork”值的
redis-cli -h 192.168.1.2  -p 7001 -c --scan --pattern "helloWork:*" | xargs -n 1 redis-cli -h 192.168.1.2  -p 7001 del


# redis 批量删除(一次删除5000)
redis-cli -h 192.168.1.2  -p 8443 -a test --scan --pattern "guids*" | xargs -L  5000 redis-cli -h 192.168.1.2 -p 8443 -a test del

# 查询所有key
scan 0 MATCH * COUNT 2741099

# 所有key导出
echo "scan 0 MATCH * COUNT 2741099" | redis-cli -h 127.0.0.1 -p 8598 >1.txt

 

软连接

#软连接查看
ls -li
#软连接切换
ln -sfn newaddress linkname

#创建软连接
ln -s /data/kafka  /kafka

文件类操作

# 切割文件从第1行-174929行 源文件userInfo_13.txt 写入到userInfo_01.txt
sed -n '1,174929p' userInfo_13.txt > userInfo_01.txt


# error.2019-08-01.log 日志中重复的数字将写到 lance444.txt 文件中
awk 'a[$0]++' error.2019-08-01.log  >> lance444.txt
dstat 命令
 
 
--total-cpu-usage---- CPU使用率
usr:用户空间的程序所占百分比;
sys:系统空间程序所占百分比;
idel:空闲百分比;
wai:等待磁盘I/O所消耗的百分比;
hiq:硬中断次数;
siq:软中断次数;
 
 
--dsk/total-------- 磁盘统计
read:读总数
writ:写总数
 
 
--net/total--------- 网络统计
recv:网络收包总数
send:网络发包总数
 
 
---paging------- 内存分页统计
in: pagein(换入)
out:page out(换出)
 
 
--system-------- 系统信息
int:中断次数
csw:上下文切换
注:中断(int)和上下文切换(csw)。这项统计仅在有比较基线时才有意义。这一栏中较高的统计值通常表示大量的进程造成拥塞,需要对CPU进行关注。你的服务器一般情况下都会运行运行一些程序,所以这项总是显示一些数值。
 
 
### 常用参数组合
dstat --disk-util   :显示某一时间磁盘的忙碌状况
dstat --freespace   :显示当前磁盘空间使用率
dstat --proc-count  :显示正在运行的程序数量
dstat --top-bio     :指出块I/O最大的进程
dstat --top-cpu     :图形化显示CPU占用最大的进程
dstat --top-io      :显示正常I/O最大的进程
dstat --top-mem     :显示占用最多内存的进程
 
 
# 内存top统计
dstat -g -l -m -s --top-mem
# cpu top 统计
dstat -c -y -l --proc-count --top-cpu

存储类问题定位

# 磁盘出现瓶颈查看当前目录下各个文件夹大小
du -h --max-depth=1
 
 
# 查看某个文件夹下超过1G大小文件
sudo  find /workspace -type f -size +1G
 
 
# 快速生成指定大小文件
dd if=/dev/zero of=test bs=1M count=20000

网络类问题定位

TPC层面问题定位

# TPC 连接数查看
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

网络类问题监控

### 每个进程的带宽使用
nethogs
 
 
### 每个套接字连接的带宽使用
iftop

端口类问题定位

# 根据端口号反推进程号
lsof -i :8080
netstat -antup |grep 8080

句柄数类问题监控

### 统计各进程打开句柄数
lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr
 
 
### 统计各用户打开句柄数
lsof -n|awk '{print $3}'|sort|uniq -c|sort -nr
 
 
### 统计各命令打开句柄数
lsof -n|awk '{print $1}'|sort|uniq -c|sort -nr
 
 
### 单个进程打开的句柄数 grep 后面跟pid (不推荐使用)
lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more|grep 22229
 
 
问题分析:
1、打开文件未释放
2、打开管道未释放
3、建立网络连接未释放(pipe,eventpoll多出现在 NIO 网络编程未释放资源 —— selector.close())
4、创建进程调用命令未释放(Runtime.exe(...) 得到的 Process, InputStream, OutputStream 未关闭,这也会导致 pipe,eventpoll 未释放)
5、mina库使用NIO时未使用connector.dispose();
6、netty3库使用NIO时未使用bootstrap.shutdown() 或bootstrap.releaseExternalResources();
netty4使用NIO时未使用 eventLoopGroup.shutdownGracefully();

网络类测试

### 服务端启动
iperf3 -s
 
 
### 客户端启动
iperf3 -c 192.168.131.254 -i1 -t 1200

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值