使用image-syncer来实现容器镜像同步
image-syncer 是一个 docker 镜像同步工具,可用来进行多对多的镜像仓库同步,支持目前绝大多数主流的 docker 镜像仓库服务 支持多对多镜像仓库同步 支持基于 Docker Registry V2 搭建的 docker 镜像仓库服务 (如 Docker Hub、 Quay、 阿里云镜像服务 ACR、 Harbor 等) 同步只经过内存和网络,不依赖磁盘存储,同步速度快 增量同步, 通过对同步过的镜像 blob 信息落盘,不重复同步已同步的镜像 并发同步,可以通过配置文件调整并发数 自动重试失败的同步任务,可以解决大部分镜像同步中的网络抖动问题 不依赖 docker 以及其他程序 image-syncer 的官方地址是:https://github.com/AliyunContainerService/image-syncer, 是 golang 开发的, 官方没有给打包成 windows 版, 所以 windows 和 mac 用户需要自己编译一下。 编译安装 golang 环境略 开始构建1go build main.go 会在当前目录下生成...
shell脚本条件判断与比较运算
if 的基本语法:1234567if [ -f /tmp ];then echo "是一个普通文件"elif [ -d /tmp ];then echo "是一个目录"else echo "其他类型"fi 文件/目录 判断常用的 运算符 作用 -d 测试文件是否为目录 -e 测试文件是否存在 -f 判断是否为一般文件 -r 测试当前用户是否有权限读取 -w 测试当前用户是否有权限写入 -x 测试当前用户是否有权限执行 -s 文件长度不为零 选项 作用 [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真。 [ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真。 [ -d DIR ] 如果 FILE 存在且是一个目录则为真。 [ -e FILE ] 如果 FILE 存在则为真。 [ -f FILE ] 如果 FILE 存在且是一个普通文件则为真。 [ -g FILE ] 如果 FILE...
利用Nginx的rewrite来实现自动跳转
任意链接都跳转到指定页面 需要部署一个服务在 Kubernetes 内, 需要实现通过 ingress 可以访问到, 本来是很简单的事情, 但是由于访问来源的 location 不确定,为了避免报错 404,所以用 Nginx 的 rewrite 来实现 Nginx 配置如下(所有 location 转发到 index.html): 12345678910111213server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /var/www/html; index index.html index.htm index.nginx-debian.html; location / { rewrite ^(.*) /index.html break; }} 自动跳转 https配置文件如下: 使用...
使用Obsidian配合Hexo写博客
obsidian 是一款好用的 markdown 编辑器, 用来记笔记还是不错的。 并且支持插件系统,可以通过模板来生成博客的 frontmatter, 省去了 hexo new 的操作 所以准备配置一下用 obsidian 来写博客。 相关文章:静态博客生成工具hexo使用typora更好更快地写hugo博客使用vscode来写hugo博客并处理图片插入问题 打开仓库首先使用 obsidian 打开 source/_posts 目录, 然后会生成一些配置文件。进入 _posts 目录 创建.gitignore 将一些临时文件排除掉。 1.obsidian/workspace.json 配置模板自带的模板插件功能太单一了, 我们关闭安全模式, 安装第三方插件 Templater 创建 Templates 目录,修改配置指定 Template 的目录。修改配置项 Template folder location 为 Templates 然后再此目录下创建 Front-matter.md 文件,此文件用作 hexo 的 frontmatter...
ArchLinux安装记录
官方文档 ArchWiki 已经写的很好了,但是每次安装的时候都要踩坑,所以开个文章记录一下。 磁盘分区与格式化123parted /dev/sda mklabel gpt mkpart ESP fat32 1M 513M set 1 boot on mkpart primary ext4 513M 100% printmkfs.fat -F 32 /dev/sda1mkfs.ext4 /dev/sda2 配置中科大的源配置文档: https://mirrors.ustc.edu.cn/help/archlinux.html 挂载与 chroot 操作chroot 后相当于进入了安装后的系统内进行操作 123456mount /dev/sda2 /mntmount --mkdir /dev/sda1 /mnt/bootpacstrap -K /mnt base linux linux-firmwaregenfstab -U /mnt >> /mnt/etc/fstabarch-chroot /mnt 常用配置配置时区12ln -sf...
Linux神奇的proc目录
让我们看看/proc 里面都有什么 查看进程打开的文件123456789# 查看打开了什么文件# 通过进程名lsof -c more# 通过PIDlsof -p 30149# 也可以通过/proc查看ls -al /proc/30149/fd 查看进程的环境变量和 env 命令查看到的不同,env 查看的是系统的环境变量,可以理解为默认环境变量,但是进程的环境变量可能不一样,比如说: 1A=B vim a.log 这种情况下 vim 进程是有 A 这个环境变量的,可以使用以下命令查看。 1cat /proc/39564/environ | tr '\0' '\n' 内核启动参数1cat /proc/cmdline | tr '\0' ' ' 可执行文件1exe是运行的可执行文件,和上面有一些区别。 limits进程所受到的限制,比如最大文件打开数等。
Fail2ban配合Docker使用解决暴力破解
fail2ban 正常使用可以参考 使用Fail2ban抵御暴力破解和cc攻击,但是对于使用了 Docker host 网络的容器来说是不生效的。原因最后说, 我们先复原一下部署情况 环境现状服务器是我自己的服务器,使用 Nginx 做入口,反向代理到不同的后端,后端服务和 Nginx 都是运行在 Docker 里,使用 Docker 的自定义网络进行互联。其中 Nginx 容器使用的是 Host 网络 配置 fail2ban确定 Docker 版 Nginx 日志路径Linux 内一切皆文件,Docker 会将日志写入到主机的一个日志文件中。通过 1docker inspect nginx --format "{{.LogPath}}" 可以查看到容器的日志位置 创建配置文件 /etc/fail2ban/jail.d/nginx-cc.conf123456789[nginx-cc]enabled = trueport = http,httpsfilter = nginx-ccaction =...
使用Fail2ban抵御暴力破解和cc攻击
fail2ban 是一款防止暴力破解和 cc 攻击的开源工具,采用 Python 编写。 常用组件 工具 作用 fail2ban-client 客户端工具 fail2ban-regex 验证正则匹配 1234567891011# 查看启用的规则fail2ban-client status# 查看规则详情fail2ban-client status sshd# 重新加载配置fail2ban-client reload# 手动解禁IPfail2ban-client set sshd unbanip 192.168.1.1 配置文件目录 作用 /etc/fail2ban/jail.d ban 的规则,如多少次触发,触发后封禁多久等 /etc/fail2ban/filter.d 过滤规则,匹配日志的正则配置 规则测试创建配置文件 /etc/fail2ban/jail.d/nginx-cc.conf 123456789[nginx-cc]enabled = trueport =...
Hyper-V 自动创建虚拟机快照
首先要允许 PowerShell 执行本地脚本文件: 1Set-ExecutionPolicy RemoteSigned PowerShell 脚本内容:(文件需要保存成 GB2312 编码,不然中文乱码,执行报错。) 12345678910111213141516171819202122232425262728293031323334353637$isAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)# 如果不是管理员,以管理员身份重新运行脚本if (-not $isAdmin) { Start-Process powershell -ArgumentList "-NoProfile -ExecutionPolicy Bypass -File...
Windows下运行服务的几种方式
原生命令 sc微软官方文档: https://learn.microsoft.com/zh-cn/windows-server/administration/windows-commands/sc-create 第三方工具 winsw 2.xhttps://github.com/winsw/winsw/releases/tag/v2.11.0 需要将 winsw 可执行文件和配置文件放在同一目录, 一般放在程序同级目录. 同样以 frpc 为例: service.xml 12345678910111213141516171819202122232425262728293031323334353637383940414243<service> <id>frpc</id> <!-- Display name of the service --> <name>frpc Service (powered by WinSW)</name> <!-- Service description...