相信不少小伙伴在使用时都会有内容同步的需求,比如:公司和家里的电脑,电脑与手机或者平板之间的内容备份及同步。那此文便讲解一下这一块我的一些方案,供大家参考。
方案一: 官网Sync服务
官方本身提供了Sync同步功能,相对而言是最简单易用且功能相对最齐全的了;如果大家有同步的需求又不差钱,直接购买就可以。现在官方售价是8美金一个月,按年购买应该有一定的优惠。
方案二:方案
是一款 第三方插件,你可以在插件中配置使用/ / /S3/OSS/COS 等网盘及云存储服务来使用,常见是使用或者阿里、腾讯的云存储做中转; 的支持上,国内坚果云暂时是不支持的。
使用需要配置第三方的中转,现在功能还在完善中,还不能同步 Ob的插件和主题,因此同步文件后,插件和主题要自己在第二台设备上安装(更新: 现在同步插件和主题的功能已经支持了)。因为网上已经有不少介绍它的文章了,所以这里我直接引用了。大家如果需要按这种方案进行配置,可以参考如下:
最舒服的第三方多端同步 – 哔哩哔哩 ()
【ios福音】第三方同步方案(插件+腾讯云cos)-保姆级教程 – 知乎 ()
同步 Save S3 配置指南_恐咖兵糖的博客-CSDN博客同步
方案三:使用Gitee及方案,通过Git来同步及备份文件(有空间及速度体验上的差异);或者自己搭建NAS通过NAS上的同步来备份(有一定的成本);除此之外使用 微力同步官网 – 私有云盘 企业文件同步 团队文件共享协助工具 () 和 | ,电脑上备份至网盘然后在手机端解压等方案也是可以的。
大家可以按自己的情况及需求来选择对应的方案,本文重点讲解的是下面的方案四,方案四有免费,快速,自由及可灵活定制,兼容多终端运行的一些特点。
方案四:Rsync的方案
基于开源的Rsync方案,可以实现Win/Mac/Linux与移动端的文件增量同步功能,需依赖同一局域网,及SSH协议进行文件传输。对于我们而言,只保证要同步的设备连在一个路由器WIFI上即可。此文着重讲解一下 Mac 系统与 系统下的配置方案。
一、安装SSH组件:
移动设备作为 SSH 服务端监听连接,PC 电脑作为客户端连接;SSH 服务安装成功后,我们要安装 Rsync 工具。
SSH 服务端:安卓上可以使用 | and Linux for ,不过我使用的是 () ,它已集成开机启动,密码登录,SSHD服务常用功能。IOS上大家可以使用开启iOS设备的SSH服务 – 云+社区 – 腾讯云 ()的方法来安装并开启SSHD服务。
SSH 客户端:在 Mac 系统安装 客户端,一般是不用安装的,因为都自带了; 系统上可用系统应用中可选功能安装 ,如上图的可选功能安装;当然你也可以直接安装第三方的 SSH 客户端软件。
二、安装Rsync :
Rsync 是同步软件,它要基于上面的 SSH 协议进行通迅。Mac系统下推荐大家按方案2;系统下按方案3快速安装。
Mac系统的配置
方案1:安装rsync,直接brew安装或者port安装即可。 brew和port是Mac系统下的一个包安装工具。
方案2:官网 rsync () 下载源码自己编译运行。这里我们推荐用brew一行命令搞定就好了:
# 安装:brew命令% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"# 安装rsync命令% brew install rsync# 查看安装的版本% rsync --version
#运行如下的命令同步:
# 运行如下的命令同步(同步了Obsidian-Win下的所有文件至 SDCard/ObsidianDoc 手机目录)% rsync -avz -zz -e "ssh -p 2222" Obsidian-Win/* u0_50a@192.168.100.4:/data/data/com.arachnoid.sshelper/files/home/SDCard/ObsidianDoc/# 如上所示,指定端口、IP、用户名、目录信息;来源目录和目标目录调换,但可以实现反方向同步% rsync -avz -zz -e "ssh -p 2222" 指定:来源目录(手机SD卡目录) 目标目录(电脑磁盘目录)
Rsync增量同步至手机端成功
2. Win系统的配置
方案1: 安装rsync,可以使用类Mac上的brew的包安装器:如: 或者scoop,这里不在详细介绍,可参考: Scoop包管理 – 知乎 () 。
方案2:官网 rsync () 下载源码,自己搭建 环境编译: 是一个在平台上运行的类UNIX模拟环境。
方案3:介绍使用rsync的第三方包 – Rsync for | ,即别人编译好的运行包。
在上面 Rsync 标签 下载最新版本软件包,解压至目录后,先运行 .cmd 设置环境变量。
这里发现它运行后并没有生效写入PATH相关信息,所以我们最好自己用记事本打开这个文件,按它的内容来配置环境变量,配置成如下图所示,总共:定义系统变量名称,添加路径信息至系统PATH两步骤。
如下:前一行代码是 .bat 文件内容,可以自己修改后直接在命令行窗口,或保存为bat文件双击运行 。
# cmd窗口 运行如下命令 (同步了d盘www目录下所有文件至 SDCard/ObsidianDoc 手机目录)% rsync.exe -avz -zz -e "ssh -p 2222" /cygdrive/d/www u0_50a@192.168.100.4:/data/data/com.arachnoid.sshelper/files/home/SDCard/ObsidianDoc/ # --chmod=ugo=rwX 如果遇到写手机文件的权限问题,可以在参数区添加这行# 如上所示,指定端口、IP、用户名、目录信息;来源目录和目标目录调换,但可以实现反方向同步% rsync -avz -zz -e "ssh -p 2222" 指定:来源目录(手机SD卡目录) 目标目录(电脑磁盘目录)
Rsync增量同步至手机端成功
为了方便使用,你还可以配置如下的选项:
改进1:手机应用配置项设置:不开启 modes 、 开启 、run at boot。
改进2:这里每次同步都要进行登录输入密码有点烦人,所以大家可以参考官方文档配置一下SSH登录,这样便不用每次输入密码就能直接同步了。具体可参考官方文档: () ,这里截图如下:
操作:bash 中运行如下两行就可以,最后一步我们在 软件上关闭用密码登录选项,因为不需要密码了。
nbsp;ssh-keygen -t rsa -f ~/.ssh/id_rsa -N '' nbsp;ssh-copy-id -i ~/.ssh/id_rsa.pub -p 2222 192.168.100.4 (android device IP address)
如下所示:现在同步语句内容可以改成不加用户名了,命令行执行后可直接同步文件,不用中途再让你输入密码!
# macos 文件同步命令% rsync -avz -zz -e "ssh -p 2222" Obsidian-Win/* 192.168.100.4:/data/data/com.arachnoid.sshelper/files/home/SDCard/ObsidianDoc/# windows 文件同步命令% rsync.exe -avz -zz -e "ssh -p 2222" /cygdrive/d/www 192.168.100.4:/data/data/com.arachnoid.sshelper/files/home/SDCard/ObsidianDoc/
你可以把上面mac和win的各自命令放入.sh文件或.bat文件,赋予权限后直接双击执行即可同步;或者加入操作系统的任务计划来定时同步;又或者使用插件来添加一个Macro在中直接使用快捷键同步,总之相当的灵活。
执行同步命令连接不上或超时:
安卓手机最好在设置中:打开开发者模式,并且开启调试选项,安装时确认允许磁盘权限。
如果之前能够连接,突然后面就一直连不上超时,重启,或电脑及手机都断开WIFI再重连。
连接超时 : send : pipe 报错问题,需要配置文件内容如下:
# ~/.ssh/config mac 系统配置这个文件 Host * # 断开时重试连接的次数 ServerAliveCountMax 5 # 每隔5秒自动发送一个空的请求以保持连接 ServerAliveInterval 5 IPQoS=throughput
4. 按官网文档介绍,可以省略输入端口号,另外启用 选项组可对手机设备绑定固定IP,这样执行的脚本则可以更简洁。
# 手机名称为 Galaxy_S8+ 你可以在手机设置中或SSHelper配置界面查看# 1.开启 Zoreconf Broadcast 后,可以用手机名称来连接ssh Galaxy_S8+.local -p 2222# 2.编辑config文件,添加端口、设备名称后如下,已便完成更多信息的设置nbsp;vi ~/.ssh/config Host Galaxy_S8+ (可以设置别名)Hostname 192.168.100.4 User u0_a50 Port 2222Host * # 断开时重试连接的次数 ServerAliveCountMax 5 # 每隔5秒自动发送一个空的请求以保持连接 ServerAliveInterval 5 IPQoS=throughput# 3.上面的Host可以指定设备的别名,比如我设置为SJHost SJ
现在你可以用最精简的一行命令来同步笔记内容至手机,不用输入用户名称、用户密码,不用指定连接IP及端口:
# 执行ssh连接手机 % ssh SJ # 用于同步代码语句 rsync -avz -zz ~/Documents/Obsidian-Win/* SJ:/data/data/com.arachnoid.sshelper/files/home/SDCard/ObsidianDoc/
最精简的笔记同步语句
# 实现同步插件至手机端(来源目录后面不加*号),以及加上delete/no-perms/no-times/size-only等参数删除目标目录多余文件,通过文件大小判断是否同步,不同步目标目录时间戳及权限属性。rsync -avz --delete --no-perms --no-times --size-only -zz ~/Documents/ObsidianDoc/ SJ:/data/data/com.arachnoid.sshelper/files/home/SDCard/ObsidianDoc/
———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,永久会员只需109元,全站资源免费下载 点击查看详情
站 长 微 信: nanadh666