美文网首页
Linux简单学习记录(九)

Linux简单学习记录(九)

作者: Hugh1029 | 来源:发表于2018-08-14 00:46 被阅读0次

Linux的系统管理技巧

一、监控系统状态
1.使用w命令查看当前系统负载

直接输入w回车就可以
显示三行信息:
第1行:时间、系统运行时间、登录用户数、平均负载
第2行与第3行:当前登录的用户名、登录地址、登录时间等
最需要关注的是第一行的平均负载三个数字,分别为1分钟、5分钟、15分钟的平均负载值,值越大,压力越大。值不超过cpu的数量就没有关系

image.png
查看服务器又几个cpu:
cat /proc/cpuinfo
grep -c 'processor' /proc/cpuinfo 查看几个cpu
物理cpu则是physical id关键字
2.vmstat 查看系统状态

w只能查看当当前系统总体状态,而vmstat可以查看具体是系统哪里有压力。

image.png

如图所示,vmstat查看的信息包括6个部分,分别是:procs、memory、swap、io、system、cpu。
重点关注的是r、b、si、so、bi、bo。
简单介绍:
procs:显示进程相关信息
r(run):表示运行或等待CPU时间片的进程数。(一个CPU某一时间只能一个进程使用,等待的进程也是运行的。如果r长期大于CPU数,说明CPU不够用了)
b(block):等待资源的进程数,资源指的是磁盘或者内存。比如处理完数据需要把他写入到磁盘中,如果写入缓慢,要一段时间才能写入,这段时间就是b状态,长期大于1,则需要关注。

memory:显示内存相关的信息
swpd:表示切换到交换分区的内存数量,单位为KB
free:表示当前空闲的内存数量,单位为KB
buff:即将写入磁盘的缓冲大小,单位为KB
cache: 从磁盘中读取的缓存大小,单位为KB

swap:显示内存的交换情况
si:表示由交换区写入内存的数据量,单位为KB
so: 内存写入交换区的数据量,KB

io:显示磁盘的使用情况
bi:表示从块设备读取数据的量(读磁盘),KB
bo:表示从块设备写入数据的量(写磁盘),KB

system:采集时间内发生的中断次数。
in:某一时间内观测到美妙设备的中断次数
cs:每秒产生的上下文切换次数

cpu:显示CPU的使用状态
us:用户所花费CPU时间百分比
sy:系统花费CPU所占时间比
id:空闲时间所占CPU百分比
wa:I/O等待所占用时间百分比
st:被偷走的百分比,一般为0

常关注的是r,b,wa,io的bi、bo如果数值高,则是磁盘压力比较大,si、so比较大并且经常变化,则是内存不够使用。
查看系统状态时候,经常这样使用命令:
vmstart 1 5 #每一秒输出一次,输出五次
vmstart 1 #每一秒输出一次,一直到ctrl+c才停止

3.top命令显示进程所占资源

top命令用于动态监控所占的系统资源,每隔3秒变动一次。特点是将占用系统资源最高的放到最前面。
top下,shift+m安装内存大小排序,1列出所有cpu的使用状态,q退出。
top -bn1,表示非动态的打印系统资源情况,可以在shell脚本使用。

4. sar命令监控系统状态

安装:yum install -y sysstat
sar命令几乎可以监控所有资源的状态,比如负载均衡、网卡流量、磁盘状态、内存使用等。
4.1 查看网卡流量 sar -n DEV

image.png
该命令会将当天的网卡信息打印出来,每隔十分钟记录一次。
IFACE:设备名称
rxpck/s :每秒进入收取的包的数量;
txpcl/s :每秒发送出去包的数量
rxKB/S :每秒收取的包的流量,单位是KB
txKB/s :每秒发送出去的包的流量,单位是KB
如果rxpck/s大于4000,rxKB/s大于5000000,可能是被攻击了

sar -n DEV 1 5实时查看情况
sar -n DEV -f /var/log/sa/sa23查看某一天,这是查看23号

4.2 查看历史负载 sar -q

image.png
5. nload命令查看网卡流量

安装:yum install -y epel-release;yum install -y nload
直接运行nload命令即可。

image.png
6.free命令查看内存状态

直接输入free来查看,另外free -m以MB为单位,free -g以GB为单位

image.png
如图,
total:表示总的内存大小
used:表示使用实际内存大小
free:剩余物理内存大小
shared:共享内存大小,不关注
buff/cache:分配给buffer和cache的总共大小。buffer是指的要写入时候用的内存是buffer,读取时候用的是cache。
available:可用内存大小,包含了free。
7.用ps命令查看进程

ps aux
ps -ef
ps -elf
经常配合grep来使用,比如ps -ef|grep java

image.png
PID:进程的id
STAT:进程状态,常用值:
D:不能中断的进程(通常为IO)
R:正在运行
S(sleep):已经中断,大部分是怎个状态
T:已经停止或暂停
Z:僵尸进程,杀不死的
<:高优先级进程
N:低优先级
L:被做了内存分页
s:主进程
l:多线程进程
+:在前台运行的进程
8. 用netstat查看网络情况

netstat -lnp:系统启动了哪些端口
netstat -an:打印网络连接情况
netstat -tnl:查看端口
如:netstat -lnp|grep 80

9. 抓包工具

9.1 tcpdump工具
安装:yum install -y tcpdump
使用:tcpdump -nn -i ens33
第3列第4列显示“IP+端口号”,不加-nn,在显示“主机名+服务名”形式
在shell中抓包,tcpdump -nn -i ens33 -c 100,-c的作用是抓够一定量的包,够了就自动退出。
tcpdump -nn -i ens33 port 22 #只抓22端口的
tcpdump -nn -i ens33 tcp and not port 22 #只抓tcp,但不抓22端口的

9.2 wireshark工具
安装:yum install -y wireshark

10. Linux网络相关

10.1 ifconfig 查看网卡IP
重启网卡: ifdown ens33;ifup ens33

10.2 DNS
DNS的地址配置在/etc/resolv.conf中

11 Linux系统的任务计划

11.1 crontab命令
参考:https://www.cnblogs.com/kerrycode/p/3238346.html。个人感觉写的很好
-u:指定某个用户
-e:指定任务计划
-l:列出计划任务
-r:删除计划任务

12 Linux系统服务管理

12.1 chkconfig 服务管理工具
centos6上的服务管理工具是chkconfig,所有的预设服务可以查看/etc/init.d/目录得到。
chkconfig --list :列出所有服务以及每个级别的开启状态

13.systemd服务管理
systemctl list-units  --all  --type=service  #列出所有的服务
systemctl  enable  crond.service  #让某个服务开机启动(service可省略)
systemctl  disable crond.service  #不让开机启动
systemctl  status  crond.service  #查看服务状态
systemctl start crond.service
systemctl stop crond.service
systemctl restart crond.service
systemctl is-enabled crond  #查看某个服务是否开机启动
14. Linux下的数据备份工具rsync

安装:yum install -y rsync

15. 常用的MySQL基本操作的命令
mysql -u用户名  -p密码
mysql -u用户名  -p密码  -h192.168.1.1  -P3306  连接远程数据库
show databse;  查询当前库
use databasename;  切换数据库名
show tables;  查看数据表
desc tablename;  查看数据表的名字
show create table  tablename\G;  查看表名
select user();  查看当前用户
select database();  查看当前所使用的数据库
create databse dbname  set charset-utf8;  创建数据库
create table  name(

);  创建数据表
select version();  查看当前版本
show status();  查看mysql当前状态
show variables;  查看各参数
或:show variables like '%time%';
set global 参数名=参数值;  设置参数
show processlist;  查看Mysql的服务器队列
grant all on *.* to user1 identified by '123456';  创建一个用户并授权
truncate table 库名.表名;  清空数据表
drop table 库名.表名;
drop database db;  清除库名
mysqldump -uroot -p'123456' mysql > /tmp/mysql.sql    备份
mysql -uroot -p'123456' mysql < /tmp/mysql.sql  恢复
16 Linux防火墙

16.1 SELinux
Linux系统特有的安全机制。一般要把它关闭,临时关闭:setenforce 0
永久关闭:将/etc/selinux/config的SELINUX改为disabled
查看状态:getenforce

16.2 netfilter
5和6的防火墙叫netfilter,centos7叫firewalld,但是命令是向下兼容的。

相关文章

网友评论

      本文标题:Linux简单学习记录(九)

      本文链接:https://www.haomeiwen.com/subject/rehpbftx.html