kk Blog —— 通用基础


date [-d @int|str] [+%s|"+%F %T"]
netstat -ltunp
sar -n DEV 1

url 中 \xe6 %E6 两种解码方式

https://blog.csdn.net/YungGuo/article/details/110197818

apache log 中,参数之前的url是 \x , 参数是 %

例如

1
index/\xe6\x89\xa7\xe8\xa1\x8c\xe7\xbb\x93\xe6\x9e\x9c\xe5\xa6\x82\xe4\xb8\x8b?arg=%E6%89%A7%E8%A1%8C%E7%BB%93%E6%9E%9C%E5%A6%82%E4%B8%8B

%

如果是 % 直接用 urldecode

1
urldecode($v);

\x

1
2
 \xe4\xbd\xa0\xe5\xa5\xbd\xe4\xb8\x96\xe7\x95\x8c
 中文是: 你好世界

上面这个是utf-8编码,但数据类型是字符串类型,而不是bytes类型的utf-8编码。

这样会导致一个结果:如果直接输出,显示的是乱码,也不能使用decode进行utf-8解码得到中文。

可能有人会说,既然得到的是utf-8编码,在前面加上 “ b ” ,字符串就是bytes类型了,再利用decode进行解码不就可以得到中文吗?但显然,这是行不通的,你不可能去手动一个个添加,那有没有其他方法呢?

答案肯定是有的,既然知道这个字符串是utf-8编码的,那么我换种方式,只要将字符串中的 “ \x ” 改为 “ % ” 利用urllib中的unquote方法解码就可以得到中文了,因为url中的中文utf-8编码和这里的区别就是url中编码是%开头。

1
urldecode(preg_replace('/\\\x([0-9a-fA-F]{2})/', '%$1', $v));

grep如何匹配制表符

https://www.iteye.com/blog/xulu010-2412401

1
cat 1 | grep '1\t2'

因为,‘\t’里的\会被认为是转义字符,只能匹配到‘1t2’这样的字符串

那要怎样匹配呢,两个方案

1.手动把制表符打出来

1
cat 1 | grep '1 2'  

制表符的打法是ctrl-v + tab

2.使用$符号展开\t

1
cat 1 | grep '1'$'\t''2'  

$符号在shell中是引用变量的意思,所以 $‘\t’ 就是返回了一个展开的制表符

如果要匹配多个制表符,使用+号匹配即可

1
cat 1 | grep '3'$'\t''\+4'  

crontab不再发出告警邮件

http://blog.chinaunix.net/uid-405749-id-2949218.html

在默认情况下,cron程序会向用户的本地信箱中发送邮件,则产生的邮件数量将会很巨大,那么如何禁用邮件报警功能呢,解决方法有如下一些:

不装邮件时 保存到 /var/spool/mail/root

装邮件时 保存到 /root/Maildir/new/

1.将执行命令的信息重定向到

1
cron_command >/dev/null 2>&1

2.将执行命令的信息重定向到

1
cron_command &>/dev/null

3.在crontab设置文件中指定发送到空

1
2
MAILTO=""
cron_command

在crontab设置文件中指定发送到邮件

1
2
MAILTO="1@qq.com"
cron_command