目录:
一. linux查看系统基本参数常用命令
1、查看磁盘
df -hl : 查看磁盘使用情况
df -h /home :查看指定目录磁盘使用情况
du -sh ./*|grep G : 查看当前目录下个文件大于1G的文件夹
find / -type f -size +10M -a -size -100M -print0 | xargs -0 du -h | sort -nr : 查找文件大于10M小于100M,倒序排列
2、查看CPU
killcpu.sh 编写一个脚本耗尽CPU
top :查看cpu 内存等使用情况
sar -u 1 5 : 每1秒采集一次CPU使用率,共采集5次
cat /proc/cpuinfo : 查看CPU基本信息
cat /proc/cpuinfo| grep “physical id”| sort| uniq| wc -l :查看CPU个数
3、查看内存
kill_memory.sh 编写一个脚本消耗内存
free -m :查询内存详情
cat /proc/meminfo :查看内存详细信息
vmstat -s : 显示内存使用详细信息
vmstat
4、查看负载
那么什么是系统平均负载呢?
uptime : 查询系统当前负载信息
cat /proc/loadavg :查看负载信息
5、进程基础命令
ps -ef|grep python : 查看python相关进程
ps -aux | grep python :查看python相关进程
top : 显示当前正在运行的进程
pgrep -ln sshd : 通过程序的名字来查询进程的工具,一般是用来判断程序是否正在运行
pstree -apnh|grep sshd :显示进程间的关系
pidof sshd :显示sshd进程的所有进程号
kill 和 pkill 杀死进程
netstat -anptu|grep 22 | 查看22端口运行的服务
二. linux文件操作常用指令
1、系统命令
runlevel # 查看当前的运行级别
systemctl status firewalld # 开启网络服务功能
stop # 关闭
restart # 重启
reload # 重载
reboot # 重启
halt # 关机
poweroff # 关机
2、查看文件常用指令
cat # 在命令提示符下查看文件内容
more # 在命令提示符中分页查看文件内容
less # 命令行中查看文件可以上下翻页反复浏览
head # 命令行中查看文件头几行
tail # 命令行中查看文件尾几行
wc # 统计文件的单词数 行数等信息
3、目录管理常用指令
pwd # 查看你当前所在的目录
cd # 切换目录
ls # 查看显示目录的内容
du # 统计目录和文件空间的占用情况
mkdir # 创建新目录
rmdir # 删除空目录
touch # 创建文件
rm # 删除文件
ln # 创建硬链接
ln -s # 创建软链接
cp # 复制文件或目录
mv # 移动文件或目录
which # 查看linux命令所在的目录
4、账号与权限
‘’‘1.组管理’’’
groupadd group_name # 创建一个新用户组
groupdel group_name # 删除一个用户组
groupmod -n new_group_name old_group_name # 重命名一个用户组
‘’‘2.用户管理’’’ useradd zhangsan # 创建账户张三
passwd zhangsan # 给用户设置密码 userdel -r
zhangsan # 删除张三及他的宿主目录
‘’‘3.用户组管理’’’ gpasswd -a zhangsan root #
将张三用户加入root组 groups zhangsan #
确认zhangsan用户在root组 gpasswd -d lisi root #
将李zhangsan户从root组中删除
‘’‘4.权限管理’’’ chown -R zhangsan /aaa #
将文件夹/aaa的多有者修改为zhangsan chown root:root /aaa
将/aaa文件夹的属主和属组都改成root chmod 777 /aaa # 给文件夹文件/aaa设置权限为777
三. linux网络故障排查
1、链路是否连通
目的:检查网卡与网络是否物理连通,网线是否插好且连接可用,很多时候不能立刻到机房确定物理连接
ethtool eth0 确定eth0网卡网线是否插好:
# 检查网卡与网络是否物理连通,网线是否插好且连接可用,很多时候不能立刻到机房确定物理连接
[root@linux-node1 django-docker]# ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 1000Mb/s # 当前网卡的速度,这是一个千兆网卡;
Duplex: Full # 当前网络支持全双工
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
MDI-X: off (auto)
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes # 前网卡和网络的物理连接正常
2、网卡和ip是否正常
ifconfig eth0 查看网卡信息:
[root@linux-node1 django-docker]# ifconfig eth0 # 查看网卡配置信息是否正确
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.56.11 netmask 255.255.255.0 broadcast 192.168.56.255
inet6 fe80::20c:29ff:fe45:f27a prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:45:f2:7a txqueuelen 1000 (Ethernet)
RX packets 696302 bytes 931683697 (888.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 191690 bytes 21641720 (20.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@linux-node1 django-docker]# systemctl restart network # 重启网卡,如果报错可能是网卡配置有问题
vim /etc/sysconfig/network-scripts/ifcfg-eth0 查看网卡配置是否正确:
[root@linux-node1 django-docker]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 # 查看网卡配置是否正确
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=no
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
NAME=eth0
# UUID=3dacb9a3-62a4-41cc-b9ab-44a20ee9157e
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.56.11
NETMASK=255.255.255.0
GATEWAY=192.168.56.2
3、是否正确配置了网关
- 1) 如果网卡已经正常启动,需要确认目标网络接口是否正确配置网关
- 2)同时主机和网关之间的连接没有问题,通过route命令和ping命令结合完成这一阶段的排查
route -n 查看路由:
[root@linux-node1 django-docker]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.56.2 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.22.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-d744c4d28e2f
192.168.56.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
4、测试DNS是否可用
注:通常很多网络问题是DNS故障或配置不当造成的,nslookup和dig命令能够用来排查DNS问题
nslookup www.baidu.com:
[root@linux-node1 django-docker]# nslookup www.baidu.com # yum install bind-utils
[root@linux-node1 django-docker]# cat /etc/resolv.conf # 查看dns配置是否正常
nameserver 192.168.56.2
5、远程主机是否开放端口
telnet 192.168.56.11 80
6、使用nmap工具检测端口开放情况
nmap -p 22 192.168.56.11 测试机器端口是否开放:
[root@linux-node1 django-docker]# nmap -p 22 192.168.56.11
Starting Nmap 6.40 ( http://nmap.org ) at 2020-02-29 07:52 EST
Nmap scan report for linux-node1 (192.168.56.11)
Host is up (0.000089s latency).
PORT STATE SERVICE
22/tcp open ssh
# open 代表开发了22端口,并且没有被防火墙拦截
# filtered 代表虽然开发端口,但是被防火墙拦截
# closed 代表本机没有监听这个端口
7、网络慢排查: iftop
iftop -n 查看哪些网络连接占用的带宽较多:
[root@linux-node1 django-docker]# iftop -n
interface: eth0
IP address is: 192.168.56.11
MAC address is: 00:0c:29:45:f2:7a
391Kb 781Kb 977Kb
└───────────────────────┴───────────────────────┴─────────────────────────
源IP 传输方向 目的IP
192.168.56.11 => 192.168.56.1 752b 816b 1.10Kb
<= 184b 184b 771b
255.255.255.255 => 192.168.56.1 0b 0b 0b
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
TX(发送): cum: 2.44MB peak: 2.81Kb rates: 752b 816b 1.10Kb
RX(介绍): 2.43MB 3.17Kb 184b 405b 881b
TOTAL: 4.87MB 5.98Kb 936b 1.19Kb 1.96Kb
# 最上方的一行刻度是整个网络的带宽比例,
# 下面第1列是源IP,第2列是目标IP,箭头表示了二者之间是否在传输数据,以及传输的方向。
# 最后三列分别是2s、10s、40s时两个主机之间的数据传输速率。
# 最下方的TX、RX分别代表发送、接收数据的统计,TOTAL则是数据传输总量