系统日常运维管理查看系统负载命令: w
重点是 load average后面的三个数字。 1,表示1分钟之内的系统的平均负载。
2,表示5分钟之内的系统的平均负载。
3,表示15分钟之内的系统平均负载。
这个数字的意思是:单位时间内CPU活动进程数。 数字越大表示负载越高。 (不超过CPU的核心数)
查看cpu的核数:cat /proc/cpuinfo
vmstat 命令。
procs 显示进程信息。 r表示运行和等待CPU时间片的进程数。长时间大于cpu个数说明cpu不够用。
b表示等待资源的进程数。例如:I/O。内存等。长时间大于1需要关注。
free 表示空闲内存信息。物理内存。
buff 表示将写入内存的缓冲大小。
cache 表示从磁盘中读取的 缓存大小。
si 由交换分区写入内存
so 由内存写入交换分区
bi 读磁盘的数据量
bo 写磁盘的数据量。
us 表示用户花费CPU的时间比。
sy 表示系统花费cpu的时间比。
id 表示CPU空闲的时间比。
wa 表示I/O等待所占用的时间比。
需要关注的是 r b wa 列。 bi bo 数值高说明磁盘读写压力大。si so 数值高 且不短变化 说明内存不够用。
vmstat 用法: vmstat 1 表示每隔一秒 刷新一次。
vmstat 2 表示每隔二秒 刷新一次。
vmstat 1 10 表示每隔1秒刷新一次。 显示10次。
top 命令
每隔3秒刷新一次。q键退出。
RES表示进程所占用内存的大小。 %MEM为使用内存的百分比。
默认是按CPU使用率排列。按M 可以按内存排列 。 p按cpu使用率排列。
top -bn1 表示非动态一次性打印系统的使用情况。
sar 命令。监控网卡状态。
查看网卡流量 sar -n DEV
sar -n DEV -f /var/log/sa/sa01 用-f 后面带文件名 可以查看某一天的流量
sar -b 查看磁盘io的状态
sar -p 查看cpu使用状态。
free 查看内存信息。
用法: free -m -g -k
ps 查看进程。
ps aux 查看系统进程。
STAT: 表示进程的状态。
D表示不能中断。通常为IO
R表示在运行
S已经中断的进程
s表示主进程
+表示前台运行的进程。
netstat 端口查看。
netstat -lnp 打印当前启动的端口
netstat -an 打印当前的网络连接状况 显示数字端口
tcpdump 系统自带抓包工具
tcpdump -nn -i eth0 tcp and host 192.168.0.1 and port 80
-nn 数字形式显示。
-i 指定网卡
tcp 协议类型 udp
host 来源IP
prot 端口
tcpdump -nn -vs0 tcp and port not 22 -c 100 -w 1.cap
-c 抓包的次数
-w 保存为文件
wireshark 在linux下也可以安装 yum install -y wireshark
抓包分析http请求: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"
固定用法。
iptables 命令
有三个表。
filter:一般的过滤功能...工作中常用
nat:用于nat功能(端口映射,地址映射,中转IP等)
mangle:用于对特定数据包的修改
iptables -t filter -I INPUT -p tcp --dport 80 -s 12.12.12.12 -j REJECT
-t 指定哪个表 常用 filter
-I 插入一条规则 在最上面增加 -A 增加一条规则 在下面增加 -D 删除规则。 优先级从上到下
-p 制定类型 tcp
--dport 指定端口 80
-s 来源IP地址
-j 指定动作。 REJECT 拒绝 DROP 直接扔掉 ACCEPT 允许
iptables -nvL 查看规则。 默认是查看filter表
iptables -Z清除iptables -nvL 看到的前两列数据
iptables -F 清空规则
service iptables seve 保存规则。重启生效
linux系统的任务计划
* * * * * 分时日月周 。周日表示0或者7
0 */4 *** 每隔4个小时
0 1,3,6 *** 1 3 6小时
0 9-18 * * * 9-18点
crontab -e 直接进去制定计划。相当于vim
crontab -l 列出任务计划
crontab -r 删除计划
系统服务管理。
ntsysv 命令。相当于setup工具里面的。
yum install -y ntsysv
chkconfig 服务工具。
chkconfig --list 列出所有的服务及每个级别的开启状态。
chkconfig --level 345 crond /on 表示crond 345级别 开、关
--level 指定级别。
chkconfig --add 增加某个服务
chkconfig --del 删除某个服务
系统预设的服务都在/etc/init.d 目录里面
rsync 远程备份工具
yum install -y rsync
rsync -av 1.txt /tmp/ 把1.txt 同步到/tmp/目录下
rsync -av 1.txt zy@1.1.1.1:/tmp/ 把1.txt 同步到1.1.1.1 服务器的/tmp/目录下
rsync -av zy@1.1.1. 1:/tmp/ /tmp/ 把远程的拉到本地
选项
-a 归档模式
-v 打印一些信息
-l 保留软链接
--delete 会删除新目标比原目标新的文件
--exclude 可以排除不需要传输的文件。
用密钥的方式访问。不建立密钥密码 实现数据备份。
命令。ssh-keygen 能建立私钥和公钥
私钥位置:/root/.ssh/id_rsa 公钥:/root/.ssh/id_rsa.pub
rsync 后台备份。
A机器新建rsync配置文件。vim /etc/rsync.conf
#port=873 #定义了端口
log file=/var/log/rsync.log #日志文件
pid file=/var/run/rsyncd.pid # 指定PID文件。涉及服务启动 停止动作。
[ beifen ] 自定义模块名字。 两边要有空格
path=/zyos/ #数据存放路径
use chroot=false # 默认是true 有软链接 false 指的是除了path目录 是否还可以访问其他目录。
max connections=4 #最大连接数 。默认是0 无限制
read only=no 读写权限
list=true 用户查询服务器模块时 是否显示。true显示 false 不显示
uid=root 传输文件时 以哪个身份传输。 文件所有者 所属组
gid=root
auth users=test 指定传输的用户。
secrets file=/etc/rsyncd.passwd 账户 密码存放位置。
host allow=192.168.137.3 被允许连接的主机。可以是iPhone段。多个IP 逗号隔开。
secrets file 权限一定是要600.否则不能同步。
rsync --deamon --config=/etc/rsyncd.conf 启动服务。 开机启动 把命令写入 /etc/rc.local
rsync -avL --delete test@192.168.137.2::beifen /tmp/ --password-file=/root/pass 服务器拉到本地。
rsync -avL --delete /root/test/ test@192.168.137.2::beifen/test --password-file=/root/pass 本地推到服务器 beifen模块下
模块同步 是双冒号 ::
--password-file 指定密码文件的路径。 客户端使用。 这样免去输密码步骤,可用在脚本。