个人记录

mysqldump -u user -h host -ppasswd db | gzip -9 > /tmp.gz

linux


netstat -n | awk '/^tcp/ {++state[$NF]} END {for(i in state) print i,"\t",state[i]}'

并发

1 看CPU 核数

grep 'model name' /proc/cpuinfo | wc -l


2   对连接的IP按连接数量进行排序

netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

查看TCP连接状态

netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn

netstat -n | awk '/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}'

netstat -n | awk '/^tcp/ {++state[$NF]}; END {for(key in state) print key,"\t",state[key]}'

netstat -n | awk '/^tcp/ {++arr[$NF]};END {for(k in arr) print k,"\t",arr[k]}'

netstat -n |awk '/^tcp/ {print $NF}'|sort|uniq -c|sort -rn

netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c

3  查看80端口连接数最多的20个IP

netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20

netstat -ant |awk '/:80/{split($5,ip,":");++A[ip[1]]}END{for(i in A) print A,i}' |sort -rn|head -n20

4  用tcpdump嗅探80端口的访问看看谁最高

    查找较多time_wait连接

netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20

查找较多的SYN连接

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

对连接的IP按连接数量进行排序

netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n

5 找出使用CPU最多的前10名进程

    ps -auxf | sort -nr -k 3 | head -10


6   查看僵死进程

ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'


7  查找最大的文件夹

du --max-depth=1

8 硬盘IO

iostat -x 1 10

%util:    一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒)

同时可以结合vmstat 查看查看b参数 (等待资源的进程数 )和wa参数(IO等待所占用的CPU时间的百分比,高过30%时IO压力高 )

 

9 ####查找打包

tar -zcvf test.tar.gz `find /data/webdir/hiweb3.comdocs -mtime -3 -print`

10  ####查看端口运行什么程序

netstat -apn        lsof -i:818  (端口)


11  ######查看目录下小排序

du -sh /usr/www/* | sort -nr


12  ##打包排除目录



13 复制目录下大于5MB的东西

/bin/cp `find /root -size +5M`   /root/lrm929/

复制目录下大于5MB小于10MB的东西

/bin/cp `find /root -size +5M -size -10M`   /root/lrm929/ 

14  netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'


查找较多time_wait连接

netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20

15  删除文件大小为0的

    find . -name "*" -type f -size 0c | xargs -n 1 rm -f

这个还可以删除指定大小的文件,只要修改对应的 -size 参数就行,例如:

    find . -name "*" -type f -size 1024c | xargs -n 1 rm -f


16 问题:

用命令

netstat -np | grep 127.0.0.1:9000 |wc -l

发现只有15

解决:

根据服务器内存情况,可以把PHP FastCGI子进程数调到100或以上,在4G内存的服务器上200就可以

服务器上内存为8G,我把PHP FastCGI子进程数调整到300

vi /usr/local/php/etc/php-fpm.conf

将max_children修改为300

300

重启服务器 如果没有意外 打开速度是正常的

查看当前的PHP FastCGI进程数是否够用:

netstat -anpo | grep "php-cgi" | wc  -l


  如果实际使用的“FastCGI进程数”接近预设的“FastCGI进程数”,那么,说明“FastCGI进程数”不够用,需要增大。


解释:

返回结果示例: 

  LAST_ACK 5   (正在等待处理的请求数) 

  SYN_RECV 30 

  ESTABLISHED 1597 (正常数据传输状态) 

  FIN_WAIT1 51 

  FIN_WAIT2 504 

  TIME_WAIT 1057 (处理完毕,等待超时结束的请求数) 

  状态:描述 

  CLOSED:无连接是活动的或正在进行 

  LISTEN:服务器在等待进入呼叫 

  SYN_RECV:一个连接请求已经到达,等待确认 



  SYN_SENT:应用已经开始,打开一个连接 

  ESTABLISHED:正常数据传输状态 

  FIN_WAIT1:应用说它已经完成 

  FIN_WAIT2:另一边已同意释放 

  ITMED_WAIT:等待所有分组死掉 

  CLOSING:两边同时尝试关闭 

  TIME_WAIT:另一边已初始化一个释放 

  LAST_ACK:等待所有分组死掉

###########################################################################################################################

web######################################################

1、 查看Web服务器(Nginx Apache)的并发请求数及其TCP连接状态:

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a

2、 查看Nginx运行进程数

ps -ef | grep nginx | wc -l

返回的数字就是nginx的运行进程数,如果是apache则执行

ps -ef | grep httpd | wc -l

3、 查看Web服务器进程连接数:

netstat -antp | grep 80 | grep ESTABLISHED -c


4、 查看所有80端口的连接数

netstat -nat|grep -i "80"|wc -l


5、 查看并发

netstat -na|grep ESTABLISHED|wc -l

##########################################################################################################################

1.新建用户。

mysql> insert into mysql.user(Host,User,Password) values("localhost","phplamp",password("123456"));

//刷新系统权限表

mysql>flush privileges;

这样就创建了一个名为:phplamp  密码为:1234  的用户。

2.为用户授权。

//登录MYSQL(有ROOT权限)。我里我以ROOT身份登录. //首先为用户创建一个数据库(phplampDB)

mysql>create database phplampDB;

//授权phplamp用户拥有phplamp数据库的所有权限。

>grant all privileges on phplampDB.* to phplamp@localhost identified by '1234';

授权

grant all privileges on testDB.* to test@localhost identified by '1234';

GRANT SELECT , INSERT , UPDATE , DELETE ON `gemmy\_fdw` . * TO 'fdw'@'localhost';

mysql>flush privileges;

/*

如果想指定部分权限给一用户,可以这样来写:

mysql>grant select,update on phplampDB.* to phplamp@localhost identified by '1234';



grant all privileges on *.* to root@'10.255.255.%' identified by '123456';





//刷新系统权限表。

mysql>flush privileges;

*/

3.删除用户。





:

mysql>DELETE FROM user WHERE User="phplamp" and Host="localhost";

delete from mysql.user where user='';  ← 删除匿名用户

mysql>flush privileges;

//删除用户的数据库

mysql>drop database phplampDB;

4.修改指定用户密码。

mysql>update mysql.user set password=password('新密码') where User="phplamp" and Host="localhost";

mysql>flush privileges;

gw_auditing


update mysql.user set password=password('123456') where User="root" and Host="127.0.0.1";


5 数据库备份/还原

mysqldump -h1.1.1.1  --user=root --password=12345 --opt -Q --default-character-set=utf8 db  > auditing2.sql


mysqldump -h1.1.1.1  --user=root --password=12345 --opt -Q --default-character-set=utf8 db   > /root/db.sql

mysql --user=root --password=12345 --opt -Q --default-character-set=utf8  --databases "db" > "/root/db

.sql


/usr/bin/mysqldump --user=root --password=fdw123456 --opt -Q --default-character-set=utf8 --databases "gemmy_fdw" > "/fdw.sql

导出整个数据库结构和数据:mysqldump -u用户名 -p密码 -h主机 database > filename.sql

导出某个表的数据和结构:mysqldump -u用户名 -p密码 -h主机 database table > filename.sql

只导出数据库中表的数据:mysqldump -u用户名 -p密码 -h主机 -T database table > filename.sql

只导出数据库中表的结构:mysqldump -u用户名 -p密码 -h主机 -d database table > filename.sql

还原

mysql -uroot -panlaigz --default-character-set=utf8 xixijiawu_xch  </root/xixijiawu_xch_2013-08-28.sql

6、 查看MySQL进程连接数:

ps -axef | grep mysqld -c

7   show status like "Handler_read%";   索引效率查询

Handler_read_key 值高表示索引效果好,Handler_read_rnd_next值高表示索引低效。

http://www.itlearner.com/article/4553

tar -czvf mm.tgz xxx/  --exclude xxx/tt --exclude xxx/ppp


1:查找可疑关键字

find /www/ -name "*.php" |xargs egrep 'assert|phpspy|c99sh|milw0rm|eval|\(gunerpress|\(base64_decoolcode|spider_bc|shell_exec|passthru|\(\$\_\POST\[|eval \(str_rot13|\.chr\(|\$\{\"\_P|eval\(\$\_R|file_put_contents\(\.\*\$\_|base64_decode'

2:查找php小马

grep -r --include=*.php  '[^a-z]eval($_POST' . > post.txt

grep -r --include=*.php  '[^a-z]eval($_REQUEST' . > REQUEST.txt

3:禁用危险的php函数

disable_functions = exec,scandir,shell_exec,phpinfo,eval,passthru,system,chroot,chgrp,chown,proc_open,proc_get_status,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket

4:快速查找2天内呗修改的文件

find -mtime -2 -type f -name \*.php

#########

###########去取两个字符之间的内容

sed -n '/123493876/,/124149948/'p  file


sed -n '/140929 14:08/,/140929 14:10/'p  


你可能感兴趣的:(记录)