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' /etc/system-re ...
docker官方私有仓库registry部署与使用
一般来说大家用容器镜像都选择harbor,有个管理界面,还支持权限控制、漏洞扫描等,但是我公司有个客户的环境只允许通过跳板机登录Linux机器,没法使用浏览器,另外也只是需要一个简单一点的、好维护的仓库,找了一下,这个比较简单。如果需要更专业的私有镜像仓库,可以选择harbor(免费)或者jFrog家的(收费)
生成CA证书12345678910# 私钥openssl genrsa -out ca.key 4096# 证书请求openssl req -utf8 -new -x509 -days 3650 -key ca.key -out ca.crt -subj '/C=CN/ST=Shanghai/L=Pudong/O=iuxt/OU=张理坤/CN=*.i.com/emailAddress=iuxt@qq.com'# 生成私钥openssl genrsa -out server.key 4096openssl req -utf8 -new -key server.key -out server.csr -subj '/C=CN/ST=Shanghai/L ...
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 '{"imagePullSe ...
解决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 /usr/lib64/libtinfo. ...
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内核版本: 5.15.146.1-2WSLg 版本: 1.0.60MSRDC 版本: 1.2.510 ...
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: / # 访问 https://zahui.fan/ta ...
RustDesk服务器搭建记录
RustDesk是一个远程控制工具,开源跨平台,可以使用官方的服务器,也可以自建服务器使用。服务器分为开源版oss和付费版pro,我使用的是开源版。
部署服务器服务端是Golang开发的,单文件直接运行即可。你可以使用你喜欢的进程管理工具来管理,比如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目录)下的文件:
文件名
说明
db ...
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 = [Dj ...
使用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 kube-system g ...