首页 > 代码库 > Linux学习第四章
Linux学习第四章
5-1-1查看系统负载命令
命令 w或命令uptime
load average :a(1分钟内系统的平均负载 ),b(5分钟内),c(15分钟内)
a:一分钟内有多少个进程使用cpu
cat /proc/cpuinfo 显示的processor的值就是cpu核数
a>核数 负载偏高
5-1-2vmstat详解
命令vmstat 1 5 1秒显示一次显示5次
r 表示一秒钟内平均多少进程使用cpu
b被阻塞的任务
swpd 交换内存 不变化 内存稳定
free 剩余内存
buff 剩余buff
cache 剩余cache
si :swap in 进入内存 不变化 内存稳定
so:swap out 从内存读出来 不变化 内存稳定
bi 进入内存 读磁盘 长期大于1000有问题
bo 从内存读出来 写磁盘
in 1秒内中断次数
cs 1秒内上下文切换
us 用户态进程占用cpu的百分比
sy内核态进程占用cpu百分比
id空闲的进程占用cpu百分比
wa等待的进程占用cpu百分比
st 被偷走的 百分比 一般都为0
重点关注 r b si so bi bo us
5-1-3top动态查看负载
命令 top
Cpu(s):us sy
PR、NI值越小 优先级越高 VIRT虚拟内存使用量 RES物理内存使用量 SHR共享内存 %Cpu %men(内存)TIME 使用cpu时间
q(退出)
top -bn1 静态显示
top -d1 -c 一秒刷新一次
5-1-4sar命令
sar -n DEV 1 10 一秒显示一次 显示10次 查看网卡流量
rxbyt/s 进网口流量 txbyt/s 出网口流量 byt 字节
1byt=8bit
带宽=byt x8
计算使用带宽=查看的txbyt的峰值 x 8
安装sar
yum install -y sysstat
ls /var/log/sa 目录下的sa文件都是生成的历史网卡流量
sar -n -DEV -f /var/log/sa/sa20 查看sa20当天的网卡流量
sar -q 查看历史负载
sar -b 查看磁盘
sar 查看cpu
5-1-5free查看内存
free 以k为单位
free -m 以兆为单位 -g 以g为单位
buffers 缓冲 速度比磁盘快 比cpu慢
cached 缓存空间大小
5-1-6ps查看进程
ps aus
ps -elf
vsz 虚拟内存使用量 RSS 物理内存 TTY 从哪里启动 ?是后台的 COMMAND 进程名字
STAT 表示进程状态 S休眠 s主进程 <优先级比较高 N优先级比较低 +前台运行的进程 R 运行 L被锁 l多线程进程 Z僵尸进程 X死掉的进程 T 暂停的进程 D 不能中断的进程
ps aux |grep php 查看php进程有没有启动
5-1-7netstat查看网络端口
netstat -lnp 查看监听窗口
netstat -an 查看状态
|grep 过滤
|grep -ic 过滤并统计数量
5-1-8抓包工具tcpdump和tshark
安装tcpdump
yum install tcpdump
抓包 tcpdump -nn -c 100 抓100个包
tcpdump -nn -i eth1 抓eth1网卡, 不加-i默认抓eth0
tcpdump -nn port 22 只抓22端口的通信
加上tcp、ip等等也行 两者用and 连接
-w 1.cap 把抓到的包的内容放入文件1.cap中
tcpdump 查看的ip是一个流向 -w是包的内容
tcpdump -nn -s0 抓到完整的包
安装tshark
yum install -y wireshark
tshark 功能复杂 命令复杂
5-1-9selinux介绍
防火墙(有兴趣可以加深研究)
cat /etc/selinux/config 配置文件
selinux关了对linux安全影响不大,开着可能会出现各种报错
enforcing 完全打开
permissive 打开但不阻拦不报错
disabled 关闭
getenforce 查看状态
若selinux为enforcing状态 可使用setenforce 0关闭
setenforce 1开启
5-2-0iptables详解-1
netfilter 防火墙 工具 iptables 表 filter、nat、mangle 链chain
iptables -t filter -nvL 查看filter表下的链、规则
-I 写入规则 例如 iptables -t filter -I INPUT -p tcp --dport 80 -s 114.245.31.22 -j reject 进入INPUT链禁止80端口来源ip为114…地址的访问,拒绝这个包
-D删除规则
-A与-I类似 -I优先生效
iptables 不加-t默认进入filter表
三种处理方法- j reject、accept、drop
5-2-1 iptables详解-2
iptables -Z 把表内的规则的数据清零 pkts和bytes
iptables -F 清空表内规则
service iptables save 保存规则 重启后也不会丢失
iptables-save >1.ipt指定保存在1.ipt文件中
iptables-restore < 1.ipt 恢复
5-2-2iptable 详解-3
表 filter nat mangle
nat 网络地址转换 类似路由器
mangle 给数据包打标记 然后根据标记操作包
5-2-3iptables详解-4
chain主要用INPUT
-I 插入,规则最上,优先级最高
-A增加 ,规则最下,优先级最低
-D删除
policy 链的总开关
-P 修改policy 例如 -P INPUT ACCEPT
5-2-4cron计划任务
crontab -l 查看任务计划
crontab -u user -l 查看user用户的任务计划
crontab -e 进入编写计划
时间、脚步、命令
* * * * *:min hour day mon week
*/5 * * * * 每天每隔5分钟执行一次
30 1,12,18 * * * 每天1点30分、12点30分、18点30分执行
crontab文件位置 /var/spool/cron/用户名
5-2-5系统服务
yum install -y ntsysv
ntsysv调整服务程序启动
空格选择是否
tab键切换到确定或取消栏
chkconfig --list 查看所有程序状态 在后面加程序名,只看单个程序状态
chkconfig 程序名 on 全部级别开启
chkconfig 程序名 off 全部级别关闭
chkconfig --level 345 用户名 on 开启3、4、5级别
自己写启动脚步加入系统的服务列表
服务列表 /etc/init.d/
chkconfig --add 程序名 添加服务程序 --del 删除
5-2-6linux日志
核心日志 /var/log/messages
cat/etc/logrotate.conf 进入日志切割的配置文件
weekly 每周切割
rotate 4 保留4个
create 生成新的
dateext 以日期命名
compress 没打开的 如果打开了会对日志进行压缩
ls /etc/logrotate.d/
cat /etc/logrotate.d/syslog 进入日志切割的配置文件
postrotate 切割完成后进行的操作
kill -9 pid 强制性杀死进程pid
ls /var/log/wtmp 查看用户登录历史的日志
last 进行查看
/log/ btmp 无效的登录历史日志
lastb 进行查看
/log/maillog 关于邮件日志
/log/secure 关于验证相关
/log/dmesg 关于硬件
dmesg也是一个命令 查看硬件信息
5-2-7xarg和exec详解
有类似功能
管道
find /var/log/ -type f -mtime +10 -exec cp {}{}.bak\; 把log目录下超过10天的文件找出 并拷贝成bak格式 原文件保留
-exec 改为|xargs -i cp{} {}.bak结果一样
|xarg -i和-exec 承接前一指令的结果执行下一指令
5-2-8screen命令
nohup 表示命令不会中断 生成nohup.out文件 收集进程的信息体制 让进程一直在后台运行
nohup +指令
screen 与nohup相似
yum install -y screen
screen 回车 创建了虚拟终端
top 回车 执行top指令
ctrl a+d 暂时退出,后台运行
screen -ls 查看到在后台跑的screen和screen id号
ctrl d 或者esc 断开screen进程
screen -r +id号 进入指定的screen进程
可以连续创建screen
screen -S A 回车 创建的screen名为A
5-2-9curl命令
访问外部 访问网站 下载文件 类似wget指令
curl -I www.aminglinux.com 省略源代码访问页面
HTTP/1.1 200 ok 200是状态码 常见状态码200,301,302,502等等
curl -x 代理
curl -O +地址 下载 -o A 改名为A
curl -Iv +网页 详细给出访问步骤与信息
curl -u username:password +网址 访问需要密码的网页
5-3-0rsync格式
同步数据 拷贝数据 支持网络通信远程拷贝
远程ip A 本地ip B
rsync -av A:/tmp/1.txt /tmp/把远程1.txt拷贝到本机tmp
rsync -av /tmp/1.txt A:/tmp/把本地的1.txt拷贝到远程地址A的tmp目录下
:通过sshd协议传输
::或:// 通过daemon 启动服务监听一个端口 让客户端去连本地
rsync -av A::模块名/tmp/1.txt /tmp/ 用法用能与:一致
5-3-1rsync常用选项
5-3-2rsync选项详解
rsync -av 111/ /tmp/322/ 把本地111目录下所有文件同步到322目录 记得加/
-avL 同步源文件
命令diff 对比文件差异
-avL --delete 保证两个地址同步 一模一样
-avLu 修改后不同步
-avLu --exclude=“a” 除了a文件不同步
-avLuP 显示很多同步信息
-avLuPz 压缩再拷贝 速度快 带宽小
5-3-3rsync同步之ssh隧道方式
本机到远程
ssh默认走22端口
-avPz -e “ssh -p 10022” 指定走10022端口同步
telnet +ip +端口号 查看端口是否开启 按ctrl+】 再打quit 退出
5-3-4rsync后台服务方式-1
后台服务方式
写配置文件 放在etc下 启动后监听一个端口 客户端和服务端就能通信
vim /etc/rsyncd.conf
port=8730(默认873)
log file=/var/log/rsync.log
pid file=/var/run/rsync.pid
[aming] 模块名
path=/tmp/rsync
use chroot=yes
max connections=4
read only=yes
list=yse
uid=root
gid=root
auth users=aming
secrets file=/etc/rs.passwd
host allow=192.168.11.190 允许哪些客户端连接
还可以继续增加模块…
退出后要写密码
vim /etc/rs.passwd
aming:123aaa 左边用户名右边密码
chmod 400 /etc/rs.passwd 更改密码的权限不可写只可读
rsync --daemon 启动
ps aux |grep rsync
netstart -lnp 查看port
cat /var/log/rsync.log 查看日志
验证 数据拷贝
rsync -avzP aming@192.168.11.16::aming/1.txt ./ 将16的模块下1.txt同步到当前目录,默认端口873,不通就指定端口 -aczP --port 8730
输入密码 123aaa
完成远程拷贝
5-3-5后台服务方式-2
rsync -avzP --port 8730 /tmp/ 111 / aming@192.168.11.16::aming/ 本地111目录传输到远程16地址的aming模块下的目录 端口8730
输入密码123aaa
提示read only 就修改配置文件里的read only
命令ln -s a b 把a建立一个软链接到b 源文件是a
-avzPL 只传输源文件
把配置文件use chroot改为no,就不限制软连接的传输
list 是否是允许查看模块名
可以设置不需要密码就连通网络传输
Linux学习第四章