[关闭]
@Great-Chinese 2016-11-21T13:44:12.000000Z 字数 5684 阅读 942

Linux平台日常运维管理

Linux平台日常运维管理


1.1 查看系统负载命令

  1. w
  2. uptime
  3. top
  4. cat /proc/cpuinfo 查看cpu的格式

查看系统负载我们看到的三个数字分别表示什么含义
1分钟内,平均有多少个任务在使用cpu
5分钟内,平均有多少个任务在使用cpu
15分钟内,平均有多少个任务在使用cpu

1.2 vmstat 查看虚拟内存(Virtual Memory)使用状况的工具

  1. vmstat
  2. vmstat 1 5 1秒钟内显示5

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 1093576 48368 646472 0 0 1 5 12 12 0 0 100 0 0

r:表示有多少个任务在运行的状态
b:有多少个任务被阻塞
swpd:有多少数值量放在交互分区里,单位是KB
free:内存还剩多少
si:进入内存的
so:从内在里读出来的
bi:读磁盘
bo:写磁盘
in:终断
cs:切断

1.3 top动态查看负载

  1. top 每隔3秒显示一次
  2. top -bn1 一次性显示所有的进程
  3. top后按一下M可以按内存使用大小来排序
  4. top之后需要按q才可以退出来

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 52585 root 20 0 98.0m 4200 3204 S 0.0 0.2 0:00.11 sshd 1073 postfix 20 0 81520 3424 2548 S 0.0 0.2 0:00.16 qmgr

PID:进程的ID
PR: 进程的优先级,二项相加是20 pr是从0到39 40个值
NI: 进程的优先级, ni是 负20到19
VIRT: 虚拟内存
RES:物理内存
SHR:共享内存
S:进程的状态

1.4 sar 命令--- System Activity Reporter,系统活动情况报告

  1. yum install -y sysstat 安装sar包,安装后,要运行10分钟后,才能使用sar工具
  2. sar -n DEV 查看网卡的流量
  3. sar -q 查看内存负载
  4. sar -b 查看磁盘状态
  5. sar -n DEV -f /var/log/sa/sa08 查看历史文件的网卡流量
  6. sar -n DEV 1 10 1秒显示1次,一共显示10次)

03:22:17 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
03:22:18 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
03:22:18 AM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
IFACE: 网络接口名称
rxpck/s: 每秒钟接收的数据包 1byt = 8bit
txpck/s: 每秒钟发送的数据包
rxkB/s: 每秒收的数据量(kB为单位)
txkB/s: 每秒发的数据量(kB为单位)
rxbyt/s:每秒钟接收的字节数
txbyt/s:每秒钟发送的字节数
rxcmp/s:每秒钟接收的压缩数据包
txcmp/s:每秒钟发送的压缩数据包
rxmcst/s:每秒钟接收的多播数据包
tps: 每秒向磁盘设备请求数据的次数,包括读、写请求,为rtps与wtps的和。出于效率考虑,每一次IO下发后并不是立即处理请求,而是将请求合并(merge),这里tps指请求合并后的请求计数。
rtps: 每秒向磁盘设备的读请求次数
wtps: 每秒向磁盘设备的写请求次数
bread: 每秒从磁盘读的bytes数量
bwrtn: 每秒向磁盘写的bytes数量

1.5 free 查看内存 (buffer缓冲 cached缓存)

free列第一行的数字为0表示内存已经分配完,但并不表示内存就耗尽了。 因为可能还有分配的cached并没有用完。物理内存、buffer和cached三个没有再可分配的容量那就意味着所有的物理内存都耗尽了,真正的内存用完了导致频繁使用swap 程序运行速度会超级慢

  1. free 查看内存 单位KB
  2. free -m
  3. free -g

1.6 ps 查看系统中所有的进程

  1. ps aux
  2. ps -elf

ps aux里的STAT的状态:
S 休眠 s 主进程或父进程
< 高优先级 N 低优先级
+ 前台运行 R 正在运行
L 内存锁定的进程 l 多线程进程
Z 僵尸进程 X 死掉的进程
T 暂停的进程 D 不能中断的进程

1.7 netstat 查看端口 (查看网络连接状态)

  1. netstat -lnp 查看当前系统所有的监听窗口
  2. netstat -an 查看当前系统所有网络的连接状态
  3. netstat -an |grep 122.112.69.86:80 |grep -ic estab

1.8 抓包工具tcpdump和tshark

  1. yum install tcpdump
  2. tcpdump -nn -c 100 指定抓包100
  3. tcpdump -nn -i eth1 抓指定的网卡
  4. tcpdump -nn port 22
  5. tcpdump -nn -s0 tcp and port 80 -w -c 10 >2.cap
  1. yum install -y wireshark
  2. tshark -nn
  3. tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri"

1.9 iptables-1 防火墙工具

  1. iptables -t filter -I INPUT -p tcp --dport 80 -s 12.12.12.12 -j REJECT 增加表规则 (在上面增加,越往后增加的规则越先生效)
  2. iptables -t nat -nvL 查看nat表规则
  3. iptables -nvL 默认就是filter
  4. iptables -t filter -D INPUT -p tcp --dport 80 -s 223.73.57.212 -j REJECT 删除表规则
  5. iptables -t filter -A INPUT -p tcp --dport 80 -s 223.73.57.212 -j REJECT 增加表规则 (在下面增加,越往后增加的规则越慢生效)

2.0 iptables-2 防火墙工具

  1. iptables -Z 清零规则的计数次数
  2. iptables -F 一次性清除所有规则,针对filter
  3. service iptables restart 重启规则
  4. service iptables save 保存规则
  5. iptables-save > 1.ipt 备份防火墙规则(重定项到1个文件里)
  6. iptables-restart < 1.ipt 恢复规则

2.1 iptables-3 防火墙工具

2.1.1 iptables的表与链

(iptables具有Filter, NAT, Mangle, Raw四种内建表)

2.1.1.1: Filter表

Filter表示iptables的默认表,因此如果你没有自定义表,那么就默认使用filter表,它具有以下三种内建链:
INPUT链 – 处理来自外部的数据。
OUTPUT链 – 处理向外发送的数据。
FORWARD链 – 将数据转发到本机的其他网卡设备上。

2.1.1.2 NAT表

NAT表有三种内建链:
PREROUTING链 -处理刚到达本机并在路由转发前的数据包。
它会转换数据包中的目标IP地址destination ip address,通常用于DNAT(destination NAT)。
POSTROUTING链 –处理即将离开本机的数据包。
它会转换数据包中的源IP地址(source ipaddress),通常用于SNAT(source NAT)。
OUTPUT链 – 处理本机产生的数据包。

2.1.1.3 Mangle表

Mangle表用于指定如何处理数据包。它能改变TCP头中的QoS位。Mangle表具有5个内建链:
PREROUTING , OUTPUT , FORWARD , INPUT , POSTROUTING

2.1.1.4 Raw表

Raw表用于处理异常,它具有2个内建链:
PREROUTING chain
OUTPUT chain

filter表主要用来限制进入本机的包和出去的包
nat表主要用于网络地址转换,比如家用的小路由器就是用nat表实现的
mangle表主要用来给包打标记

2.2 iptables-4 防火墙工具

  1. #!/bin/bash
  2. ipt="/sbin/iptables"
  3. # 清空filter防火墙
  4. $ipt -F
  5. # 允许所有访问者
  6. $ipt -P INPUT ACCEPT
  7. # 允许所有output
  8. $ipt -P OUTPUT ACCEPT
  9. # 允许所有forward
  10. $ipt -P FORWARD ACCEPT
  11. $ipt -A INPUT -s 182.254.156.223 -p tcp --dport 22 -j ACCEPT
  12. $ipt -A INPUT -s 192.168.0.0/24 -p tcp --dport 22 -j ACCEPT
  13. $ipt -A INPUT -p tcp --dport 80 -j ACCEPT
  14. $ipt -A INPUT -p tcp --dport 21 -j ACCEPT
  15. # $ipt -A INPUT -p tcp --dport 22 -j DROP

2.3 cron任务计划

  1. crontab -l 查看任务计划
  2. crontab -u mysql -l
  3. crontab -e 编辑任务计划
  4. cat /var/spool/cron/root root用户的目录所在地
  5. # 新建shell
  6. vim
  7. cat /tmp/melody.txt
  8. #
  9. crontab -e
  10. */1 * * * * /bin/bash /root/melody.sh
  11. crontab -l
  12. cat /tmp/melody.txt
  13. cat melody.sh
  14. cat /tmp/melody.txt
  15. crontab -l

2.3.1 制定任务计划的步骤

a、创建shell脚本 /root/melody.sh

  1. #!/bin/bash
  2. uptime >> /tmp/melody.txt
  3. vmstat >> /tmp/melody.txt
  4. echo `date` >> /tmp/melody.txt

b、编辑定时任务文件

  1. # crontab -e 打开当前用户的任务计划文件
  2. crontab -e
  3. # 在文件中加入,定时任务每分钟执行一次,加入完成后 按ESC,输入 :wq 保存
  4. */1 * * * * /bin/bash /root/melody.sh
  5. # 列举实例
  6. 每小时执行一次 0 */1 * * *
  7. 每天3点钟执行一次 0 3 * * *
  8. 每一天执行一次 0 0 */1 * *
  9. 每年执行一次 0 0 0 */1 *

2.4 系统服务

A: 重启系统才能生效

  1. ntsysv 在图形化下调整服务列表
  2. yum install -y ntsysv 安装ntsysv

B: 不用重启系统也能生效

  1. chkconfig --list 查看调整服务列表
  2. chkconfig sshd off 关闭sshd
  3. chkconfig --list sshd 查看sshd
  4. chkconfig --level 3 sshd on 指定3级别
  5. chkconfig --level 345 sshd on 指定多个级别
  6. chkconfig --add 123 增加服务列表
  7. chkconfig --del 123 删除服务列表

2.5 linux日志

  1. ls /var/log/messages 查看日志
  2. cat /etc/logrotate.conf 查看日志切割的配置文件
  3. ls /etc/logrotate.d/
  4. cat /etc/logrotate.d/syslog
  5. kill pid 杀死进程
  6. kill -9 pid 强制杀死进程
  7. kill -HUP 重新加载配置文件,来生成一个新的日志
  8. killall httpd
  9. tail /var/log/messages
  10. ls /var/log/wtmp 查看用户的登陆历史
  11. last 查看用户登陆历史的记录
  12. ls /var/log/btmp 查看无效的登陆历史
  13. lastb 查看无效登陆历史的记录
  14. ls /var/log/maillog 查看的输出的日志
  15. ls /var/log/secure 验证相关的记录
  16. ls /var/log/dmesg 系统启动过程中硬件相关的日志
  17. dmesg 查看硬件相关的错误信息

2.6 xargs和exec详解

  1. #查看10天以前的日志
  2. find /var/log/ -type f -mtime +10
  3. #复制10天以前的日志
  4. find /var/log/ -type f -mtime +10 -exec cp {} {}.bak \;
  5. find /var/log/ -type f -mtime +10 |xargs -i cp {} {}.1
  6. #删除i开头的文件
  7. ls i* |xargs rm
  8. #复制当前目录下所有txt
  9. ls *.txt |xargs -i cp {} {}.bak

2.7 screen命令

a、安装screen命令

  1. yum install -y screen

b、将top命令放入screen后台

  1. # 输入 screen
  2. screen
  3. # 可以给当前的screen指定名称,在screen -ls中查看
  4. screen -S 名称
  5. # 进入一个新的界面,输入要放入后台的命令
  6. top
  7. # 按Ctrl+a+d退出这个screen,完成将top放入后台
  8. # 查看所有放入screen的命令
  9. screen -ls
  10. # 进入screen中的命令,其中1800是是 screen -ls 列出来的id
  11. screen -r 1800
  12. # 结束某个后台进程,进入screen输入exit

2.8 curl命令 访问网站,网业,外网,下载文件

  1. curl www.aminglinux.com 访问业面
  2. curl -I www.aminglinux.com 只查看状态码,省略源代码
  3. 200 301 302 404 502 503 常见的状态码
  4. #代理qq网站
  5. ping www.qq.com
  6. curl -x120.198.201.156:80 www.qq.com -I
  7. #代理百度网站
  8. ping www.baidu.com
  9. curl -x183.232.231.173:80 www.baidu.com -I
  10. #查看访问过程
  11. curl -Iv www.qq.com
  12. #访问需要输入用户名和密码的站点
  13. curl -u username:password http://www.qq.com
  14. #下载文件或图片
  15. curl -O http://www.baidu.com/img/bdlogo.png --- 大O默认显示bdlogo
  16. curl -o baidu.png http://www.baidu.com/img/bdlogo.png --小o可以重命名
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注