envsubst替换环境变量
Envsubst用shell格式字符串中的值替换环境变量。要替换的变量应位于${var}或$var格式。 123456789101112替换环境变量stdin输出到stdout:echo '$HOME' | envsubst将输入文件中的环境变量替换为stdout:envsubst < path/to/input_file将输入文件中的环境变量替换为文件,并将其输出到新文件中:envsubst < path/to/input_file > path/to/output_file用空格分隔的列表,替换输入文件中的环境变量:envsubst '$USER $SHELL $HOME' < path/to/input_fileenvsubst '$USER $SHELL $HOME' < xxx.yaml > xxxx1.yaml
yum源更新报错:https://mirrors.aliyun.com/centos/7
具体问题: 在做yum源更新时候, 报如下错误1234567891011Determining fastest mirrors * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.comhttp://mirrors.aliyun.com/centos/%24releasever/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not FoundTrying other mirror.To address this issue please refer to the below wiki article https://wiki.centos.org/yum-errorsIf above article doesn't help to resolve this issue please use...
镜像清理脚本
12345678910111213141516171819202122232425262728293031323334#!/usr/bin/env bash#删除过期镜像,保留最新${retain}个版本(需要确保版本号确实是越新的越大)retain=1cdate=$(date '+%Y-%m-%d_%H:%M:%S')# 镜像中的关键字keyword="docker.io"# 先删除异常停止的docker容器docker rm -f $(docker ps -a | grep Exited | awk '{print $1}')# 先删除名称或标签为none的镜像docker rmi -f $(docker images | grep '<none>' | awk '{print $3}')for service in $(docker images | grep...
uniq命令
语法1uniq [-cdu][-f<栏位>][-s<字符位置>][-w<字符位置>][--help][--version][输入文件][输出文件] 参数: -c或--count 在每列旁边显示该行重复出现的次数。 -d或--repeated 仅显示重复出现的行列。 -f<栏位>或--skip-fields=<栏位> 忽略比较指定的栏位。 -s<字符位置>或--skip-chars=<字符位置> 忽略比较指定的字符。 -u或--unique 仅显示出一次的行列。 -w<字符位置>或--check-chars=<字符位置> 指定要比较的字符。 --help 显示帮助。 --version 显示版本信息。 [输入文件] 指定已排序好的文本文件。如果不指定此项,则从标准读取数据; [输出文件] 指定输出的文件。如果不指定此选项,则将内容显示到标准输出设备(显示终端)。
内存,磁盘处理
buff/cache内存占用过多(定时任务,脚本) 找一个目录,然后创建脚本文件--touch cleanCache.sh 用vi编辑--vi cleanCache.sh 添加如下内容 12345678910111213141516#!/bin/bashused=`free -m | awk 'NR==2' | awk '{print $3}'`free=`free -m | awk 'NR==2' | awk '{print $4}'`echo "==========================="echo "内存使用情况 | [使用了:${used}MB][剩余:${free}MB]"if [ $free -le 500 ] ; then sync && echo 1 >...
利用openssl生成自签证书
openssl安装及生成证书检查是否已经安装 OpenSSLopenssl version 没有安装的话执行以下命令安装:yum -y install openssl openssl-devel 生成证书方式1: 一键脚本生成(支持泛域名)123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157#!/bin/bash...
利用nginx实现客户端证书认证
生成crt/key1略 生成p12证书1openssl pkcs12 -export -clcerts -in rancher.sopei.k3s.cn.crt -inkey rancher.sopei.k3s.cn.key -out s.p12 需要把证书打包成p12格式的证书文件,然后在客户端的电脑上导入。同样的在生成p12文件的时候我们最好添加一个密码保护,这样就算证书泄露了也不会导致安全问题。 配置nginx1234# 客户端公钥证书ssl_client_certificate /path/to/root.crt;# 开启客户端证书验证ssl_verify_client on; Nginx配置Https单向认证、双向认证以及多证书配置: https://juejin.cn/post/6925361984183631885
nginx_location优先级
nginx location语法第一优先级 = : 完全匹配。如果这个查询匹配,那么将停止搜索并立即处理此请求。 第二优先级 ^~ : 普通字符匹配。优先使用前缀匹配。如果匹配成功,则不再匹配其他location。 第三优先级 ~ : 区分大小写匹配 第三优先级 !~ : 区分大小写不匹配 第三优先级 ~* : 不区分大小写匹配 第三优先级 !~* : 不区分大小写不匹配 第四优先级 /{uri} : 不带任何修饰符,也表示前缀匹配,但是在正则匹配之后。 第四优先级 / : 通用匹配,任何未匹配到其它location的请求都会匹配到,相当于switch中的default。 123456789101112131415161718192021222324location = / {# 只匹配 / 查询。}location / {# 匹配任何查询,因为所有请求都已 / 开头。但是正则表达式规则和长的块规则将被优先和查询匹配。}location ^~ /p_w_picpaths/ {# 匹配任何已...
nginx大全学习网站
nginx大全学习网站
nginx的server_name
listen 后可以指定 IP:port的IP地址和端口 仅IP(端口将默认为80) 仅port,将监听所有接口的这个port 到某个Unix socket的路径(在服务器间转发请求的时候会用到) 在将listen的值与请求进行匹配之前,Nginx会先将listen的值中所缺省的部分补充完整。然后将优先匹配准确的IP,如果不存在完全准确匹配的IP才会匹配到0.0.0.0,如果有多个IP:port匹配度相同,Nginx将会继续检查server_name server_name 指令Nginx将server_name与请求头中的Host进行匹配,匹配的顺序: 优先选择第一个精确匹配到的block。12345server { listen 80; server_name host.example.com; ...} 选择以*开头的进行匹配,并优先选择最长的。12345server { listen 80; server_name *.example.com; ...