Mutagen使用技巧

Mutagen 是一个高性能文件同步 + 网络转发工具。和 rsync、scp 不同,它的同步是持久的、双向的、实时的,网络断开会自动重连,不需要人工干预。本文面向开发者和 Docker 用户,覆盖三种传输层的实际使用技巧。整理 By claude 核心概念:两个能力,三种传输 Mutagen 做两件事: 文件同步(mutagen sync):在两个端点之间实时同步目录,支持双向、单向多种模式,算法基于 rsync 的差异传输,只传变化的部分。 网络转发(mutagen forward):在两个端点之间建立持久的网络隧道,支持 TCP、Unix socket、Windows Named Pipe。 这两件事都支持三种传输层,可以任意搭配: 传输层 适用场景 Local 本机两个路径之间,或本机作为某端 SSH 远程 Linux/Mac 服务器,复用 OpenSSH Docker 本地或远程的容器,复用 docker exec 两端可以是不同传输层的任意组合——比如左边是本地路径,右边是远程容器。 安装与启动 # macOS brew install mutagen-io/mutagen/mutagen # Linux / Windows # 下载二进制:https://github.com/mutagen-io/mutagen/releases # aur 使用 pacman -S mutagen.io-bin # 启动守护进程(后台常驻,重启后自动恢复会话) mutagen daemon start 一、Local 传输 Local 是最简单的传输层,直接用本地文件路径和网络地址。虽然看起来平淡,但有几个实用场景不容忽视。 URL 格式 同步用本地路径(绝对或相对都行),转发用网络端点: # 同步 ....

Linux环境下Perl提权

事故起因 我们公司的应用程序部署目录有个bin目录,手误,删除的时候输入的是/bin 事故现象 ● SSH 不能登陆进来了 ● ls、chmod等常用命令都不能使用了 ● wget 还能用 事故解决 通过查找谷歌,发现有个perl带有提权的功能,简单来说就是 perl -e "chmod 0777, '/bin/ls'" 通过这个方式可以对指定的文件进行权限的修改。于是从另外的机器上打包了一个/bin目录,放到网上,wget 下载到本地wget bin.tar.gz ​ 本机开外网ssh转发,scp 拷贝tar文件到目录,执行 perl -e "chmod 0777, './tar'" ,再使用tar进行文件解压./tar xvzf bin.tar.gz -C /,然后再给chmod执行文件赋予执行权限 perl -e "chmod 0777, '/bin/chmod'" 然后再通过chmod 执行 chmod -R +x /bin/给/bin目录下的可执行程序文件授予执行权限。至此,完成事故修复。 参考连接 ● https://perldoc.perl.org/functions/chmod.html

Golang通过ssh连接数据库

Mysql Postgresql

golang不创建临时文件上传网络文件

func UploadFromUrl(uploadUrl string, resUrl string,postFileName string, submitField string) error { method := "POST" payload := &bytes.Buffer{} writer := multipart.NewWriter(payload) if res, err := http.Get(resUrl); err != nil { return err } else { defer func() { if res != nil { _ = res.Body.Close() } }() part, _ := writer.CreateFormFile(submitField, postFileName) if _, copyErr := io.Copy(part, res.Body); copyErr != nil { return copyErr } if err := writer.Close(); err != nil { return err } } client := &http....