常用命令

每秒打印一下某个key的值

while true; do     echo -n "$(date '+%Y-%m-%d %H:%M:%S') - ";     ./redis-cli -h 192.168.104.206 -p 11207 -a 123456 -n 14 GET key1;     sleep 1; done

redis 监控某个key 被谁修改

./redis-cli -h 192.168.104.206 -p 11207 -a 123456 -n 14 monitor | grep "SET" | grep key1

redis 哨兵主从模式 手动切换主从

使用 redis-cli 连接到任意一个哨兵实例。例如:
redis-cli -h 192.168.0.8 -p 12207
 
查看当前 master 
sentinel masters
 
切换主从 
sentinel failover mymaster

tcpdump 获取80 端口 http请求内容

tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' -n -s 0 -A

离线安装 tcpdump

参考链接:https://blog.csdn.net/guoYLong/article/details/135284218
离线包下载地址(不包括gcc):
https://files.cnblogs.com/files/mysgk/m4-1.4.19.tar.gz?t=1748394587&download=true
https://files.cnblogs.com/files/mysgk/bison-3.7.6.tar.gz?t=1748394597&download=true
https://files.cnblogs.com/files/mysgk/flex-2.6.4.tar.gz?t=1748394871&download=true
https://files.cnblogs.com/files/mysgk/libpcap-1.10.4.tar.gz?t=1748394594&download=true
https://files.cnblogs.com/files/mysgk/tcpdump-4.99.3.tar.gz?t=1748394580&download=true

strace 获取某进程发出的请求

strace -p 10095 -q -f  -s 10000 -e trace=network

查找与替换

查找当前目录 log 文件 中含有 关键字的 文件
find -name '*.py'| xargs grep 'webssh'   (grep -l 不输出内容,只输出文件名)
find /opt/  -name '*.py'| xargs grep 'webssh'
find /opt/  -name 'chunk-1a9da4da.c92e4ead.js'| xargs grep 'webssh'
替换
find -name '*.py' | xargs perl -pi -e 's|abc|efg|g'
find /opt/  -name '*.py' | xargs perl -pi -e 's|abc|efg|g'
find /opt/  -name 'chunk-1a9da4da.c92e4ead.js' | xargs perl -pi -e 's|abc|efg|g'

正则

查找不包含某个字符串
^((?!abc).)*$

循环删除某目录下文件和文件夹

find /tmp  -exec rm -rf {} \; 2>/dev/null

curl

循环请求并打印耗时
for ((i=1; i<=10000; i++))
do
    echo "这是第$i次循环"
curl -w "%{time_total}" -o /dev/null -s -L    'http://10.244.100.220:8089/aaa/bbb' -X POST -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0' -H 'Accept: application/json' -H 'Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2' -H 'Accept-Encoding: gzip, deflate' -H 'Content-Type: application/json;charset=utf-8'   -H Token: fwrLZKLNJ8EO3gNDEUuL5g-OKk3kw' -H 'SystemCode: YHHDCCDR'    -H 'Connection: keep-alive'   --data '{ "userId":"111", "userName":"222" }'
done

nginx

日志
http{
  log_format apm '[$time_local]\tclient=$remote_addr\t'
               'request="$request"\t request_length=$request_length\t'
               'http_referer="$http_referer"\t'
               'bytes_sent=$bytes_sent\t'
               'body_bytes_sent=$body_bytes_sent\t'               
               'upstream_addr=$upstream_addr\t'
               'upstream_status=$upstream_status\t'
               'document_root="$document_root"\t'
               'fastcgi_script_name="$fastcgi_script_name"\t'
               'request_filename="$request_filename"\t'
               'request_time=$request_time\t'
               'upstream_response_time=$upstream_response_time\t'
               'upstream_connect_time=$upstream_connect_time\t'
               'upstream_header_time=$upstream_header_time\t'
                #'user_agent="$http_user_agent"\t'
                #'cookie="$http_cookie"\t'
                #'request_body="$request_body"\t'
                ;
    access_log  /opt/logs/nginx/access.log  apm;
}
nginx location 匹配
第一种:proxy_pass 加"/"
location  /wddd/ {
    proxy_pass  http://127.0.0.1:8080/;
}
请求地址: http://127.0.0.1:8080/wddd/
代理地址:http://127.0.0.1:8080/index.html

第二种: proxy_pass 不加"/"
location  /wddd/ {        
    proxy_pass http://127.0.0.1:8080;
}
请求地址: http://127.0.0.1:8080/wddd/
代理地址:http://127.0.0.1:8080/wddd/index.html

第三种: proxy_pass 增加目录 并且 加"/"
location  /wddd/ {        
    proxy_pass http://127.0.0.1:8080/sun/;
}
请求地址: http://127.0.0.1:8080/wddd/
代理地址:http://127.0.0.1:8080/sun/index.html

第四种:proxy_pass 增加目录 并且 不加"/"
location  /wddd/ {
    proxy_pass http://127.0.0.1:8080/sun;
}
请求地址: http://127.0.0.1:8080/wddd/
代理地址:http://127.0.0.1:8080/sunindex.html


总结
location目录后加"/",只能匹配目录,不加“/”不仅可以匹配目录还对目录进行模糊匹配。
而proxy_pass无论加不加“/”,代理跳转地址都直接拼接。 
https://zhuanlan.zhihu.com/p/386312442

nginx 使用代理访问

Nginx 本身不支持通过环境变量自动走 HTTP 代理。但是可以:

使用 Nginx 的 proxy_pass 链式代理(即让 Nginx 把请求转发给另一个代理服务器):

location / {
    proxy_pass http://your-proxy-server:port;
    proxy_set_header Host $http_host;
}
然后在 your-proxy-server 上配置真正的上游。

firewall-cmd 端口管理

1. 开放/删除端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --remove-port=80/tcp --permanent
2. 查询某个/全部端口
firewall-cmd --query-port=80/tcp
firewall-cmd --list-port
3. 重启防火墙
firewall-cmd --reload
4. 开启/关闭防火墙
systemctl start firewalld.service
systemctl stop firewalld.service
5. 加入/禁止开机启动
systemctl enable firewalld.service
systemctl disable firewalld.service
posted @ 2022-04-20 09:18  mysgk  阅读(135)  评论(0)    收藏  举报