1分钟搞定linux sort命令

sort是用来排序的,默认是按照ascii升序排列

sort -u排序去重

sort -r 默认是升序排列,如果要降序就带上它

sort -o把结果定向到文件(你是不是用 sort file > result.log?不要想了,就用这个参数吧,因为那样是没用的)

sort -n 这是告诉排序是按照数字来的,不是按照ascii来(不然10比2小!!!)

sort -n -t : -k 1 绝代双骄!排序按照指定行排序(-t是指定分隔符 -k是指定排序列)
场景?
文件内容:
1:2
4:5
3:4
按照第一列排序 sort -n -t : -k 1即可

这个使用是最简单的使用,你考虑过如果按照两个列排序咋办?

备注:-k参数使用最麻烦!!!!

参考:http://www.cnblogs.com/51linux/archive/2012/05/23/2515299.html

yii添加csrf验证

yii2X版本的请绕行,这里说的是yii 1.1.14版本。某某公司的老程序当中没有考虑csrf攻击,所以不幸中枪了。(具体地址我就不贴了,说下解决方案)

配置文件当中检查是否已开启csrf

components配置中没看到

‘request’=>array(
‘enableCsrfValidation’ => true,
)

的配置。如果全局开启会影响到其他ajax请求

可以在控制器当中这样写

Yii::app()->request->enableCsrfValidation = true;//开启csrf
Yii::app()->request->csrfTokenName = 'FORM_TOKEN';//表单名称
//以上两句的影响是 $form = $this->beginWidget('CActiveForm')的时候
//会生成一个隐藏的input名字是FORM_TOEKN(值就是csrftoken)
if($_POST) {
    try {
        Yii::app()->request->validateCsrfToken(null);
    } catch (Exception $e) {
        die('The token could not be verified.');
    }
}

资料参考:
http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html
http://www.crarun.com/article-7.html

awk第二课

使用方法:awk ‘{pattern + action}’ {filenames}

尽管操作可能会很复杂,但语法总是这样,其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到匹配内容时所执行的一系列命令。花括号({})不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组。 pattern就是要表示的正则表达式,用斜杠括起来。awk语言的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作。完整的awk脚本通常用来格式化文本文件中的信息。通常,awk是以文件的一行为处理单位的。awk每接收文件的一行,然后执行相应的命令,来处理文本。

1.命令行执行:awk [-F field-separator] ‘commands’ input-file(s) 其中,commands 是真正awk命令,[-F域分隔符]是可选的。 input-file(s) 是待处理的文件。 在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常,在不指名-F域分隔符的情况下,默认的域分隔符是空格。

2.shell脚本方式 将所有的awk命令插入一个文件,并使awk程序可执行,然后awk命令解释器作为脚本的首行,一遍通过键入脚本名称来调用。 相当于shell脚本首行的:#!/bin/sh 可以换成:#!/bin/awk

3.将所有的awk命令插入一个单独文件,然后调用: awk -f awk-script-file input-file(s) 其中,-f选项加载awk-script-file中的awk脚本,input-file(s)跟上面的是一样的。

更多链接:[学习]  [http://bbs.chinaunix.net/linux/awkminglingxiangjie.shtml]

 

awk开学了

查找访问ip列表

awk ‘{print $1}’ log_file|sort|uniq

查看ip访问文件总数

awk ‘{++S[$1]} END {for(a in S) print a,S[a]}’ log_file

查看ip访问的文件列表

grep ^127.0.0.1 log_file |awk ‘{print $1,$7}’

查看2015年6月2日,16点访问网站的ip

awk ‘{print $1,$4}’ /var/www/log/access.log |grep 02/Jun/2015:16 |awk ‘{print $1}’|sort|uniq

查看访问前10的ip地址

cat /var/www/log/access.log |awk ‘{print $1}’|sort |uniq -c |sort -nr |head -10

访问文件统计

cat /var/www/log/access.log |awk ‘{counts[$(11)]++};END {for (url in counts) print counts[url], url}’

统计网站流量

cat /var/www/log/access.log |awk ‘{sum+=$10} END {print sum/1024/1024/1024}’

每秒并发

cat /var/www/log/access.log  |awk ‘{if ($9 ~/200|30|404/COUNT[$4]++)}END{for(a in COUNT) print a,COUNT[a]}’|sort -k 2 -nr|head -n 10

 

 

YII使用命令行模式

入口文件:shell.php

run();

数据库配置文件console.php可以参考main.php

演示protected/commands/TestCommand.php


终端执行:/usr/bin/php -f /var/www/test/shell.php test 1 2
其中1是第一个参数可以在代码当中用$args[0]获取,2标示第二个参数可以用$args[1]获取;注意命令用小写调用