centos删除swap后无法启动
删除了 CentOS 的 swap 分区后,重启系统报错,提示 Warning: /dev/centos/swap does not exist,如图: 先挂载 /boot 分区, 不确定就一个一个挂载看看里面的文件对不对,正常情况下 /boot 分区大小在 1GB 以内 123mkdir /tmp/bootmount /dev/sda1 /tmp/bootcd /tmp/boot vi grub2/grub.cfg删除 rd.lvm.lv=centos/swap 这个配置, 然后: 1umount /tmp/boot 这样系统就可以正常启动了,但是还没完 /boot 里的文件都是自动生成的,每次更新内核或者手动执行 grub2-mkconfig, 会被覆盖掉,所以还需要修改原始的 grub 配置文件, vim /etc/default/grub 1234567GRUB_TIMEOUT=5GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g'...
docker官方私有仓库registry部署与使用
一般来说大家用容器镜像都选择 harbor,有个管理界面,还支持权限控制、漏洞扫描等,但是我公司有个客户的环境只允许通过跳板机登录 Linux 机器,没法使用浏览器,另外也只是需要一个简单一点的、好维护的仓库,找了一下,这个比较简单。如果需要更专业的私有镜像仓库,可以选择 harbor(免费)或者 jFrog 家的(收费) 自签名证书123456mkdir -p certsopenssl req \ -newkey rsa:4096 -nodes -sha256 -keyout certs/i.com.key \ -addext "subjectAltName = DNS:hub.i.com" \ -x509 -days 3650 -out certs/i.com.crt docker 信任证书将文件复制到每个 Docker 上 主机。您无需重新启动 Docker。 12mkdir -p /etc/docker/certs.d/hub.i.com/cp i.com.crt...
Kubernetes同一个namespace共用镜像secret
配置一个全局的镜像拉取密钥, 后续拉镜像就不用每个 deployment 单独配置了。 在每个 namespace 下都有一个默认的 service account, 假设命名空间是 test 使用 kubectl get sa -n test 查看 查看 serviceaccount 信息 1kubectl describe sa -n test Image pull secrets 是此 namespace 下拉取镜像的秘钥 1.创建 secret 1kubectl create secret -p docker-registry registrykey --namespace=test --docker-username=<harbor_user> --docker-password=<harbor_password> --docker-server=<harbor_url> 2.配置进 service account 1kubectl patch serviceaccount default -p...
解决MySQL 5.7在Redhat 9中启动报错:libncurses.so.5和libtinfo.so.5缺失问题
采用二进制安装 MySQL 服务的时候, 之前在 CentOS 7 系统中,直接 yum 安装依赖包就可以正常运行,但是到了 RHEL 9 系统下, 会报错找不到 libncurses.so.5, 根据经验需要查找一下这个库属于哪个包: 1yum provides libncurses.so.5 找不到这个包 不考虑版本,再次搜索 1yum provides libncurses.so.* 发现可以找到 6.2 的版本, 安装这个包 1yum install ncurses-libs 查看这个 rpm 包包含的文件: 1rpm -ql ncurses-libs | grep libncurses.so 此时需要做一个软链接(前提是此版本可以向后兼容,至少在 MySQL 5.7 这里运行是没问题的。) 1ln -s /usr/lib64/libncurses.so.6 /usr/lib64/libncurses.so.5 修改完成,报另一个错误了: 同样的方法, 再创建一个软链接: 1ln -s /usr/lib64/libtinfo.so.6...
MySQL基于GTID的主从复制
没开启 GTID 的 MySQL 数据库增加从库请看:优雅地给正在运行的MySQL添加从库 自动同步连接主库 (方法一)适用于 master 也是新建不久的情况,如果你的 master 所有的 binlog 还在,可以安装 slave,slave 直接 change master to 到 master 端。原理是直接获取 master 所有的 GTID 并执行。 优点:简单方便。不需要备份主库再在从库还原。缺点:如果 binlog 太多,数据完全同步需要时间较长。如果旧的 binlog 已经被清理了,则不能正常同步。 在从库执行: 1234567CHANGE MASTER TOMASTER_HOST='10.0.0.11',MASTER_USER='root',MASTER_PASSWORD='Vb6CAEJqqtcmKndiAkEl',MASTER_PORT=3306,MASTER_CONNECT_RETRY=10,MASTER_AUTO_POSITION=1; master_auto_position=1...
WSL新的网络模式-mirrored镜像网络
刚开始我用 Hyper-V 自定义内部网络网段和IP地址 配置 Hyper-V 并创建了几台虚拟机, 但是和 WSL 的网络不通, 解决方案可以是将 Hyper-V 虚拟机只接使用 WSL 的网络适配器。不过 2023 年 9 月的 WSL 更新添加了一些新的实验性功能,其中包括一些关于新的网络模式“镜像”。镜像网络带来了一些实用的特性,例如将 WSL 中的服务开放到局域网(之前是 NAT 网络,只有主机可以通过 localhost 访问)。更新日志中提到,镜像网络带来的新特性如下: IPv6 支持 在 Linux 中通过 127.0.0.1 访问 Windows 服务 通过局域网直接连接 WSL 对 VPN 更好的兼容性 多播支持 安装使用首先,这项特性需要 22621.2359 及以上版本的 Windows 11 以及 2.0 以上版本的 WSL。使用 wsl --version 命令可以检查是否符合需求,wsl --update 命令可以更新 WSL。 12345678C:\Users\iuxt>wsl --versionWSL 版本: 2.1.5.0内核版本:...
Hexo博客更换url结构后配置自动跳转
因为修改过博客的链接规则, 原来的链接是 https://zahui.fan/xxx/ 修改成了 https://zahui.fan/posts/xxx/ 或者删除了部分标签,造成了搜索引擎内之前收录的一些链接都变成了 404,不利于 SEO 如果是 hugo,可以查看这篇文章:Hugo博客批量更换url结构 在 hexo 中我们可以使用 hexo-generator-alias 对文章进行跳转。 安装 hexo-generator-alias1npm install hexo-generator-alias --save GitHub 地址: https://github.com/hexojs/hexo-generator-alias 全局配置比如 tags、category 等这种不存在对应的 markdown 文件, 可以配置在全局配置 _config.yml 中: 123456alias: # 访问 https://zahui.fan/index.html 跳转到 https://zahui.fan/ index.html: / # 访问...
RustDesk服务器搭建记录
RustDesk 是一个远程控制工具,开源跨平台,可以使用官方的服务器,也可以自建服务器使用。服务器分为开源版 oss 和付费版 pro,我使用的是开源版。 部署服务器服务端是 rust 开发的,单文件直接运行即可。你可以使用你喜欢的进程管理工具来管理,比如 nodejs 写的 pm2, Python 写的 supervisor, 或者使用 docker 运行,我选择 docker。 启动命令1234567891011docker run -td --name hbbs \ -v ./data:/root \ --net=host \ --restart unless-stopped \ rustdesk/rustdesk-server hbbsdocker run -td --name hbbr \ -v ./data:/root \ --net=host \ --restart unless-stopped \ rustdesk/rustdesk-server hbbr 文件说明data 目录(容器内的 root...
Django Restframework 实现根据字段过滤
安装1pip install django-filter 注册进 Djangovim settings.py 12345678910INSTALLED_APPS = [ ... 'django_filters',]# 配置在这里的是系统的默认设置,也可以在视图集中单独指定REST_FRAMEWORK = { # 过滤器默认后端 'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend'],} 视图中单独指定12345678910# 你也可以将其单独配置在特定的视图中: from django_filters.rest_framework import DjangoFilterBackend class ArticleViewSet(viewsets.ModelViewSet): # 设置过滤的后端,不设置则走上面的默认配置。 filter_backends =...
使用kubeadm部署的集群证书过期后处理
之前使用 kubeadm 部署的集群,突然有一天执行 kubectl get pod 提示: 1Unable to connect to the server: x509: certificate has expired or is not yet valid: current time 2024-03-04T14:26:31+08:00 is after 2024-02-27T08:36:50Z 意思是证书有效期到 2024-02-27T08:36:50Z, 已经超过了证书有效期了。 查看证书有效期123456789101112131415161718192021[root@ALSHBSITL00061 kubernetes]# kubeadm certs check-expiration[check-expiration] Reading configuration from the cluster...[check-expiration] FYI: You can look at this config file with 'kubectl -n...