1,统计日志下各种状态码的个数,统计个数并倒序,只统计500等:
统计httpd状态码个数并返回前5种的数量:
awk -F " " '{print $9}' access_log-20170115 |sort -r |uniq -c |head -n 10
这里的问题是,sort和uniq其实都可以去重,但是uniq要求要连续,所以这里用sort排倒序,用uniq统计数量, head取top n,排序,统计+top
2,寻找某目录下文件并{操作:删,移}:
有个坑,find 后要加"\;",而且必须加,中间还不能有空格,否则会missing arg:
找出所有1天内有变动的文件(被黑后常见用法):
find / -mtime -1 > motify.log
移动当前目录下大于30m的文件到临时目录:
find . -size +30M -exec mv {} /tmp/ \;
3,如何禁止一个用户登录(系统被黑了如何锁定root并给root一个新的名字),或者,如何同时给600台服务器同时修改用户名密码。
/etc/passwd 文件查看能获取/bin/bash的用户有哪些,一旦这些修改就不能登录;如果同时修改大量系统的用户名密码,可以用ansible远程执行passwd/usrdel 命令,更简单的一个方式,本地执行后将passwd和shadow文件拷贝到所有目标服务器
4,查看端口的占用进程
1,lsof -i port
2,netstat -anpl |grep port |awk
5,查询当前系统tcp连接数(awk的用法)
awk -F: "./ " "/^...$/ BEGIN {} {} END {}"
这里-F是每行的切割条件,/^...$/表示的是正则匹配只取这些行,begin表示第一行显示的,end表示最后一行显示的,中间的{}表示要循环显示的
netstat -an |awk '/^tcp / {print $1}'|sort -r |uniq - c
netstat -an |grep tcp //为什么不用grep,这里只对部分字段计数
1,查看下载文件的 head
curl -XHEAD -v http://www.baidu.com
查看下载速度
bind_part = "--bind-dns-address=%(bind_ip)s --bind-address=%(bind_ip)s" % {"bind_ip": bind_ip} wgetnew --bind-dns-address=%(bind_ip)s --bind-address=%(bind_ip)s --header="Host: %s" -t 3 -T 120 --limit-rate=%(rate)s -O %(tempfile_path)s '%(source_url)s'
注意参数:
bind-dns-address 获取dns 时使用的ip ,这也是带运营商的
bind-address 出口 ip (用于多ip 可以指定走运营商的线路)
header
-t 重试次数
-T 超时时间
--limit-rate 限速