@Great-Chinese
2016-11-21T13:44:12.000000Z
字数 5684
阅读 942
Linux平台日常运维管理
w
uptime
top
cat /proc/cpuinfo 查看cpu的格式
查看系统负载我们看到的三个数字分别表示什么含义
1分钟内,平均有多少个任务在使用cpu
5分钟内,平均有多少个任务在使用cpu
15分钟内,平均有多少个任务在使用cpu
vmstat
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:切断
top 每隔3秒显示一次
top -bn1 一次性显示所有的进程
top后按一下M可以按内存使用大小来排序
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:进程的状态
yum install -y sysstat 安装sar包,安装后,要运行10分钟后,才能使用sar工具
sar -n DEV 查看网卡的流量
sar -q 查看内存负载
sar -b 查看磁盘状态
sar -n DEV -f /var/log/sa/sa08 查看历史文件的网卡流量
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数量
free列第一行的数字为0表示内存已经分配完,但并不表示内存就耗尽了。 因为可能还有分配的cached并没有用完。物理内存、buffer和cached三个没有再可分配的容量那就意味着所有的物理内存都耗尽了,真正的内存用完了导致频繁使用swap 程序运行速度会超级慢
free 查看内存 单位KB
free -m
free -g
ps aux
ps -elf
ps aux里的STAT的状态:
S 休眠 s 主进程或父进程
< 高优先级 N 低优先级
+ 前台运行 R 正在运行
L 内存锁定的进程 l 多线程进程
Z 僵尸进程 X 死掉的进程
T 暂停的进程 D 不能中断的进程
netstat -lnp 查看当前系统所有的监听窗口
netstat -an 查看当前系统所有网络的连接状态
netstat -an |grep 122.112.69.86:80 |grep -ic estab
yum install tcpdump
tcpdump -nn -c 100 指定抓包100个
tcpdump -nn -i eth1 抓指定的网卡
tcpdump -nn port 22
tcpdump -nn -s0 tcp and port 80 -w -c 10 >2.cap
yum install -y wireshark
tshark -nn
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 -t filter -I INPUT -p tcp --dport 80 -s 12.12.12.12 -j REJECT 增加表规则 (在上面增加,越往后增加的规则越先生效)
iptables -t nat -nvL 查看nat表规则
iptables -nvL 默认就是filter表
iptables -t filter -D INPUT -p tcp --dport 80 -s 223.73.57.212 -j REJECT 删除表规则
iptables -t filter -A INPUT -p tcp --dport 80 -s 223.73.57.212 -j REJECT 增加表规则 (在下面增加,越往后增加的规则越慢生效)
iptables -Z 清零规则的计数次数
iptables -F 一次性清除所有规则,针对filter表
service iptables restart 重启规则
service iptables save 保存规则
iptables-save > 1.ipt 备份防火墙规则(重定项到1个文件里)
iptables-restart < 1.ipt 恢复规则
(iptables具有Filter, NAT, Mangle, Raw四种内建表)
Filter表示iptables的默认表,因此如果你没有自定义表,那么就默认使用filter表,它具有以下三种内建链:
INPUT链 – 处理来自外部的数据。
OUTPUT链 – 处理向外发送的数据。
FORWARD链 – 将数据转发到本机的其他网卡设备上。
NAT表有三种内建链:
PREROUTING链 -处理刚到达本机并在路由转发前的数据包。
它会转换数据包中的目标IP地址destination ip address,通常用于DNAT(destination NAT)。
POSTROUTING链 –处理即将离开本机的数据包。
它会转换数据包中的源IP地址(source ipaddress),通常用于SNAT(source NAT)。
OUTPUT链 – 处理本机产生的数据包。
Mangle表用于指定如何处理数据包。它能改变TCP头中的QoS位。Mangle表具有5个内建链:
PREROUTING , OUTPUT , FORWARD , INPUT , POSTROUTING
Raw表用于处理异常,它具有2个内建链:
PREROUTING chain
OUTPUT chain
filter表主要用来限制进入本机的包和出去的包
nat表主要用于网络地址转换,比如家用的小路由器就是用nat表实现的
mangle表主要用来给包打标记
#!/bin/bash
ipt="/sbin/iptables"
# 清空filter防火墙
$ipt -F
# 允许所有访问者
$ipt -P INPUT ACCEPT
# 允许所有output
$ipt -P OUTPUT ACCEPT
# 允许所有forward
$ipt -P FORWARD ACCEPT
$ipt -A INPUT -s 182.254.156.223 -p tcp --dport 22 -j ACCEPT
$ipt -A INPUT -s 192.168.0.0/24 -p tcp --dport 22 -j ACCEPT
$ipt -A INPUT -p tcp --dport 80 -j ACCEPT
$ipt -A INPUT -p tcp --dport 21 -j ACCEPT
# $ipt -A INPUT -p tcp --dport 22 -j DROP
crontab -l 查看任务计划
crontab -u mysql -l
crontab -e 编辑任务计划
cat /var/spool/cron/root root用户的目录所在地
# 新建shell
vim
cat /tmp/melody.txt
#
crontab -e
*/1 * * * * /bin/bash /root/melody.sh
crontab -l
cat /tmp/melody.txt
cat melody.sh
cat /tmp/melody.txt
crontab -l
#!/bin/bash
uptime >> /tmp/melody.txt
vmstat >> /tmp/melody.txt
echo `date` >> /tmp/melody.txt
# crontab -e 打开当前用户的任务计划文件
crontab -e
# 在文件中加入,定时任务每分钟执行一次,加入完成后 按ESC,输入 :wq 保存
*/1 * * * * /bin/bash /root/melody.sh
# 列举实例
每小时执行一次 0 */1 * * *
每天3点钟执行一次 0 3 * * *
每一天执行一次 0 0 */1 * *
每年执行一次 0 0 0 */1 *
A: 重启系统才能生效
ntsysv 在图形化下调整服务列表
yum install -y ntsysv 安装ntsysv包
B: 不用重启系统也能生效
chkconfig --list 查看调整服务列表
chkconfig sshd off 关闭sshd
chkconfig --list sshd 查看sshd
chkconfig --level 3 sshd on 指定3级别
chkconfig --level 345 sshd on 指定多个级别
chkconfig --add 123 增加服务列表
chkconfig --del 123 删除服务列表
ls /var/log/messages 查看日志
cat /etc/logrotate.conf 查看日志切割的配置文件
ls /etc/logrotate.d/
cat /etc/logrotate.d/syslog
kill pid 杀死进程
kill -9 pid 强制杀死进程
kill -HUP 重新加载配置文件,来生成一个新的日志
killall httpd
tail /var/log/messages
ls /var/log/wtmp 查看用户的登陆历史
last 查看用户登陆历史的记录
ls /var/log/btmp 查看无效的登陆历史
lastb 查看无效登陆历史的记录
ls /var/log/maillog 查看的输出的日志
ls /var/log/secure 验证相关的记录
ls /var/log/dmesg 系统启动过程中硬件相关的日志
dmesg 查看硬件相关的错误信息
#查看10天以前的日志
find /var/log/ -type f -mtime +10
#复制10天以前的日志
find /var/log/ -type f -mtime +10 -exec cp {} {}.bak \;
find /var/log/ -type f -mtime +10 |xargs -i cp {} {}.1
#删除i开头的文件
ls i* |xargs rm
#复制当前目录下所有txt
ls *.txt |xargs -i cp {} {}.bak
yum install -y screen
# 输入 screen
screen
# 可以给当前的screen指定名称,在screen -ls中查看
screen -S 名称
# 进入一个新的界面,输入要放入后台的命令
top
# 按Ctrl+a+d退出这个screen,完成将top放入后台
# 查看所有放入screen的命令
screen -ls
# 进入screen中的命令,其中1800是是 screen -ls 列出来的id
screen -r 1800
# 结束某个后台进程,进入screen输入exit
curl www.aminglinux.com 访问业面
curl -I www.aminglinux.com 只查看状态码,省略源代码
200 301 302 404 502 503 常见的状态码
#代理qq网站
ping www.qq.com
curl -x120.198.201.156:80 www.qq.com -I
#代理百度网站
ping www.baidu.com
curl -x183.232.231.173:80 www.baidu.com -I
#查看访问过程
curl -Iv www.qq.com
#访问需要输入用户名和密码的站点
curl -u username:password http://www.qq.com
#下载文件或图片
curl -O http://www.baidu.com/img/bdlogo.png --- 大O默认显示bdlogo
curl -o baidu.png http://www.baidu.com/img/bdlogo.png --小o可以重命名