快速安装Prometheus监控组件
复制粘贴就能用,适用于非容器化安装, k8s环境看这个, 更方便Kubernetes中使用Prometheus对集群节点做监控
安装方式为二进制安装,使用systemd来管理(也可以使用supervisor等进程管理工具)
安装 node_exporter123456789101112131415161718192021[ -d /data/src ] || mkdir -p /data/srccd /data/src/curl -OL -C - https://file.babudiu.com/f/vlsA/node_exporter-1.6.1.linux-amd64.tar.gztar xf node_exporter-1.6.1.linux-amd64.tar.gzln -sf /data/src/node_exporter-1.6.1.linux-amd64 ../node_exportercat >/etc/systemd/system/node_exporter.service <<EOF[Unit]Description=node_exporterDo ...
Dockerfile中ADD文件的路径问题
首先看一个案例
当前目录的文件如下:
12345678[root@devops_build watcher_svr]# tree.├── 1├── 2│ └── 3└── Dockerfile1 directory, 3 files
Dockerfile文件内容如下:
123FROM harbor.ingeek.com/base/node:14.20.1-busterADD * /code/WORKDIR /code
本意是想把当前目录下的所有文件放到容器内的/code目录, 这个时候使用 docker build 后无法启动, 进入容器, 打开/code一看:
123456789[root@devops_build watcher_svr]# docker run -it test bashroot@cb7543054ef2:/code# ls -altotal 12drwxr-xr-x 2 root root 4096 Sep 22 08:47 .drwxr-xr-x 1 root root 4096 Sep 22 08:47 ..-rw-r--r-- 1 root roo ...
Windows下使用bat脚本来新增环境变量
自己创建了一个bin目录用于存放一些exe或者bat用于快速调用, 把它加到PATH环境变量中就可以在任意路径来调用了.
查看环境变量1set PATH
设置环境变量1setx PATH "%PATH%;%USERPROFILE%\bin"
这里需要注意把原有的%PATH%带上, 不然就会覆盖掉PATH变量, %USERPROFILE% 指的是个人文件夹, 我的就是C:\Users\iuxt
完整脚本首先判断一下有没有环境变量, 没有的话就增加, 有的话什么都不做.
123456set path | findstr "%USERPROFILE%\bin" >nul && ( echo 环境变量已存在) || ( echo 环境变量不存在 setx PATH "%PATH%;%USERPROFILE%\bin")
k8s解除service端口限制
我自己写了一个svc的yaml文件,部署的时候报错,不在默认的范围内,默认范围是: 30000-32767
kubectl apply -f nginx-src.yaml
报错:
1The Service "nginx" is invalid: spec.ports[0].nodePort: Invalid value: 80: provided port is not in the valid range. The range of valid ports is 30000-32767
如果是kubeadm部署修改配置文件 vim /etc/kubernetes/manifests/kube-apiserver.yaml
在启动参数里面添加如下一行
1- --service-node-port-range=1-65535
重启 kube-apiserver
1kubectl delete pod -n kube-system kube-apiserver-xxx
使用RedisShake进行Redis迁移
对于自建的redis, 我们可以将rdb/aof文件拷贝到目的redis, 启动恢复, 但是云redis或者某些特殊情况, 比如没有云平台的权限等等情况, 可以使用工具来进行迁移.
RedisShake 是阿里云 Tair 团队 积极维护的一个项目。它的演变可以追溯到其初始版本,该版本是从 redis-port 分支出来的。官方文档https://tair-opensource.github.io/RedisShake/zh/guide/introduction.html
安装12wget https://github.com/tair-opensource/RedisShake/releases/download/v4.0.0/redis-shake-linux-amd64.tar.gztar xf redis-shake-linux-amd64.tar.gz
同步迁移创建一个配置文件 redis_sync.toml
12345678910111213[sync_reader]cluster = false # 是否为集群address = &quo ...
MySQL查询出所有没有主键的表
作者:May22Night链接:https://www.jianshu.com/p/f484c63e5c96
压缩版:1SELECT a.TABLE_SCHEMA,a.TABLE_NAME FROM (SELECT TABLE_SCHEMA,TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA NOT IN('mysql','information_schema','performance_schema','sys','sysdb')) as a LEFT JOIN (SELECT TABLE_SCHEMA,TABLE_NAME FROM information_schema.TABLE_CONSTRAINTS WHERE CONSTRAINT_TYPE='PRIMARY KEY' AND TABLE_SCHEMA NOT IN('mysql','information_ ...
在Windows下实现一个快速转换音乐格式的小工具
搞点歌在车里听,但是早年10w的合资车只能听mp3格式,所以把需要我珍藏的音乐转换成mp3拷进U盘, 转换格式工具当然是选择ffmpeg了。搜了下命令是:
1ffmpeg -i xxx.flac -acodec libmp3lame xxx.mp3
接下来需要做一个稍微自动化一点的工具,比如把flac文件拖放到bat脚本上,就能实现自动转换格式。
完整脚本如下:
12chcp 65001ffmpeg -i "%~s1" -acodec libmp3lame "%~dp0%~n1.mp3"
其中 chcp 65001 是为了防止bat脚本中包含中文导致的乱码。申明脚本编码为UTF-8, 脚本保存的时候也要以UTF-8编码保存, 如果不加 chcp 65001, 那么需要使用windows记事本打开重新保存编码选择ANSI, 因为cmd默认的编码就是GBK
以下是一些常用的代码页。
代码页
说明
65001
UTF-8代码页
950
繁体中文
936
简体中文默认GBK
437
MS-DOS美国英语
另外脚本里用到的变 ...
WSL2 配置记录
基础环境配置更换源使用中科大的源: https://mirrors.ustc.edu.cn/help/ubuntu.html
1sudo sed -i 's@//.*.ubuntu.com@//mirrors.ustc.edu.cn@g' /etc/apt/sources.list
安装常用的包12sudo apt update && sudo apt upgrade -ysudo apt install -y libmysqlclient-dev build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev lrzsz
当前用户免sudo密码1234sudo tee /etc/sudoers.d/iuxt <<-EOF%sudo ALL=(ALL:ALL) NOPAS ...
Linux终端复用器Screen和tmux
参考阮一峰的博客https://www.ruanyifeng.com/blog/2019/10/tmux.html
作用想象一下, 我在自己电脑远程SSH连接服务器, 正在命令行执行mysqldump, 突然(断网\电脑蓝屏)了, 那么终端就断了, mysqldump也就断了, 就需要重新来过. 终端复用器就是创建一个虚拟的终端, 可以挂在后台, 随时想进就进, 还有其他好用的功能, 比如将终端日志保存到文件内.
常用的工具有tmux和screen, tmux类似于screen, 但是功能更强大, screen 的记录日志功能很好用, 两者各有千秋. 另外终端复用器对rz/sz这种工具的兼容性都不好, 建议不要用来进行rz/sz传文件
tmux安装12345# centosyum install -y tmux# ubuntuapt-get install -y tmux
快速使用输入 tmux 即可启动, 在终端下面有一条状态栏, 显示当前的终端编号.
退出输入: exit 或者按下 Ctrl + d查看后台运行的会话: tmux ls进入会话: tmux attach -t 0
...
Jenkins pipeline中正确使用git
看到很多jenkins使用都是直接执行git clone命令, 这么做有以下几个缺点.
需要耗费时间去处理git分支, 代码冲突等工作, 还需要判断是使用 git clone 还是 git pull
账号密码(或者ssh秘钥)需要存储在构建机器上, 如果更换了构建节点, 那么需要重新配置, 即对构建环境有依赖, 构建环境是个黑盒子, 因为你不知道上个维护者在这台构建机器上做了什么.
不受jenkins管理, 比如删除流水线, 拉取的代码任然存在机器上
做个分支选项框是个痛苦的事情将代码交给jenkins管理则省去了这些操作.
使用凭据管理账号密码在 系统管理 – 凭据 – 系统 – 全局凭据 里面增加一个新的凭据
成功后记录一下ID
编写流水线1234567891011121314151617pipeline { agent any parameters { gitParameter branch: '', branchFilter: '.*', defaultValue: '', ...