說明:所有日常中遇到的一兩句話就能解決的問題,都將記錄在這(長期更新)
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