说明:所有日常中遇到的一两句话就能解决的问题,都将记录在这(长期更新)
1.ats日志squid.blog,查看需要traffic_logcat命令,而又想tail -f 实时查看,经测试 tail -f squid.blog |traffic_logcat 和 traffic_logcat `tail -f squid.blog ` 都不行。
解决方法: 修改ats的日志格式
折中方法:watch -n 1 -d 'traffic_logcat squid.blog|tail -20' 如果速度比较慢,这个是可以满足需求的
2.新版本ats remap 记录类似 map http://www.baidu.com/ http://1.1.1.1/不能正常访问问题:
解决方法: proxy.config.url_remap.pristine_host_hdr 置为1 (功能是保持原来的head不变)
3.Centos 低版本默认不自带pptpd gcc4.8等软件
解决方法:更新repo: wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo
4.apache 301跳转:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.linzb.com [NC]
RewriteRule ^(.*) http://www.baidu.com/ [R=301,L]
5.时间同步:
ntpdate pool.ntp.org
6.可用的m3u8源:
http://live.hkstv.hk.lxdns.com/live/hks/playlist.m3u8
rtmp://live.hkstv.hk.lxdns.com/live/hks
rtmp://red.88sps.com:14003/bjl03/myFlow
7.iptables转发:
iptables -t nat -I PREROUTING -p tcp --dport 1935 -j DNAT --to-destination 121.14.151.218
iptables -t nat -I POSTROUTING -p tcp --dport 1935 -j MASQUERADE
8.squid.log日志时间转换:
vi time.pl
内容为:
#! /usr/bin/perl -p
s/^\d+\.\d+/localtime $&/e
9.统计squid.log某个时间段以后的域名访问:
cat /opt/ats/var/log/trafficserver/squid.log|sed -n '/14659871/,$p'|awk '{print $7}' |grep -o '\/\/.*\....\/'|sort -rn|uniq -c|sort -rn|head -10
./time.pl squid.log|grep "Jul 14"|grep -o '\/\/.*\....\/'|sort -rn|uniq -c|sort -rn|head -10
10.pfx提取密钥:
openssl pkcs12 -in macncn.pfx -nodes -out server.pem
pfx转cer格式:
openssl pkcs12 -nodes -nokeys -in 1.pfx -passin pass:证书密码 -out 1.cer
生成Keystore:
openssl pkcs12 -export -name test-alias -in public-rsa.cer -inkey private-rsa.key -out 99bill-rsa.pfx
pfx格式证书转换为pem格式命令:
openssl pkcs12 -in 99bill-rsa.pfx -passin pass:生成证书设置的密码 -nodes -out 99bill-rsa.pem
11.查看一个网站使用的web软件等信息:
http://uptime.netcraft.com/up/graph?site=
###site=后面加上网站名即可,比如
http://uptime.netcraft.com/up/graph?site=www.vn9886.com
13.证书和密钥配对测试
(1)提取证书里面的公钥
openssl x509 -outform PEM -in loappgs.com.cer -pubkey >loa.pubkey
loappgs.com.cer是证书,loa.pubkey还需要把BEGIN CERTIFICATE段去掉,保留public key段
(2)公钥加密某个文件
openssl rsautl -in 1.txt -out loa.txt -inkey loa.pubkey -pubin -encrypt
1.txt是文件,loa.txt是输出的文件,loa.pubkey是公钥
<有时候会提示:
RSA operation error
47230690259912:error:0406D06E:rsa routines:RSA_padding_add_PKCS1_type_2:data too large for key size:rsa_pk1.c:151:>
这个是文件数据太大,无法加密,把文件内容变小一点即可
(3)私钥解密某个文件
openssl rsautl -in loa.txt -out 2.txt -inkey loappgs.com.key -decrypt
loappgs.com.key是匹配的私钥,没有报错即匹配
14.mysql远程免密码登陆
可以在用户家目录下创建一个.my.cnf文件,配置client段:
[client]
password=your_password
user=your_username
15.daemontool的安装小问题和supervise的使用
mkdir /package #这个是作者的习惯 cd /package/ wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz tar xf daemontools-0.76.tar.gz cd admin/daemontools-0.76 vi src/conf-cc #在gcc后面加 -include /usr/include/errno.h gcc -O2 -Wimplicit -Wunused -Wcomment -Wchar-subscripts -Wuninitialized -Wshadow -Wcast-qual -Wcast-align -Wwrite-strings -include /usr/include/errno.h This will be used to compile .c files. ./package/install
使用:
supervise默认会去启动/service(这个目录安装时会自己创建)里面的服务,这个目录里面都是一些软连接,每个软连接下都有run运行脚本,比如我们要监控启动srs服务:
先在启动路径建立run文件:
cd /usr/local/srs
vi run
#!/bin/bash
./objs/srs -c ./conf/edge.conf
chmod +x run
ln -s /usr/local/srs /service/srs
有人会问,supervise监控进程启动,那么supervise自身挂掉了怎么办?
其实supervise自身是有监控的,它的监控是通过/etc/inittab里面的respawn来的
SV:123456:respawn:/command/svscanboot
16.sed 引用变量方法(内容从http://blog.163.com/wf_shunqiziran/blog/static/17630720920122654616641/ 拷贝过来的 )
一般在sed 中替换都用单引号,如下边
sed -in-place ‘s/8080/8001/g’ /home/work/server.xml
但是如果需要把8001改成变量,如
sed -in-place ’s/8080/$port/g‘ /home/work/server.xml
这样就不成功。
此时需要把单引号改成双引号,如下边例子
$port=8001
sed -in-place "s/8080/$port/g" /home/work/server.xml
17.FFMPEG 视频旋转设置
(摘抄自:http://www.cnblogs.com/rubekid/p/3765879.html)
fmpeg -i inputfile.mp4 -vf "transpose=1" outputfile.mp4
0=90CounterCLockwise and Vertical Flip (default)
1=90Clockwise
2=90CounterClockwise
3=90Clockwise and Vertical Flip
旋转180度可用 transpose=2,transpose=2
去掉metadata 中的rotate 属性
-metadata:s:v:0 rotate=0
18.sed截取域名例子
19.ats 推送自定义头部给源
例子:
cond %{SEND_REQUEST_HDR_HOOK} ##匹配回源的钩子函数,默认是ats响应给请求的钩子函数
cond %{CLIENT-HEADER:Host} /xxx.com/ ##条件判断
set-header sslckd ready ##添加头部
cond %{SEND_REQUEST_HDR_HOOK}
cond %{CLIENT-HEADER:Host} /(.*).xxx.com/
set-header sslckd ready
ats 头部钩子函数参考:https://docs.trafficserver.apache.org/en/latest/_images/graphviz-162e3dfba4a206d8ae260da270e5b5705ae5d64b.png
20.keystore 提取密钥证书
1. keytool -importkeystore -srckeystore servercc.keystore -destkeystore tmp.p12 -srcstoretype JKS -deststoretype PKCS12
2. openssl pkcs12 -in tmp.p12 -nodes -out tmp.rsa.pem
3. cat tmp.rsa.pem