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: runs-on: ubuntu-latest ...
Windows个人文件夹名字变英文
有时候windows用户文件夹里面有些会变成英文,虽然没什么影响,不过强迫症会不舒服(比如我)
这种情况是由于文件夹内没有desktop.ini导致的,或者desktop.ini权限不正确
desktop.ini 文件是一个隐藏文件
windows10的desktop.ini文件内容下载:
123[.ShellClassInfo]LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21798IconResource=%SystemRoot%\system32\imageres.dll,-184
桌面:
12345[.ShellClassInfo]LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21769IconResource=%SystemRoot%\system32\imageres.dll,-183[{E8A54E83-A4A0-4C7F-B391-DF76B9DB9690}]AppID={1EC9B-E197 ...
KVM虚拟机常用操作记录
添加和删除网卡(虚拟硬件)查看网卡列表1sudo virsh domiflist vm-yaohai
添加网卡(模式桥接到br0)1sudo virsh attach-interface vm-yaohai --type bridge --source br0 --model virtio --config
删除网卡(指定mac地址删除)1sudo virsh detach-interface vm-yaohai --type bridge --mac 52:54:00:61:4c:f3 --config
添加网卡或删除网卡后需要重新定义,不然重启会失效
virsh dumpxml vm-yaohai > /etc/libvirt/qemu/vm-yaohai.xmlvirsh define /etc/libvirt/qemu/vm-yaohai.xml
kvm默认网桥
libvirt默认使用了一个名为default的nat网络,这个网络默认使用virbr0作为桥接接口,使用dnsmasq来为使 ...
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: if ...
使用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.nutscloud.com' : addr => '10.0.0.9', services => [{'name' => 'check_load', 'desc' => 'Current Load', 'notify' => 1}, ... ...
Hugo博客添加live2d看板娘
看板娘就是网页上面漂浮的小人,可以随着鼠标的移动而做出反应,在hexo上面是有现成的npm module,在hugo上面只能自己引入js啦。
我用的是hugo v0.84.1-4BD65E22+extended, LoveIt版本是0.2.10
方法1: 使用html模板,引入js文件编辑themes/LoveIt/layouts/partials/footer.html , 在 {{- end -}} 的上一行添加
1234567891011121314151617181920212223242526272829303132<!-- Live2D,网页上的小人,可以修改live2d_config.js来修改模型,模型都在static/live2d_models里面 --><!-- 你也可以把js文件下载下来,放到static/js/目录下,就不依赖别人的服务了 --><script type="text/javascript" src="https://cdn.jsdelivr.n ...
Shell脚本接受参数
直接传参一般情况下直接传参,比如
test.sh
12#!/bin/bashecho hello $1
./test.sh worldhello world
使用getopts解析参数这种方法可以忽略参数位置,使脚本更完善
test.sh
123456789101112131415161718while getopts "a:b:c" arg #选项后面的冒号表示该选项需要参数do case $arg in a) echo "a $OPTARG" #参数存在$OPTARG中 ;; b) echo "b $OPTARG" ;; c) echo "c" ;; ?) #当有不认识的选项的时候arg为? echo "unkonw argum ...
Nginx负载均衡(反向代理)
7层负载均衡
7层就是用域名来进行转发
类似配置文件:
vim /etc/nginx/conf.d/xxx.conf
1234567891011121314upstream wordpress { server 192.168.1.20:8000 weight=5 max_fails=3 fail_timeout=30s; server 192.168.1.21:8000 weight=5 max_fails=3 fail_timeout=30s;}server { listen 80 ; server_name wordpress.zahui.fan; location / { proxy_pass http://wordpress; }}
反代到虚拟主机的另一台Nginx比如现在有一台服务器,部署了a、b两个服务,比如a.com到a服务,b.com到b服务,这种情况我的Nginx想要代理b服务,就需要指定反代header proxy_set_header Host ...