linux日常运维管理
1、查看系统负载命令
w命令:主要查看cpu负载
load average:一分钟内负载 五分钟内负载 十五分钟内负载
负载跟cpu核心数有关,查看cpu核心数:
# cat /proc/cpuinfo | grep 'processor' | wc -l
uptime也可以显示cpu负载
2、vmstat命令
# vmstat 1 5
1代表每一秒显示一次,5代表显示五次
r列:表示一秒内运行的进程
b列:被阻塞的进程
swpd列:有多少数据被交换,单位是kb
free列:剩余内存
buff列:缓冲
cache列:缓存
si列:swap in进入到内存的数据
so列:swap out从内存中读出来的
bi列:读磁盘,普通服务器硬盘持续超过1000说明服务器压力读取频繁
bo列:写磁盘
in列:终端的次数
cs列:上下文切换
us列:用户态的进程占用cpu的百分比
sy列:内核态的进程占用cpu的百分比、
id列:空闲
wa列:等待
st列:被偷走的
3、top命令
PID:在/proc目录下
USER:以哪个用户运行的进程
FR:值范围0到39,进程优先级,值越小优先级越高
NI:值范围-20到19,进程优先级
VIRT:进程使用虚拟内存总量=SWAP+RES
RES:进程使用的、未被换出的物理内存
SHR:贡献内存
S:进程状态D=不可中断的睡眠状态R=运行S=睡眠T=跟踪/停止Z=僵尸进程
%CPU:cpu使用率
%MEM:内存使用率
TIME+:使用cpu的时间
COMMAND:进程名称
4、sar命令(查看网卡流量)
# sar -n DEV 1 10
每秒中显示一次,显示十次,网卡流量统计
sa的历史记录记录在/var/log/sa该目录下
使用# sar -n DEV -f sa27查看27号的历史记录
# sar -q查看负载
# sar -b查看磁盘
5、free命令
# free -m按兆字节显示内存使用情况,默认是k
total:内存总量
used:内存使用情况
free:内存剩余情况
buffers:在内存中将要写入磁盘的数据
cached:将磁盘中的数据放入内存
6、ps命令
# ps aux:BSD风格的使用方法
USER:以哪个用户启动的进程
PID:进程id
%CPU:cpu使用百分比
%MEM:内存使用百分比
VSZ:虚拟内存大小
RSS:真正内存的大小
TTY:终端
STAT:进程状态S:休眠;s主进程;<优先级高;N优先级低;+前台运行的进程;R正在运行的进程;L被锁的进程;l多线程进程;Z僵尸进程;X已死的进程;T暂停的进程
START:启动时间
TIME:占用cpu的时间
COMMAND:进程的名字
7、netstat命令
# netstat -lnp查看服务器监听了那些端口
# netstat -an | grep 92.168.83.50:3402 | grep -ic estab查看连接数
8、tcpdump和tshark工具
# tcpdump -nn -i eth0 -c 5
抓取eth0网卡上的五个数据包
# tcpdump -nn tcp and port 22 -c 5
# tcpdump -nn -s0 tcp and port 22 -c 10 -w test.cap
tshark工具需要安装wireshark二进制包包
# 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"
9、selinux
查看selinux状态:# getenforce
临时关闭selinux:# setenforce 0
永久关闭:# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
如果没有getenforce和setenforce命令安装libselinux-utils包
10、netfilter --> iptables防火墙
table表-->chain链
# iptables -t filter -nvL //查看filter表的规则
# iptables -t nat -nvL //查看nat表的规则
# iptables -t mangle -nvL //查看mangle表的规则
# iptables -t filter -A INPUT -p tcp --dport 80 -s 192.168.1.135 -j REJECT
-t:指定要操作的表名
-A:追加一条规则
-I:插入一条规则
-D:删除一条规则
-P:设置默认规则
-p:指定协议
--dport:指定端口号
-s:指定来源ip
-j:指定处理方式;REJECT:拒绝;DROP:丢弃;ACCEPT:接受
# iptables -F //清空防火墙规则
# service iptables save //将写好的防火墙规则永久保存
# iptables-save > /tmp/iptbales备份防火墙规则
# iptables-restore < iptables //恢复防火墙规则
INPUT DROP;192.168.1.1/24 22 ACCEPT;all 80 ACCEPT ;all 21 ACCEPT;
#/bin/bash
iptables="/sbin/iptables"
$iptables -F
$iptables -P INPUT DROP
$iptables -P OUTPUT ACCEPT
$iptables -P FORWARD ACCEPT
$iptables -A INPUT -s 192.168.1.1/24 -p tcp --dport 22 -j ACCEPT
$iptables -A INPUT -p tcp --dport 80 -j ACCEPT
$iptables -A INPUT -p tcp --dport 21 -j ACCEPT
$iptables -A INPUT -p tcp --dport 22 -j DROP其余网段不允许连接22端口
11、cron计划任务
# crontab -l
-l:查看任务计划
-e:编辑任务计划
-r:删除任务计划
第一个段*:分钟
第二个段*:小时
第三个段*:日
第四个段*:月
第五个段*:周
12、系统服务
# ntsysv命令属于ntsysv包,没有命令可以安装,通过类似图形界面的方式控制开机启动的服务
# chkconfig --list也可以通过这个命令查看哪些服务是开机自启动的
# chkconfig vsftpd on/off可以使某些服务在开机时打开或者关闭
# chkconfig --level 23456 vsftpd on指定某些服务在启动级别时的打开或者关闭状态
# chkconifg --add 123将123的服务添加到开机启动项中,但123必须在/etc/init.d目录下,并且是可执行的文件
13、linux日志
核心的系统日志存放在/var/log/目录下
日志格式及保存方式存放在/etc/logrotate.conf和/etc/logrotate.d/目录下
查看用户登录历史的日志/var/log/wtmp该日志不能直接查看,可以用last查看
查看无效登录的历史/var/log/btmp该日志不能直接查看,可以用lastb查看
/var/log/maillog与邮件有关的日志
/var/log/secure与验证有关的日志,例如ftp登录的情况
/var/log/dmesg系统启动过程中一些硬件相关的日志
14、xargs和exec的使用
# find . -name passwd -exec cp {} {}.bak \;
# find . -name passwd | xargs -i cp {} {}.bak
两条命令执行的结果相同
# ls *.bak | xargs rm -rf也可以这样删除文件哦,很爽。。。
15、screen命令
nohup sleep 100 &丢入后台退出终端不被中断,并记录日志
screen命令输入screen包
使用方法:
# screen
输入命令比如top
然后按ctrl+a+d退出
# screen -ls查看后台程序
# screen -r id查看后台程序
按ctrl+d或者esc退出screen
16、curl命令
# curl www.baidu.com 查看百度的文本页面
# curl -I www.baidu.com查看百度的状态信息等
# curl -x61.135.169.125:80 -I www.baidu.com指定代理服务器
# curl -x61.135.169.125:80 -Iv www.baidu.com查看浏览百度是的访问过程
# curl -u fanjinbao:fanjinbao www.fanjinbao.com访问用户名密码的页面
# curl -O http://www.baidu.com/img/bdlogo.png直接下载bdlogo.png的图片
# curl -o fanjinbao.png http://www.baidu.com/img/bdlogo.png下载并重命名为fanjinbao.png