首页 > 代码库 > 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学习第四章