linux 系统日常管理

一、监控系统的状态

1.w查看当前系统的负载

 15:03:38 up  2:48,  1 user,  load average: 0.38, 0.65, 0.61
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
sunh     :0       :0               12:27   ?xdm?  31:23   0.61s /usr/bin/startdde

第一行的信息:时间、系统运行时间、登陆用户数、平均负载。

第二行以后的信息:当前登陆的用户名及其登陆地址。

load average的后面三个参数:1分钟内、5分钟内、15分钟内系统的平均负载。

查看cpu信息:

cat /proc/cpuinfo
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 58
model name	: Intel(R) Core(TM) i3-3110M CPU @ 2.40GHz
stepping	: 9
microcode	: 0x15
cpu MHz		: 1200.000
cache size	: 3072 KB
physical id	: 0
siblings	: 4
core id		: 0
cpu cores	: 2
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx f16c lahf_lm arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms
bogomips	: 4788.68
clflush size	: 64
cache_alignment	: 64
address sizes	: 36 bits physical, 48 bits virtual
power management:

查看有几个cpu

➜  ~  grep -c 'processor' /proc/cpuinfo
4
2.vmstate监控系统的状态

➜  ~  vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0   1000 656244  57412 4363404    0    0   221   192  338  176  8  7 83  3  0
命令w是查看系统整体上的负载,但是无法查看具体的压力,vmstat命令打印的结果分为六个

1)procs 显示进程相关信息
r :表示运行和等待cpu时间片的进程数,如果长期大于服务器cpu的个数,则说明cpu不够用了;
b :表示等待资源的进程数,比如等待I/O, 内存等,这列的值如果长时间大于1,则需要关注一下了;
2)memory 内存相关信息
swpd :表示切换到交换分区中的内存数量 ;
free :当前空闲的内存数量;
buff :缓冲大小,(即将写入磁盘的);
cache :缓存大小,(从磁盘中读取的);
3)swap 内存交换情况
si :由交换区写入到内存的数据量;
so :由内存写入到交换区的数据量;
4)io 磁盘使用情况
bi :从块设备读取数据的量(读磁盘);
bo: 从块设备写入数据的量(写磁盘);
5)system 显示采集间隔内发生的中断次数
in :表示在某一时间间隔中观测到的每秒设备中断数;
cs :表示每秒产生的上下文切换次数;
6)CPU 显示cpu的使用状态
us :显示了用户下所花费 cpu 时间的百分比;
sy :显示系统花费cpu时间百分比;
id :表示cpu处于空闲状态的时间百分比;
wa :表示I/O等待所占用cpu时间百分比;
st :表示被偷走的cpu所占百分比(一般都为0,不用关注);

通常都是这么使用的 :vmstat 1 5 表示每隔1秒打印一次。打印5此结束

或者 vmstat 1 表示每隔1秒打印一次知道ctrl+c

3.top显示进程所占的系统资源

➜  ~  top

top - 15:29:35 up  3:14,  1 user,  load average: 0.19, 0.24, 0.34
Tasks: 232 total,   5 running, 226 sleeping,   0 stopped,   1 zombie
%Cpu(s):  9.3 us,  5.1 sy,  0.0 ni, 85.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   7721620 total,  6430512 used,  1291108 free,    59624 buffers
KiB Swap:  7925756 total,     1000 used,  7924756 free.  4369264 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                              
11432 sunh      20   0  884856 128788  22428 S   5.3  1.7   0:32.49 deepin-terminal                      
 2651 sunh      20   0  235776   7676   2912 S   3.7  0.1   2:34.44 mousearea                            
 2747 sunh      20   0 2275936 126948  18324 R   3.7  1.6   4:36.43 dde-dock                             
 2759 sunh      20   0 1170560 103816  44484 S   2.0  1.3   1:41.37 dde-dock-applet                      
 2465 sunh      20   0   42144   4124    800 R   1.3  0.1   0:59.56 dbus-daemon      
top命令用户动态监视进程所占的系统资源,每隔3秒执行一次

另外 常用的命令 top-bn1,他表示非动态打印系统资源的使用情况,可以用在shell脚本中

4.sar监控系统状态(这个命令是centos系统的命令,ubuntu 没有)

查看网卡流量 :sar -n DEV

[root@localhost ~]# sar -n DEV
Linux 2.6.32-504.3.3.el6.x86_64 (localhost.localdomain) 	02/03/2015 	_x86_64_	(1 CPU)

10:13:15 PM       LINUX RESTART

10:20:01 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
10:30:02 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:30:02 PM      eth0     27.00     13.06     37.38      0.71      0.00      0.00      0.00
10:40:01 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:40:01 PM      eth0      2.86      1.15      2.74      0.06      0.00      0.00      0.00
Average:           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:         eth0     14.91      7.09     20.03      0.39      0.00      0.00      0.00

rxpck/s表示每秒进入收取的包的数量

txpck/s表示每秒发送出去的包的数量

rskB/s表示每秒收取的数据量。

txkB/s表示每秒发送的数据量。

查看实时网卡流量:sar -n DEV 1 5

[root@localhost ~]# sar -n DEV 1 5
Linux 2.6.32-504.3.3.el6.x86_64 (localhost.localdomain) 	02/03/2015 	_x86_64_	(1 CPU)

04:19:30 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
04:19:31 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:19:31 PM      eth0      1.01      0.00      0.06      0.00      0.00      0.00      0.00

04:19:31 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
04:19:32 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:19:32 PM      eth0      1.98      0.99      0.12      0.37      0.00      0.00      0.00

04:19:32 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
04:19:33 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:19:33 PM      eth0      2.02      1.01      0.12      0.38      0.00      0.00      0.00

04:19:33 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
04:19:34 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:19:34 PM      eth0      2.00      1.00      0.12      0.38      0.00      0.00      0.00

04:19:34 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
04:19:35 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:19:35 PM      eth0      2.00      1.00      0.12      0.38      0.00      0.00      0.00

Average:        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
Average:           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:         eth0      1.80      0.80      0.11      0.30      0.00      0.00      0.00
查看某一天网卡流量历史:sar  -n DEV -f /var/log/sa/sa03  这边的好多文件,都代表这什么意思

[root@localhost ~]# sar  -n DEV -f /var/log/sa/sa03
Linux 2.6.32-504.3.3.el6.x86_64 (localhost.localdomain) 	02/03/2015 	_x86_64_	(1 CPU)

10:13:15 PM       LINUX RESTART

10:20:01 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
10:30:02 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:30:02 PM      eth0     27.00     13.06     37.38      0.71      0.00      0.00      0.00
10:40:01 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:40:01 PM      eth0      2.86      1.15      2.74      0.06      0.00      0.00      0.00
Average:           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:         eth0     14.91      7.09     20.03      0.39      0.00      0.00      0.00

04:12:44 PM       LINUX RESTART
查看历史负载:sar-q

[root@localhost ~]# sar -q
Linux 2.6.32-504.3.3.el6.x86_64 (localhost.localdomain) 	02/03/2015 	_x86_64_	(1 CPU)

10:13:15 PM       LINUX RESTART

10:20:01 PM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
10:30:02 PM         0       249      0.00      0.04      0.07
10:40:01 PM         0       249      0.00      0.00      0.01
Average:            0       249      0.00      0.02      0.04

04:12:44 PM       LINUX RESTART<strong>
</strong>

如果感兴趣可以man一下,sar的功能有很多,在这儿不一一列举

5.free查看内存使用情况

➜  ~  free
             total       used       free     shared    buffers     cached
Mem:       7721620    7576584     145036    1125092      61996    5424080
-/+ buffers/cache:    2090508    5631112
Swap:      7925756       1000    7924756

其实剩余大小并不是第一行的145036,而是第二行的5631112,因为系统初始化是,就已经分配出很大一部分内存给缓存,这部分缓存用来随时提供给程序使用,如果程序不占用,那么这部分内存就空闲

6.ps查看系统进程

➜  ~  ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  33908  2936 ?        Ss   12:14   0:01 /sbin/init
root         2  0.0  0.0      0     0 ?        S    12:14   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    12:14   0:00 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   12:14   0:00 [kworker/0:0H]
root         7  0.0  0.0      0     0 ?        S    12:14   0:08 [rcu_sched]
root         8  0.0  0.0      0     0 ?        S    12:14   0:03 [rcuos/0]
了解一下:
PID :进程的id,这个id很有用,在linux中内核管理进程就得靠pid来识别和管理某一个程,比如我想终止某一个进程,则用 ‘kill  进程的pid 有时并不能杀掉,则需要加一个-9选项了 kill  -9  进程pid
STAT :表示进程的状态,进程状态分为以下几种(不要求记住,但要了解)
D 不能中断的进程(通常为IO)
R 正在运行中的进程
S 已经中断的进程,通常情况下,系统中大部分进程都是这个状态
T 已经停止或者暂停的进程,如果我们正在运行一个命令,比如说 sleep 10 如果我们按一下ctrl -z 让他暂停,那么我们用ps查看就会显示T这个状态
W 这个好像是说,从内核2.6xx 以后,表示为没有足够的内存页分配
X 已经死掉的进程(这个好像从来不会出现)
Z 僵尸进程,杀不掉,打不死的垃圾进程,占系统一小点资源,不过没有关系。如果太多,就有问题了。一般不会出现。
< 高优先级进程
N 低优先级进程
L 在内存中被锁了内存分页
s 主进程
l 多线程进程
+ 代表在前台运行的进程

通常用法,加上管道符,查看指定进程:

➜  ~  ps aux |grep -c mingetty
1
➜  ~  ps aux |grep  mingetty 
sunh     15352  0.0  0.0  13424   936 pts/1    S+   16:05   0:00 grep mingetty

7.netstat 查看网络状况

➜  ~  netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 192.168.0.107:41507     203.208.48.153:https    CLOSE_WAIT 
tcp        0      0 192.168.0.107:39932     li882-189.memb:http-alt ESTABLISHED
tcp        0      0 192.168.0.107:33470     203.208.48.153:https    CLOSE_WAIT 
tcp        0      0 192.168.0.107:55571     203.208.48.153:http     CLOSE_WAIT 
tcp        0      0 192.168.0.107:56465     203.208.48.153:https    CLOSE_WAIT 
tcp        0      0 192.168.0.107:47044     203.208.40.148:http     CLOSE_WAIT 
udp        0      0 localhost:54738         localhost:54738         ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ]         DGRAM                    11528    /var/run/wpa_supplicant/wlan0
unix  2      [ ]         STREAM                   14056    @launcher.app.deepin1000

netstat命令用来打印网络连接状况,系统所开放的端口,路由表等信息,常用的是netstat -lnp (打印当前系统启动那些端口) netsatat -an 打印网络连接状况

二、抓包工具

1.tcpdump(ubuntu安装:sudo  apt-get install tcpdump, centos安装:yum install -y tcpdump)

运行这个命令要root权限

tcpdump -nn -i eth0 
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
16:52:52.972839 IP 172.16.174.130.22 > 172.16.174.1.52857: Flags [P.], seq 1865820739:1865820931, ack 1540583941, win 498, options [nop,nop,TS val 2119174 ecr 3631036], length 192
16:52:52.973003 IP 172.16.174.1.52857 > 172.16.174.130.22: Flags [.], ack 192, win 1444, options [nop,nop,TS val 3631038 ecr 2119174], length 0
16:52:52.973794 IP 172.16.174.130.22 > 172.16.174.1.52857: Flags [P.], seq 192:560, ack 1, win 498, options [nop,nop,TS val 2119175 ecr 3631038], length 368
16:52:52.973918 IP 172.16.174.1.52857 > 172.16.174.130.22: Flags [.], ack 560, win 1444, options [nop,nop,TS val 3631038 ecr 2119175], length 0
16:52:52.974863 IP 172.16.174.130.22 > 172.16.174.1.52857: Flags [P.], seq 560:912, ack 1, win 498, options [nop,nop,TS val 2119176 ecr 3631038], length 352
16:52:52.975095 IP 172.16.174.1.52857 > 172.16.174.130.22: Flags [.], ack 912, win 1444, options [nop,nop,TS val 3631039 ecr 2119176], length 0
16:52:52.975800 IP 172.16.174.130.22 > 172.16.174.1.52857: Flags [P.], seq 912:1264, ack 1, win 498, options [nop,nop,TS val 2119177 ecr 3631039], length 352
-nn 作用是让第三类和第四列显示成ip+端口号,如果不加则是主机名+服务名称

三、linux 网络相关

1. ifconfig 查看网卡IP

修改网卡信息,配置文件地址:/etc/sysconfig/network-scripts/

ifdown 即停掉网卡,ifup即启动网卡。

ifdown eth0; ifup eth0

2. 给一个网卡设定多个IP
就是把配置文件多复制几份就好了

3. 查看网卡连接状态

➜  ~  sudo mii-tool eth0
[sudo] password for sunh: 
eth0: no link
只要看到 “link ok” 就说明网卡为连接状态,如果显示 “no link” 说明网卡坏掉了或者没有连接网线
4.更改主机名

➜  ~  hostname suuuuu    
hostname: you must be root to change the host name
➜  ~  sudo hostname suuuuu
➜  ~  hostname
suuuuu
这个只是修改在内存中,如果要永久修改,那就要修改配置文件了

[root@localhost ~]# vim /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=suuu.localdomain
5. 设置DNS

DNS是用来解析域名用的,平时我们访问网站都是直接输入一个网址,而dns把这个网址解析到一个IP。通过修改配置文件/etc/hosts 

/etc/hosts 的格式很简单,每一行作为一条记录,分成两部分,第一部分是IP,第二部分是域名。关于hosts文件,有几点需要你注意:

1)一个IP后面可以跟多个域名,可以是几十个甚至上百个;

2)每行只能有一个IP,也就是说一个域名不能对应多个IP;

3)如果有多行中出现相同的域名(前面IP不一样),会按最前面出现的记录来解析。

四、linux防火墙

1.iptables

➜  ~  sudo iptables -nvL
sudo: unable to resolve host suuuuu
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination  
[root@localhost ~]# iptables -F; /etc/init.d/iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
-nvL 就是查看规则, -F 是把当前规则清除,但这个只是临时的,重启系统或者重启 iptalbes 服务后还会加载已经保存的规则,所以需要使用 /etc/init.d/iptables save 保存一下规则,通过上边的命令输出我们也可以看到,防火墙规则保存在了/etc/sysconfig/iptables 你可以查看一下这个文件。

iptables有三个表 filter,nat,mangle





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值