使用expect来解决命令交互问题
linux 里面很多命令都是需要人为交互的,对于做成脚本来说,有点不合适了,比如通过密码连接 SSH 必须要在控制台输入密码(安全起见还是用 rsa key),expect 是预期的意思,它可以实现我们预期的结果。 安装12345# ubuntu/debiansudo apt install -y expect # centos/rhelsudo yum install -y ecpect 解释器使用 expect12345678910111213141516#!/usr/bin/expectset IP [lindex $argv 0] # 读取第1个参数设置为 IP 变量set PASSWD [lindex $argv 1] # 读取第2个参数设置为 PASSWD 变量set CMD [lindex $argv 2] # 读取第3个参数设置为 CMD 变量spawn ssh $IP $CMD # spawn 来给命令加壳,以便于断言输出expect { # expect 是断言命令 # 如果读取到屏幕上输出 (yes/no) 信息,则输入...
搭建NFS服务
k8s 集群需要存储,本地测试环境懒得搞些复杂的,开始回忆回忆入门时学的 nfs 的搭建,记录下吧,方便查看 搭建服务器Ubuntu和DebianCentOS和Fedora1sudo apt install -y nfs-kernel-server1sudo yum install -y nfs-utils 1234567891011121314# 创建共享目录sudo mkdir /nfs# 删除权限限制sudo chown -R nobody:nogroup /nfs# RHEL 9 系统# sudo chown -R nobody:nobody /nfs# 修改配置文件echo "/nfs *(rw,sync,no_subtree_check,no_root_squash)" >> /etc/exports# 使配置生效sudo exportfs -a 重启服务 Ubuntu和DebianCentOS 7CentOS 9 或 RHEL 912sudo systemctl restart nfs-serversudo...
Docker不支持中文解决方案
ubuntu 官方镜像默认的字符集支持 C, C.UTF-8, and POSIX 查看容器使用的字符集 12345678910111213141516root@huige-demo-web-0:/var/www/html/forum/files#...
使用python控制windows鼠标和键盘
python 在 windows 下操作键盘鼠标(有点类似于按键精灵),可以使用 PyUserInput 模块,PyUserInput 依赖 pywin32 和 pyHook 模块。pyautogui 感觉很不错,可以实现 PyUserInput 的所有功能,并且可以根据提供的截图来进行图像识别。 PyUserInput安装 PyUserInputPyUserInput 模块安装前需要安装 pywin32 和 pyHook 模块pip install pywin32 pyHook 模块可从这里下载,需要下载对应版本的 whl 文件http://www.lfd.uci.edu/~gohlke/pythonlibs/安装: pip install xxx.whl PyUserInput 模块官网: https://github.com/PyUserInput/PyUserInput 这个模块官方已经不维护了,目前来看 python3.7+win11 还可以用,后续有需要的同学可以看看 Pynput 使用...
快速上手vagrant
vagrant 是一个虚拟机管理工具 (虚拟机编排工具),使用方式有点类似于 docker-compose,这个工具的优势就是可以把手动安装虚拟机这个操作转换成通过代码来控制虚拟机有点类似于使用 dockerfile 来构建 docker 镜像的感觉。 常用命令 命令 作用 vagrant init 生成 vagrantfile 文件 vagrant up 启动虚拟机 vagent halt 关闭虚拟机 vagrant box list 查看安装的 box(虚拟机镜像) vagrant box add centos/7 安装 box(虚拟机镜像) vagrant ssh (hostname) 通过 ssh 连接 常用 vagrantfile批量创建虚拟机123456789101112131415161718192021222324252627282930313233343536# -*- mode: ruby -*-# vi: set ft=ruby :servers = { :client =>...
hexo butterfly 主题使用记录
开始使用nodejs 使用 v20.17.0 版本包管理使用 npm 123456789101112# 初始化主题,第一次需要执行git submodule initgit submodule update# 安装依赖包npm i## 查看效果npx hexo s# 创建新文章npx hexo new "测试文章" 然后将 source/_posts/测试文章.md 移动到对应的分类目录下。 由于 hexo-abbrlink 和 hexo-auto-category 的冲突,需要执行 2 次 npx hexo g 才能正确生成需要的 front matter这个问题已经解决了, 替换成了包 hexo-abbrlink-iuxt 解决了这个问题, 执行 npx hexo g 即可自动生成固定链接和分类 封面图1280 x 720 或者 3:2 的比例 常用 shortcode 记录标签外挂官方文档:...
一个特殊的空格--硬空格
事情的起因我在测试一个 nginx 配置文件,配置文件来自于印象笔记网页版复制(本人用的 linux,没有印象笔记客户端可用),编辑的时候发现了蹊跷: 不过没有太在意,还有一点蹊跷的是 vim 编辑的时候该高亮的地方也不高亮了,接着改好了配置文件后,发现 nginx -t 怎么测试都不通过。 排查问题当然怀疑是 nginx 配置文件的问题,将配置文件复制到 windows 下,使用 notepad++ 编辑(显示所有符号)发现里面的空格并不是空格 真正的空格应该显示的是 .,tab 显示的应该是 ➡️。将这个 “ 空格 “ 复制出来,然后找个在线转换器http://www.hiencode.com/jinzhi.html转换成 16 进制数据,发现是 a0 然后到https://zh.wikipedia.org/wiki/Unicode%E5%AD%97%E7%AC%A6%E5%88%97%E8%A1%A8搜了下 a0,发现是一个叫做不换行空格的东西,又叫硬空格(hard space、fixed space) 用途是禁止换行,常用于 html,比如地址 xx省xx市...
Linux网络设备命名规则及修改
命名规则centos 从 7 开始网卡名称默认不再是熟悉的 eth0、而是类似于 ens33、enps0f0 等rhel7官方文档 这么做的好处是在 Red Hat Enterprise Linux 7 中,udev 支持大量不同的命名方案。默认是根据固件、拓扑及位置信息分配固定名称。这样做的优点是命名可完全自动进行,并可预期,即使添加或删除硬件后也会保留其名称(不会出现重复枚举的情况),同时可顺利更换损坏的硬件。不足之处是,相比传统的名称,比如 eth0 或 wlan0,这些名称有时会比较难理解。例如:enp5s0。 设备命名的过程 /usr/lib/udev/rules.d/60-net.rules 文件中的规则会让 udev 帮助工具 /lib/udev/rename_device 查看所有 /etc/sysconfig/network-scripts/ifcfg-suffix 文件。如果发现包含 HWADDR 条目的 ifcfg 文件与某个接口的 MAC 地址匹配,它会将该接口重命名为 ifcfg 文件中由 DEVICE...
Puppet Server从部署到上线使用
这是一篇 todo 文章,可以快速将 puppetserver 部署起来,经常遇到的坑也会写出来,但是自己不踩吭记忆是没有成长的(不仅仅是收获经验,重要的是增加了学习的能力),如果不缺时间的话,强烈建议看官方文档:https://puppet.com/docs/puppet/7/server/install_from_packages.html 安装 master通过源来安装12sudo rpm -Uvh https://yum.puppet.com/puppet7-release-el-8.noarch.rpmsudo yum install puppetserver 启动 master 服务1sudo systemctl start puppetserver 如果报错 Found master private key '/etc/puppetlabs/puppet/ssl/private_keys/localhost.localdomain.pem' but master public key...
Linux网络管理命令
2009 年 Debian 开发者邮件列表宣布放弃使用缺乏维护的 net-tools 工具包,net-tools 包含历史悠久的 ifconfig, netstat 等网络相关的命令iproute2 用于取代 net-tools,在大部分的发行版都自带了。命令有 ip, ss, net 等命令替代了之前的网络操作命令。 命令对照表 net-tools iproute2 arp -na ip neigh ifconfig ip link ifconfig -a ip addr show ifconfig -s ip -s link ifconfig eth0 up ip link set eth0 up ipmaddr ip maddr iptunnel ip tunnel netstat ss netstat -i ip -s link netstat -g ip maddr netstat -l ss -l netstat -r ip route route add ip route add route...