常用命令
每秒打印一下某个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
有问题请联系hudcan@sina.com
个人网站:http://ext.123cc.cc

浙公网安备 33010602011771号