说明:所有日常中遇到的一两句话就能解决的问题,都将记录在这(长期更新)


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截取域名例子

wKioL1k3fjCSuGNAAABuHgMX2FI477.png


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