记录一条筛选分析nginx的access_log的指令
## 根据日期切割日志
```
sed -n '/14\/May\/2019/,/15\/May\/2019/p' /data/log/nginx/m.tugou.com.access.log > /tmp/m20190514.log
```
* -n:仅展示m.tugou.com.access.log中经过‘/14\/May\/2019/,/15\/May\/2019/p’过滤的数据行
## 获取2-3点时间段内访问量前10的url
```
grep "25/May/2019:1[4-5]" /data/log/nginx/www.tugou.com.access.log | awk '{print $7}' | sort | uniq -c | sort -nrk 1 | head -n 10
```
* awk '{print $7}':取出url,print 需要被{}包起来,外面需要单引号,不能是双引号
* uniq -c:合并重复值并展示重复次数
* sort -nrk 1:
* n:按照数值排序
* k 1:根据第1列排序
* r:倒序
* head -n 10:获取前10行
## 根据sql语句过滤日志
```
tail -n +213693 /www/web_log/web3/baimahu/log/tuan/going/sign_phoneSigning_sign.log | grep 'SELECT\ \*\ FROM\ `cus_detail' | awk -F\' '{print $2}'
```
* tail -n +213693 :过滤文件第213693行之后的数据
* grep 'SELECT\ \*\ FROM\ `cus_detail':过滤内容包含空格,*时需要使用\反斜杠转义。
* awk -F\':分隔符是单引号'时需要使用\反斜杠转义
## 统计数量
```
wc -l
```
## 查找文件
```
find /tmp/ -type f -mtime +7 -name "*.sh" -exec cp {} /tmp/test \
```
* -type f: 文件类型是 **普通文件**
* -mtime:文件最新修改时间,+7:大于7天
* -name “*.sh“:以sh结尾的文件
* -exec:与其他命令组合使用
* {}:find命令返回的信息
## 上传本地文件到远程目录
```
scp /opt/soft/nginx-0.5.38.tar.gz root@10.10.10.10:/opt/soft/scptest
```
## 上传本地目录到远程目录
```
scp -r /opt/soft/mongodb root@10.10.10.10:/opt/soft/scptest
```
## 复制远程文件到本地
```
scp root@10.10.10.10:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/
```