寻觅生命中的那一片浅草......

文章属于类别 Linux

Webserver维护常用命令

实时查看正在执行的sql语句
1./usr/sbin/tcpdump -i eth0 -s 0 -l -w – dst port 3306 | strings | egrep -i

‘SELECT|UPDATE|DELETE|INSERT|SET|COMMIT|ROLLBACK|CREATE

|DROP|ALTER|CALL’

查看http连接

1.netstat -n | awk ‘/^tcp/ {++state[$NF]} END {for(key in state) print key,”\t”,state[key]}’

查看SYN状态的http连接

1.netstat -an | grep SYN | awk ‘{print $5}’ | awk -F: ‘{print $1}’ | sort | uniq -c | sort -nr | more

查看TIME_WAIT状态的http连接

1.netstat -tna | cut -b 49- |grep TIME_WAIT | sort |more
2.netstat -an | grep TIME_WAIT | awk ‘{print $5}’ | awk -F: ‘{print $1}’ | sort | uniq -c | sort -nr | more

查看ESTABLISHED状态的http连接

1.netstat -an | grep ESTABLISHED | awk ‘{print $5}’ | awk -F: ‘{print $1}’ | sort | uniq -c | sort -nr | more
2.netstat -an | grep “:80” | grep ESTABLISHED | sort | more

批量kill进程

1.ps -efww|grep sqlr-listener|grep -v grep|cut -c 9-15|xargs kill -9

查看活动的php-cgi连接数

1.netstat -anpo|grep php-cgi|wc -l

按ip查看httpd连接数

1.netstat -anlp | grep 80 | grep tcp | awk {‘print $5’} | awk -F: {‘print $1’}| sort |uniq -c | sort -nr

禁IP

1.iptables -A INPUT -s IP地址 -j REJECT
2.iptables -A INPUT -s IP地址/24 -j REJECT
3.
4.route add -net IP地址 netmask 255.255.255.0 reject

调试命令

1.strace -p pid

跟踪指定的进程pid.

1.gdb -p pid

跟踪指定的进程pid.

批量查找文件并删除

1.find . -name test.php -exec rm {} \;
2.find . -name test.php | xargs rm -rf

更改某一目录下所有目录的权限, 不包括文件, aaa 是目录名

1.find aaa -type d -exec chmod 755 {} \;

替换文件内容

1.sed -i ‘s/b/strong/g’ index.html

此命令搜索 index.html 文件中的 b 并将其替换为 strong。

转载自:www.lostk.com/blog/linux_webserver_cmd/

Linux一句话命令

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

2.查看进程
按内存从大到小排列
ps -e  -o “%C  : %p : %z : %a”|sort -k5 -nr

3.按cpu利用率从大到小排列
ps -e  -o “%C  : %p : %z : %a”|sort  -nr

4.打印说cache里的URL
grep -r -a  jpg /data/cache/* | strings | grep “http:” | awk -F’http:’ ‘{print “http:”$2;}’

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

6. sed -i ‘/Root/s/no/yes/’ /etc/ssh/sshd_config  sed在这个文里Root的一行,匹配Root一行,将no替换成yes.

7.1.如何杀掉mysql进程:
ps aux|grep mysql|grep -v grep|awk ‘{print $2}’|xargs kill -9   (从中了解到awk的用途)
pgrep mysql |xargs kill -9 [网友:&FROST]

killall -TERM mysqld

kill -9 `cat /usr/local/apache2/logs/httpd.pid`  试试查杀进程PID

8.显示运行3级别开启的服务:
ls /etc/rc3.d/S* |cut -c 15-  (从中了解到cut的用途,截取数据)

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

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

11. 取IP地址:
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}’

12.内存的大小:
free -m |grep “Mem” | awk ‘{print $2}’

13.
netstat -an -t | grep “:80” | grep ESTABLISHED | awk ‘{printf “%s %s\n”,$5,$6}’ | sort

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

15.因为同事要统计一下服务器下面所有的jpg的文件的大小,写了个shell给他来统计.原来用xargs实现,但他一次处理一部分,搞的有多个总和….,下面的命令就能解决啦.
find / -name *.jpg -exec wc -c {} \;|awk ‘{print $1}’|awk ‘{a+=$1}END{print a}’

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

——————————————————————————————————————–
16  CPU负载  # cat /proc/loadavg
检查前三个输出值是否超过了系统逻辑CPU的4倍。

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

19  内存空间  # free
检查free值是否过低  也可以用 # cat /proc/meminfo

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

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

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

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

24  网络错误  # netstat -i
检查是否有网络错误(drop fifo colls carrier)  也可以用命令:# cat /proc/net/dev

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

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

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

28  进程  # top -id 1
观察是否有异常进程出现

29  网络状态  检查DNS, 网关等是否可以正常连通

30  用户  # who | wc -l
检查登录用户是否过多 (比如超过50个)  也可以用命令:# uptime

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

33  系统时间  # date
检查系统时间是否正确

34  打开文件数目  # lsof | wc -l
检查打开文件总数是否过多

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

36.杀掉80端口相关的进程
lsof -i :80|grep -v “PID”|awk ‘{print “kill -9”,$2}’|sh

37.清除僵死进程。
ps -eal | awk ‘{ if ($2 == “Z”) {print $4}}’ | kill -9

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

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

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

41.利用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

Num>8部分设定值为阀值,这条句子会自动将netstat -an 中查到的来自同一IP的超过一定量的连接的列入禁止范围。本机ip改成你的服务器的ip地址

转载自:http://bbs.linuxtone.org/thread-16-1-1.html

lxadmin(kloxo)控制面板中文

目前使用centos5.3系统vps主机的朋友大多都会选用虚拟主机控制面板–使用kloxo这款免费的控制面板来对主机进行一些操作。但因为kloxo是国外开发的所以都是英文,最近有主机商提供了中文语言汉化包,那么就让我们一起来给kloxo装上一颗中文心吧。

1.首先要使用ssh登陆您的VPS

2.进入lang目录:
$ cd /usr/local/lxlabs/kloxo/httpdocs/lang

3.下载语言包:
$ wget http://www.daigou.in/pack/lxadmin_cn_pack.zip

4.解压:
$ unzip lxadmin_cn_pack.zip
(如果没有安装unzip命令请执行yum -y install unzip进行安装)

5. 访问http://你的IP:7778/ 进行lxadmin语言设置

在Advanced->General Settings->Appearance->Language里选择Chinese,然后点击update确认

转载自:http://usa110.com/archives/288#more-288

Acronis for Linux的snapapi module安装错误

Acronis True Image Server has not found precompiled snapapi module for running kernel. It is suggested to compile it now.
You may choose “Skip” and compile snapapi module later. Please read readme.txt and HOWTO.INSTALL for compile instructions.
Acronis True Image Server Setup failed to build kernel modules. Consult /var/log/trueimage-setup.log  and /var/lib/dkms/snapapi26/0.7.10/build/make.log for error messages.  Launching ‘/usr/sbin/dkms ldtarball –force –archive

今天在CentOS5上安装Acronis.True.Image.Server.v9.1.3530.Linux出现以上错误,网上查找了资料,说要安装kernel-devel和kernel-hearders,于是就yum -y install kernel-devel kernel-hearders,安装好后,发现依然不可以。

用rpm -qa |grep kernel查看了几个包,发现kernel的版本是2.6.18-8,而kernel-devel和kernel-hearders是2.6.18-128,用yum -y install kernel-2.6.18-128安装新内核,并用 kernel-2.6.18-128内核启动,安装Acronis一切顺利。但创建acronis secure zone出现问题,查找了一些网上的资料,对acronis secure zone的要求有以下2点:
1、必须是主分区,不能是逻辑分区
2、不支持在使用了LVM的分区上通过调整分区大小来创建secure zone

分区规划好才是王道啊!

grep递归查找子目录

第一个,这个是看别人脚本的,配合find实现,-maxdepth指定深度,如果查找到底,就把-maxdepth删掉
find /var/log/httpd/* -maxdepth 1 -type f -mtime +14 -print | egrep ‘.*\.gz$’ | xargs -r /bin/rm

第二个,也是别人脚本,粗糙点,原先我是用这个来查找当前目录的,修改为`ls -R`,可以递归查目录
for i in `ls -R`;do grep rpm $i; echo $i; done;

第三个,比较好用啊,grep当前目录和子目录里文件的内容

grep Notifications `find ./*`

2025年十一月
« 5月    
 12
3456789
10111213141516
17181920212223
24252627282930