Linux 使用技巧集锦[centos]
服务器负载大,跟踪进程
比如,但网站服务器负载过大,网站数量又多,不知是那个网站占用太多资源,这时strace派上用场了。
第一步,查看 php-cgi 进程号: ps aux|grep php-cgi
第二步,查看系统调用 strace -p 进程号 或者,将记录结果存在output.txt文件中
strace -o output.txt -T -tt -e trace=all -p 进程号
只显示recv函数的调用:strace -p 5314 -f -F -e recv
查看线程打开的文件描述符:lsof -p pid 或者 ll /proc/pid/fd
可以用下面的命令将 cpu 占用率高的线程找出来: ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu
一个php-cgi占用多少内存
指令ps找出消耗内存的元凶
ps -A -sort -rss -o comm,pmem,pcpu | uniq -c | head -15
删除20天以前的文件: find /home/ -mtime +20 -name "hilife*.sql.gz" -exec rm -rf {} \;
强制踢人命令格式:pkill -kill -t tty
查当前连接数:要用于CC攻击:
netstat -na|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r -n
查看并发数:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
查看并发数(简洁版):
netstat -nat|grep ESTABLISHED|wc -l
看有没有人在扫你的VPS的SSH端口,说白了,在爆你的root帐号
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}'
cat /var/log/secure.3|awk '/Failed/{print $1"-"$2"-"$3"-->"$(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}'
find命令如何查找当天修改过的文件
find ./ -mtime 0 -type f
建立管理员组内一般用户
vi /etc/pam.d/su
#auth required /lib/security pam_wheel.so use_uid ← 找到此行,去掉行首的“#”
echo "SU_WHEEL_ONLY yes" >> /etc/login.defs ← 添加语句到行末
以上操作完成后,可以再建立一个新用户,然后用这个新建的用户测试会发现,没有加入到wheel组的用户,执行“su -”命令,即使输入了正确的root密码,也无法登录为root用户。
命令行下计算器:echo "2534453+2942"|bc
注:要先安装bc才行
统计某个进程占用的内存总数: ps aux|grep -v grep |awk '/nginx/{sum+=$6;n++};END{print sum/1024}'
通过日志统计流量
cat access.log |awk '{sum+=$10} END {print sum/1024/1024/1024}'
统计出来的单位是G
scp 传输整个目录速度太慢
以前我搬家VPS都用scp 不过最近服务商把主机搬移到美东,导致延迟高达200ms,用scp连接的话每秒大概只能跑两个档案,整台VPS有数十万以上个文件,这样跑下去要跑太久了。。。。
有想过先用压缩在传输,不过原来的VPS硬盘不够了,没办法压缩
tar -czvf - ./ | ssh -l <user> -p <port> <host> "tar -xzvf - -C </path/to/your/dir>"
你可以把 z 换成 j, 会更快的. 因为 bzip的 压缩比 gzip 更高
连接数监控
如何监控linux下的进程占用内存的情况
top -d 1
然后shift + m(按占用内存大小排序)
修改mysql密码
1、root用户登录系统
/usr/local/mysql/bin/mysqladmin -u root -p password 新密码
enter password 旧密码
2、shell> mysql -u root mysql
mysql> SET PASSWORD FOR root=PASSWORD(’new_password’);
查看目录大小
1、du -sh */显示当前所有目录大小
2、du -lh 显示当前目录所有文件大小,以列表列表展现
删除升级后的多余内核
1.首先列出系统中正在使用的内核:
# uname -a
2.查询系统中全部的内核:
# rpm -qa | grep kernel
3.将你想删除的内核删除掉:(例如,在我的系统中,我要删掉2.6.32-71.el6.i686的内核,需要把所有含有2.6.32-71.el6.i686字样的全部删掉)
#yum remove kernel-2.6.32-71.el6.i686
#yum remove kernel-devel-2.6.32-71.el6.i686
4.重启后就可以看到,内核被删掉了,同时多余的启动项也自动被删掉了,不需要自己手动修改/boot/grub/menu.lst
- 没有相关文章
- 没有评论