shell脚本获取自身的信息
写 shell 脚本, 有时候需要获取一些信息, 比如这个脚本的名字,脚本所在的目录,脚本的绝对路径, 这个脚本的 pid, 参数等。 变量 说明 $0 脚本自身的路径(执行的时候调用路径) $1 第一个参数 $? 上一个脚本的返回值,0为正常 $* 所有的参数 $# 参数的个数 $$ 当前脚本的pid $_ 上一条命令的参数 获取脚本的文件名$0 是脚本的路径,这个路径有可能是相对路径,那么可以使用 dirname 和 basename 配合来获取脚本绝对路径 12345# 脚本所在的目录的绝对路径echo "$(cd $(dirname $0); pwd)"# 脚本的文件名echo $(basename $0) 获取脚本的绝对路径12345# 获取脚本的绝对路径DIR=$(cd $(dirname $0); pwd)FILE=$(basename $0)echo "${DIR}/${FILE}" 进入临时目录12# $_...
Linux大文件分割与合并
服务器上有个文件需要下载到本地, 但是文件较大, 我们都是通过 jumpserver 连接的, 通过 jumpserver 下载难免会遇到网络波动等导致下载失败, 我们可以通过分割大文件成一个个小文件, 然后下载后再在本地合并. 用到的命令是 split split 分割大文件1split -b 1024M -d -a 3 2023.tar.gz tmp. 参数说明: 参数 说明 -b 指定每个文件的大小, 支持 K M G -d 指定后缀编码为数字,默认编码为字母 -a 指定后缀长度,3 表示 3 位数, 比如上面的命令, 生成的文件就是 tmp.000 … ./tmp. 这个是生成的文件名前面的部分 如果报错 split: output file suffixes exhausted 说明后缀不够用了, 比如参数 -a 1 支持的后缀为 0 - 9 , 如果文件太大, 超过了 9, 就会报这个错. 使用 cat 合并大文件1cat tmp.* > 2023.tar.gz 合并完成再验证一下 MD5 值,...
Ubuntu 22.04 内核相关操作
文章内容在 Ubuntu 22.04 系统下测试成功, 版本相差过大请自测。 开机显示启动项新版 Ubuntu 好像默认不显示启动项而直接进入系统了,可以通过修改 /etc/default/grub 来实现开机显示启动选项列表 12345# 注释掉这一行# GRUB_TIMEOUT_STYLE=hidden# 这一行是在grub界面等待的时间,单位sGRUB_TIMEOUT=30 修改完成后执行 sudo update-grub 更新 grub 配置 下面两种方式二选一即可。 更换使用的内核版本(通过启动项 uuid 指定方式)查看当前在用的内核版本1uname -r 6.5.0-14-generic 查看系统启动项12345# 查看'Advanced options for Ubuntu'选项的uuidgrep "submenu 'Advanced options for Ubuntu'" /boot/grub/grub.cfg | awk -F\' '{print...
获取Kubernetes的token
获取 admin 的 token如果有这个 secret, 可以直接查看 token 1kubectl -n kube-system get secret admin-token-nwphb -o jsonpath={.data.token} | base64 -d 新版 k8s 命令为选择一个现有的 serviceaccount 1kubectl get serviceaccount 使用这个 serviceaccount 创建一个 token(并设置有效期) 1kubectl create token default --duration 10m 新建一个用户获取 token如果考虑到权限没有合适的,或者没有相关的 secret,可以通过创建一个新的用户来获取 token 12345kubectl create serviceaccount admin-sakubectl create clusterrolebinding admin-sa-binding --clusterrole=cluster-admin...
阿里云ACK中Nginx ingress使用CLB上的Https证书
背景: 我们在客户那里部署了一套服务, 服务运行在客户提供的 ACK 集群, 我们删除了客户 ACK 自带的 nginx ingress, 通过自建的方式部署了两套 ingress, 一套绑定了公网 CLB, 一套绑定了内网 CLB, 也就是说是 CLB 转发到 ingress, 然后通过 ingress 转发到其他服务. 现在需要配置 Https 证书, 客户不同意我们配置证书到 ingress, 客户将证书放在了 CLB 上, 给了一个证书 ID 查询阿里云文档阿里云的文档还是很详细, 通过 google 查询到文档地址: 通过Annotation配置传统型负载均衡CLB 具体可以查看这里 HTTPS 请求会在 CLB 层解密,然后以 HTTP 请求的形式发送给后端的 Pod。 配置 LoadBalancer 类型的 Service因为我们的 CLB 是只给 ingress 使用, 所以修改 ingress 的 Service 配置...
Django RestFramework 自定义显示字段
有的时候序列化出来的字段并不是我们想要的, 比如说返回的用户 id,而我们想要返回的是用户名, 这个时候可以用到 django rest framework 的自定义字段功能。 先看一下原始数据1234567891011121314[ { "id": 1, "name": "1", "desc": "sdg", "user": 1 }, { "id": 5, "name": "1", "desc": "sdg", "user": 2 }] 这里 user 显示的是 id, 并不是我们想要的 username 增加一个字段, 显示...
curl常用操作记录
curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。 它的功能非常强大,命令行参数多达几十种。如果熟练的话,完全可以取代 Postman 这一类的图形界面工具。 参考文章: https://www.ruanyifeng.com/blog/2019/09/curl-reference.html 参数-A-A 参数指定客户端的用户代理标头,即 User-Agent。curl 的默认用户代理字符串是 curl/[version]。 12345# 将User-Agent改成 Chrome 浏览器curl -A 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36' https://google.com# 移除User-Agentcurl -A '' https://google.com 也可以通过...
检查域名支持的HTTPS协议版本
使用 NMAP(推荐)依赖于 nmap, nmap 需要安装 1nmap --script ssl-enum-ciphers -p 443 baidu.com 比如 GitHub 只支持 TLS1.2 和 TLS1.3: 在线验证https://myssl.com/ https://www.ssleye.com/ssltool/cipher_suites.html https://www.site24x7.com/zhcn/tools/tls-checker.html 使用 CURL 验证12curl --tlsv1 --tls-max 1.0 https://github.comcurl --tlsv1 --tls-max 1.0 https://www.baidu.com 报错说明不支持当前版本: 1curl: (35) LibreSSL/3.3.6: error:1404B42E:SSL routines:ST_CONNECT:tlsv1 alert protocol version 使用 OpenSSL12345678# 验证TLS1.2openssl...
使用openssl对文件进行加密
使用密码加密12345678# 指定输入和输出文件操作openssl enc -e -aes256 -in test.sh -out enc.sh# 或者使用管道符cat test.sh | openssl enc -e -aes256 -out enc.sh# 压缩后加密tar zcvf - 1.sh | openssl enc -e -aes256 -out temp 使用密码解密12345678# 指定输入和输出文件操作openssl enc -d -aes256 -in enc.sh -out 1.sh# 或者使用管道符进行操作openssl enc -d -aes256 -in enc.sh | tee a.sh# 解密后进行解压openssl enc -d -aes256 -in temp | tar zxvf -
Django RESTframework 自定义Response
比如我想给返回的 json 加上 code/ msg 等信息,可以通过修改 drf 的 response 来实现。 全局生效参考:https://www.cnblogs.com/henryhong/p/djangodrf-zi-ding-yi-shu-ju-fan-hui-ge-shi.html 默认情况12345678910111213141516171819{ "count": 2, "next": null, "previous": null, "results": [ { "id": 2, "url": "http://localhost:8000/api/category/2/", "title": "AAA", ...