当前位置: 主页 > 运维经验 > 系统管理 >

linux运维:工作中强大的命令

时间:2013-03-31 11:54来源:转载 作者:网络 点击:
这些都是linux运维工作中能用到的命令,这都是范例,具体参数,需要根据自己情况来修改,当然很多命令都是可以现拿现中的了。
欢迎大家分享自己的文档,请点击查阅:分享方法,Linux系统运维
如果你喜欢这文章,可以点击文章结尾处百度分享,分享到你的各种社区收藏,或推荐给朋友……



查看登录系统次数最多的ip:
grep -o "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}" /var/log/secure |sort -n|uniq  -c |sort  -n 

提取ip地址:
ifconfig eth0 |awk NR==2 |awk -F '[ :]+' '{print $4}'
ifconfig eth0 |awk NR==2 |awk -F '[ :]+' '{print $4 "/" $8}'  #提取IP+掩码

删除0字节文件:
find / -type f -size 0 -exec rm -rf {} \;

查找以.php结尾的文件:
find /var/www -type f *.php -print

查找三天前的文件:
find /var/www -type f -mtime +3 -print
+3:三天前
-3:三天内

查找三天前的文件,并删掉:
find /var/www -type f -mtime +3 |xargs rm -f
如果要删除目录的话,就要改-type f 为-type d,并用xargs rm -rf

按内存从大到小排列:
ps -e  -o "%C  : %p : %z : %a"|sort -k5 -nr
还可用top命令查看,按大M为按内存使用率排列

cpu利用率从大到小排列:
ps -e  -o "%C  : %p : %z : %a"|sort  -nr
还可用top命令查看,按大P为按内存使用率排列

查看http的并发请求数及其TCP连接状态:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

如何杀掉mysql进程:
ps aux|grep mysql|grep -v grep|awk '{print $2}'|xargs kill -9
(从中了解到awk的用途)
pgrep mysql |xargs kill -9
killall -TERM mysqld
kill -9 `cat /usr/local/apache2/logs/httpd.pid`



显示运行3级别开启的服务:
ls /etc/rc3.d/S* |cut -c 15-
或用:
chkconfig --list |grep '3:on'|awk '{print $1}'

如何在编写SHELL显示多个信息,用EOF:
cat << EOF
+--------------------------------------------------------------+
|         === Welcome to Tunoff services ===                   |
+--------------------------------------------------------------+
EOF

for 的巧用(如给mysql建软链接):
cd /usr/local/mysql/bin
for i in *
do ln /usr/local/mysql/bin/$i /usr/bin/$i
done

取IP地址:
ifconfig eth0|sed -n '2p'|awk '{print $2}'|cut -c 6-30
ifconfig eth0 |grep "inet addr:" |awk '{print $2}'|cut -c 6-
ifconfig  | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'
ifconfig eth0 | sed -n '/inet /{s/.*addr://;s/ .*//;p}'

获取物理内存的总大小:
free -m |grep "Mem" | awk '{print $2}'

查看Apache的并发请求数及其TCP连接状态:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

CPU的数量(多核算多个CPU)
cat /proc/cpuinfo |grep -c processor
核越多,系统负载越低,每秒能处理的请求数也越多。

CPU负载,检查前三个输出值是否超过了系统逻辑CPU的4倍:
cat /proc/loadavg
也可以用uptime和top
load average: 0.00, 0.00, 0.00
三分数值分别代表:1分钟,5分钟,15分钟
 

CPU负载,检查%idle是否过低(比如小于5%):
mpstat 1 1

内存空间,检查free值是否过低:
free
cat /proc/meminfo

swap空间
free
检查swap used值是否过高  如果swap used值过高,进一步检查swap动作是否频繁:
vmstat 1 5
观察si和so值是否较大

磁盘空间
df -h
检查是否有分区使用率(Use%)过高(比如超过90%)  如发现某个分区空间接近用尽,可以进入该分区的挂载点,用以下命令找出占用空间最多的文件或目录:
du -cks * | sort -rn | head -n 10

磁盘I/O负载,检查I/O使用率(%util)是否超过100%
iostat -x 1 2

网络负载,检查网络流量(rxbyt/s, txbyt/s)是否过高
sar -n DEV

检查是否有网络错误(drop fifo colls carrier)
netstat -i
cat /proc/net/dev

网络连接数目
netstat -an | grep -E “^(tcp)” | cut -c 68- | sort | uniq -c | sort -n

进程总数,检查进程个数是否正常 (比如超过250)
ps aux | wc -l

可运行进程数目,列给出的是可运行进程的数目,检查其是否超过系统逻辑CPU的4倍
vmwtat 1 5

进程,观察是否有异常进程出现
top -id 1
网络状态  检查DNS, 网关等是否可以正常连通

用户,检查登录用户是否过多 (比如超过50个)  
who | wc -l
uptime

系统日志
cat /var/log/rflogview/*errors
检查是否有异常错误记录  也可以搜寻一些异常关键字,例如:
grep -i error /var/log/messages
grep -i fail /var/log/messages
egrep -i 'error|warn' /var/log/messages 查看系统异常

核心日志,检查是否有异常错误记录
dmesg

系统时间,检查系统时间是否正确
date

打开文件数目,检查打开文件总数是否过多
sof | wc -l


配置/etc/log.d/logwatch.conf,将 Mailto 设置为自己的email 地址,启动mail服务 (sendmail或者postfix),这样就可以每天收到日志报告了。
缺省logwatch只报告昨天的日志,可以用# logwatch ?print ?range all 获得所有的日志分析结果。
可以用# logwatch ?print ?detail high 获得更具体的日志分析结果(而不仅仅是出错日志)。

杀掉80端口相关的进程
lsof -i :80|grep -v "PID"|awk '{print "kill -9",$2}'|sh

清除僵死进程。
ps -eal | awk '{ if ($2 == "Z") {print $4}}' | kill -9

tcpdump 抓包 ,用来防止80端口被人攻击时可以分析数据
tcpdump -c 10000 -i eth0 -n dst port 80 > /root/pkts

然后检查IP的重复数 并从小到大排序 注意 "-t\ +0"  中间是两个空格
ess pkts | awk {'printf $3"\n"'} | cut -d. -f 1-4 | sort | uniq -c | awk {'printf $1" "$2"\n"'} | sort -n -t\ +0

查看有多少个活动的php-cgi进程
netstat -anp | grep php-cgi | grep ^tcp | wc -l

利用iptables对应简单攻击
netstat -an | grep -v LISTEN | awk ‘{print $5}’ |grep -v 127.0.0.1|grep -v 本机ip|sed  “s/::ffff://g”|awk ‘BEGIN { FS=”:” } { Num[$1]++ } END { for(i in Num) if(Num>8) { print i} }’ |grep ‘[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}’|  xargs -i[] iptables -I INPUT -s [] -j DROP

转载请注明linux系统运维
http://www.linuxyw.com/linux/yunweijingyan/xitongguanli/20130331/13.html

------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片