Shell数学运算
bash 自带的数学运算 不依赖其他包,只要你的 shell 是 bash 1234echo $(( 1 + 1 ))echo $(( 1 - 3 ))echo $(( 10 * 3 ))echo $(( 10 / 3 )) expr expr 可以当计算器用不过它主要还是个计数器 字符串操作12345678# 计算字符串长度expr length "hello world"# 抓取字符串,3表示从第3个字符开始,5表示抓取的字符串长度expr substr "hello world" 3 5# 抓取第一个字符串出现的位置expr index "hello world" o 四则运算1234expr 10 % 3expr 10 + 10expr 30 / 3 / 2expr 30 \* 3 # 使用乘号时,必须用反斜线屏蔽其特定含义。 bc bc 是一个命令行的计算器工具,有些过于精简的发行版没有自带。 支持浮点数四则运算 123456789101112131415161718echo...
Centos7升级到RHEL8
本文依照 redhat 官方文档制作,总共分为两步,先将 centos7 转换为 rhel7,然后再将 rhel7 升级为 rhel8 参考文档:cenots7转换为rhel7rhel7升级为rhel8 centos7 升级为 rhel7升级到 centos7 最新版1yum update -y && reboot 安装 convert2rhel1234567curl -o /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release https://www.redhat.com/security/data/fd431d51.txtcurl -o /etc/yum.repos.d/convert2rhel.repo https://ftp.redhat.com/redhat/convert2rhel/7/convert2rhel.repoyum install -y convert2rhel 开始转换12convert2rhel --username <替换为你的用户名> --password...
内核级负载均衡 LVS DR模式 部署记录
DR 模式,Director 和 realserver 都在一个内网里面,他们都绑定上同一个 VIP, 原理是通过 Director Server 修改数据包的 MAC 地址, 所以得让 realserver 不响应 arp,不然肯定会造成内网 IP 冲突 规划: 机器 IP VIP 10.0.0.8 director 10.0.0.41 realserver1 10.0.0.42 realserver2 10.0.0.43 网卡 interface eth0 RealServer 设置创建虚拟网卡个人习惯,可选,可以绑定在任何网卡上面 1ip link add ipvs0 type dummy 配置不响应 ARP 请求方法1: 调整内核参数方法2: 采用arptables12345# 不响应ARP请求, 修改内核参数echo "1" > /proc/sys/net/ipv4/conf/ipvs0/arp_ignoreecho "1" >...
Shell指定分隔符
为什么要指定换行符,我们看一个例子 1234567891011#!/bin/bashdata="a b cd e f"for i in $datado echo $idone 输出的结果是: 123456abcdef 因为系统默认把空格和换行都当作了分隔符。为了避免这种情况,我们可以手动指定分隔符: 123456789101112#!/bin/bashdata="a b cd e f"IFS=$'\n' # 指定分隔符为换行for i in $datado echo $idone 这样打印出来的就是: 12a b cd e f 再看一个例子: 123456#!/bin/basha="aa,bb,cc,dd,ee"for i in $ado echo $idone 输出为:aa,bb,cc,dd,ee 我们想要的输出结果可能是这样 12345aabbccddee 可以修改成这样: 123456789#!/bin/basholdIFS=$IFS ...
Github Actions自动发布博客
偶然发现 github actions 可以执行一些命令,这下可以把我的 crontab 停掉了,也不用占用一台机器专门用来发布博客了,并且完全免费!! 首先我的 GitHub pages 和博客原始文件是分为两个仓库的,在 GitHub Pages 仓库里添加了一个 Actions 用来钉钉发通知: GitHub 仓库配置 Secret需要先将环境变量配置在 Settings –> Secrets and Variables –> Actions 里面 配置后,可以在 actions 里面通过 ${{ secrets.dingtalk_secret }} 调用到对应的数据 针对 Hexo 博客的构建123456789101112131415161718192021222324252627282930313233343536name: Deploy GitHub Pageson: push: branches: - masterjobs: deploy_github_pages: ...
Windows个人文件夹名字变英文
有时候 windows 用户文件夹里面有些会变成英文,虽然没什么影响,不过强迫症会不舒服 (比如我) 这种情况是由于文件夹内没有 desktop.ini 导致的,或者 desktop.ini 权限不正确 desktop.ini 文件是一个隐藏文件 windows10 的 desktop.ini...
KVM虚拟机常用操作记录
检查前提条件检查 cpu 是否支持硬件虚拟化 1234567grep -Eoc '(vmx|svm)' /proc/cpuinfo# 或者使用 kvm-ok 工具监测sudo apt updatesudo apt install cpu-checkerkvm-ok 安装 kvm12345678sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager# 验证sudo systemctl is-active libvirtd# 增加用户权限sudo usermod -aG libvirt $USERsudo usermod -aG kvm $USER 添加和删除网卡(虚拟硬件)查看网卡列表1sudo virsh domiflist vm-yaohai 添加网卡 (模式桥接到 br0)1sudo virsh attach-interface vm-yaohai --type bridge --source br0...
Python脚本接受参数
完善一下 python 脚本,让它支持更完善的参数(长参数、短参数) 12345678910111213141516171819202122232425262728293031323334import getopt, sysdef parse_args(args=sys.argv[1:]): try: opts, args = getopt.getopt(args, "hvc:w:", ["help", "short", "verbose", "critical_num=", "warning_num="]) except getopt.GetoptError as err: print("Input parameter error") sys.exit() verbose = False short = False for opt, arg in opts: ...
使用mimikatz读取windows密码
github地址 mimikatz 是一个小工具,可以查看到 windows 加载进内存的密码数据,首先最起码要使用 Administrator 权限启动 依次执行: 从 administrator 提升到 system 1privilege::debug 获取明文密码 1sekurlsa::logonpasswords
Puppet遍历hash生成array
公司的 nagios 监控是使用 puppet 来进行自动部署的,但是需要手动修改 puppet 配置才能生效,现在的问题是添加一个新机器得先在 puppet 上添加机器,然后添加到相对应的组,我们想能否让它自动添加到对应的组里面。 vim nagios_server.pp 1234567891011121314151617181920212223242526272829nagios::nagios::add_linux_remote { 'guangzhou.localhost.com' : addr => '10.0.0.9', services => [{'name' => 'check_load', 'desc' => 'Current Load', 'notify' => 1}, ...