Linux Shell kubectl 自动补全
一直使用 kubectl 操作 k8s 集群,每次都需要查看 pod 名字、查看 service 名字等,比较麻烦,看了 kubectl 官方就支持 bash 自动补全,所以记录一下。 官方文档地址:https://kubernetes.io/zh/docs/tasks/tools/included/optional-kubectl-configs-bash-linux/ 本文以 Ubuntu20.04 下的 kubectl 为例 Bash 自动补全kubectl 的 Bash 补全脚本可以用命令 kubectl completion bash 生成。 在 shell 中导入(Sourcing)补全脚本,将启用 kubectl 自动补全功能。 然而,补全脚本依赖于工具 bash-completion, 所以要先安装它(可以用命令 type _init_completion 检查 bash-completion 是否已安装)。 安装 bash-completion很多包管理工具均支持 bash-completion。 可以通过 apt-get install bash-comple...
Nginx使用module_vts模块来做监控
最近我们想要用 Prometheus 来监控 Nginx 的状态,所以看了一下有个 module 可以支持。项目地址在:https://github.com/vozlt/nginx-module-vts.git 重新编译 Nginx首先执行 nginx -V 查看编译参数,记录一下, 比如 然后需要 Nginx 源码包和当前安装的 Nginx 版本相同 下载 nginx_module_vts 进入 nginx 源码目录 开始编译,编译时增加一条参数 结合上面记录的编译参数,完整的编译参数是: 开始编译 然后将编译好的二进制文件替换现有的 nginx 注:nginx-module-vts 模块从 0.1.17+ 版本之后原生支持 prometheus 数据格式,可跳过 nginx-vts-exporter 的安装。 之前没安装过 nginx 的可以直接 make && make install 开启监控 监控接口为:
正则表达式入门
在线测试正则表达式: https://c.runoob.com/front-end/854/ 字符匹配普通字符:普通字符按照字面意义进行匹配,例如匹配字母 “a” 将匹配到文本中的 “a” 字符。 元字符:元字符具有特殊的含义,例如 \d 匹配任意数字字符,\w 匹配任意字母数字字符,. 匹配任意字符(除了换行符)等。 量词 字符类 边界匹配 分组和捕获 特殊字符 例子比如做用户名验证: 字母 a-z 数字 0-9 下划线 中划线 结尾
Ansible系列之条件判断
在 ansible 中,使用 when 关键字来做条件判断,when 关键字即为当条件成功就执行此条任务。在 when 判断中不需要加 {{}} 字符串判断 判断符 说明 == 判断字符串是否相同,相同为真,不同为假 lower 是否全是小写,是为真,不是为假 upper 是否是纯大写,是为真,不是为假 in 判断字符串是否在另一个字符串中,是为真,不是为假 判断系统,不支持的系统直接报错退出 ansible_distribution 是 ansible 自带变量,查看变量可以用 ansible localhost -m setup 命令。 判断字符串大小写 判断字符串的包含关系 运算符判断在 ansible 中,我们可以使用如下比较运算符: 比较运算符 说明 == 比较两个对象是否相等,相等为真 != 比较两个对象是否不等,不等为真 > 比较两个值的大小,如果左边的值大于右边的值,则为真 < 比较两个值的大小,如果左边的值小于右边的值,则为真 >&...
Ubuntu安装配置vncserver
VNC(Virtual Network Computing)是一种远程桌面协议。 vnc 大致可以分为两种,一种直接查看 TTY 上正在显示的桌面(和插上显示器显示的一致),另一种是创建一个新的桌面(即 可以在一台 linux 上打开若干个桌面供若干用户使用)常用的 vnc 服务器有:x11vnc tigervnc tightvnc 我的系统是:ubuntu22.04, 如果你不是这个系统,可能需要做一些修改。参考官方文档:https://help.ubuntu.com/community/VNC/Servers 本文配置直接转发桌面显示。 直接转发桌面我这里使用的是 x11vnc , 创建 vnc 虚拟桌面请看: 香橙派配置VNC Server 安装服务端 创建密码文件 密码文件创建在: ~/.vnc/passwd 通过 systemd 启动 其他x11vnc 包含一个 /usr/share/applications/x11vnc.desktop 桌面文件,你可以在桌面上找到 x11 vnc 的图标,然后通过图形界面来配置。比如:
安装和配置samba共享
在 windows 平台创建 smb 共享是一件很方便的事情,右键共享即可,一直没有关心 linux 平台的 smb 服务,最近家里有一台装了 ubuntu 的笔记本,想放在角落里做 nas 用,所以看看如何搭建 smb 共享。 安装服务 如果不小心删除了配置文件,可以通过: 来重新生成 创建 samba 用户samba 使用 Linux 的用户和权限系统,但是有自己的认证机制。 samba 用户首先要是一个 Linux 用户,不然是创建不成功的。 创建一个 Linux 用户 -m 是在 home 目录自动创建一个 zhanglikun 目录 创建一个 smb 用户 手动输入两遍密码即可,其他操作可以通过 smbpass -h 查看 创建共享目录使用 zhanglikun 用户在家目录创建一个共享目录 修改配置文件 保证 server role 是 standalone server(默认情况下就是如此) 添加共享配置 选项的含义如下: 配置项 作用 [samba] 和 [public] 登录时将使用的共享名称。 path 分享的路径...
给 Ubuntu 加密 Home 目录
Ubuntu 在安装的时候是可以进行全盘加密的,但是全盘加密没法像 Windows 做的那样无感(开机需要输入密码才能进入进入系统,macOS 的 FileVault 也是如此,Windows 的 BitLocker 是可以利用 TPM 进行自动解密,使用体验完全和不加密一样,微软牛逼)在一些需要无人值守的情况下就不太好用,比如使用远程桌面连接机器,然后重启了远程机器,你会发现再也连不上了,因为需要先解密磁盘才能启动操作系统。 安装工具加密 Home 文件夹,需要安装 eCryptfs: 开始加密加密切换到 root 用户执行,或者你也可以创建一个管理员账号来执行。 过程中需要输入你加密的用户的用户名和密码。加密后会创建临时备份目录,如果可以正常进入桌面,可以把备份目录删除,备份目录在 /home/ 下。 可以执行以下命令来记录你随机生成的密码: 加密交换区加密交换分区可能会妨碍休眠和挂起功能
Hyper-V 自定义内部网络网段和IP地址
开始之前首先如果是仅仅想要主机和虚拟机进行数据互通,其实不需要固定 IP,直接通过计算机名就可以互相访问。 Hyper-V 网络模式外部虚拟网络: 类似于 VMware 的桥接网络模式, 在希望允许虚拟机与外部服务器和管理操作系统(有时称为父分区)进行通信时,可以使用此类型的虚拟网络。此类型的虚拟网络还允许位于同一物理服务器上的虚拟机互相通信。 内部虚拟网络: 类似于 VMware 的 NAT 网络模式, 在希望允许同一物理服务器上的虚拟机与虚拟机和管理操作系统之间进行通信时,可以使用此类型的虚拟网络。内部虚拟网络是一种未绑定到物理网络适配器的虚拟网络。它通常用来构建从管理操作系统连接到虚拟机所需的测试环境。 专用虚拟网络: 在希望只允许同一物理服务器上的虚拟机之间进行通信时,可以使用此类型的虚拟网络。专用虚拟网络是一种无需在管理操作系统中装有虚拟网络适配器的虚拟网络。在希望将虚拟机从管理操作系统以及外部网络中的网络通信中分离出来时,通常会使用专用虚拟网络。 由于 Hyper-V 自带的 Default Switch 在每次电脑重启的时候会自动分配一个未使用的网段, 无法达到固定...
Linux的crontab无法执行的一些问题
crontab 是 linux 平台的定时任务系统,不过有时候可以运行的命令或脚本在 crontab 里面就是不运行,下面找了一些可能的原因以及解决方案。 看不到日志一般来说,crontab 的任务控制台输出会打到 /var/spool/mail/<username> 里面,然后通过 email 发出去crontab 服务的运行的日志一般都在 /var/log/cron 里面,这个日志可以看到任务有没有执行 如果想将命令输出内容重定向到其他文件,可以在命令后添加 >> xxx.log 2>&1, 不加 2>&1 错误日志看不到 环境变量的问题crontab 环境变量和登录 shell 查看的环境变量是不同的,比如 查看一下: 比系统的环境变量要少很多,比如 PATH 只有 /usr/bin 和 /bin, 安装在其他位置的程序是会 command not found 的,解决方法有两个: 写绝对路径 但是这个方法对于很多脚本比较麻烦,因为脚本里面可能用的是相对路径也会 command not found ...
两台计算机直接传输文件的几种方式
这里的计算机指的是广义上的计算机,包括但不限于家用电脑、服务器、手机、树莓派等等 scp scp 使用的是 SSH 端口 ftp ftp 控制端口是 21,用于账号密码认证以及协商端口等。主动模式:数据端口是 20被动模式:客户端可服务端协商一个端口 使用 Python 简单搭建一个 ftp 服务器 sftp sftp 是安全的 ftp,走的是 SSH 协议 sftp 常用命令 命令 功能 cd path Change remote directory to ‘path’ get [-afpR] remote [local] Download file help Display this help text lcd path Change local directory to ‘path’ lls [ls-options [path]] Display local directory listing lmkdir path Create local directory ln [-s] oldpath newpath Link rem...

