hugo使用经验

hugo使用经验

TableRows表行

已于 2022-06-13 02:10:43 修改

919
收藏 2
文章标签: github 前端
版权
title: “Hugo博客搭建经验”
date: 2021-07-26T16:47:18+08:00
draft: false
description: “《别用》”
featured_image: “https://img-blog.csdnimg.cn/c0b511f31c864b22b873b6aee915dfd5.png”

写在前面
​ hugo最强使用技巧:别用hugo (狗头)

​ 这个世界上的静态网站生成器至少有333个,先从我的角度说说其他静态网站生成器的优点:

VuePress:基于vue构建,可以顺便练习vue,减小web开发者的学习成本;

中文文档

主题丰富(在github主页有)

插件挺丰富,不知道常用的有没,但是大丈夫!因为是Vue,自己集成功能很方便!

文档说是单页应用,解决路由时音乐播放器重新加载播放的问题应该简单一些;

Hexo:由中国台湾人创建,咱们用的人多所以网上教程丰富;

[√]中文文档
[√]主题丰富
[√]插件齐全(几乎不用敲代码,npm上都一堆插件)
多个静态页面
WordPress:嗯。。和hugo都是老外搞的,风格半斤八两,都用了"shortcode"这种奇怪的东西(类似模板引擎或vue的组件,但还需要额外的学习成本),支持OneNote上传笔记(鸡肋);可以和PHP配套使用;

然后。。。hugo的优点可能是快?我不知道。。。可我是男人可如果开发速度慢、学习成本高不还相当于慢了。。中文文档还相当于没有!

如果重命名content下的md文件,hugo编译时不会把删掉该替换的文件。不知道其他工具怎么样。

当然所有工具都是没有上限的!只是碰壁次数与资料多少、学习成本之类的区别!

快速开始
中文文档少有的中文233:

快速入门 | Hugo 中文网 (gohugo.cn)

其中下载主题这步可以自己选,主题商城也在这个网站中↑;

我所用的主题是Diary,可以在博客左下↙版权那里找到github仓库。自己魔改了一部分,为了添加功能。

常用命令、脚本
​ 获取QQ头像的url: https://q1.qlogo.cn/g?b=qq&nk=QQ号码&s=640。用edge浏览器的时候发现,如果用https访问博客,头像url用http访问的话会被拦截。

​ 每次输入这么多命令太麻烦了,hugo似乎没有把自己提交到github的命令,索性写了一个windows脚本上传博客。提前在path环境变量中配置hugo命令所在目录,以在任意位置执行hugo命令。

​ 还是第一次主动写windows脚本,上一次写还是上一次(呸,上次是改U盘图标,照网上抄的)。脚本文件后缀名为.bat,直接在里面写命令即可。

hugo -D
hugo
cd ./public
git add -A
git commit -m "脚本提交"
git push -u origin master
1
2
3
4
5
6
​ 先执行一遍hugo -D是为了将草稿也编译一下;再不带-D,这样主页不会显示草稿;

​ 还有一个博客生成测试脚本,执行hugo server命令,用于在本地实时查看页面;

​ 也可以使用github Actions来完成持续集成(CI),顺道学习Devops;难得有个项目有提供hugo的插件,我却还是觉得脚本成本低,,

进阶版脚本:同时提交至github和gitee:

chcp 65001
rem 定义变量延迟环境,关闭回显
@echo off&setlocal enabledelayedexpansion
rem 读取config.toml所有内容
for /f "eol=* tokens=*" %%i in (config.toml) do (
rem 设置变量a为每行内容
set a=%%i
set "a=!a:http://tablerows.gitee.io/tablerow.github.io/=https://baiban114.github.io/tablerow.github.io/!"
rem 把修改后的全部行存入$
echo !a!>>$)
rem 用$的内容替换原来config.toml内容
move $ config.toml

hugo -D
hugo
cd ./public
git add -A
git commit -m "脚本提交"
git push -u origin master

cd ..

@echo off&setlocal enabledelayedexpansion
for /f "eol=* tokens=*" %%i in (config.toml) do (
set a=%%i
set "a=!a:https://baiban114.github.io/tablerow.github.io/=http://tablerows.gitee.io/tablerow.github.io/!"
echo !a!>>$)
move $ config.toml

hugo -D
hugo
cd ./public
git add -A
git commit -m "脚本提交"
git push -u gitee master
pause

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
chcp 65001是将本次bat脚本运行时采用的字符集设置为utf8,因为牵扯到修改hugo的配置文件(相关内容会编译至页面)

如果脚本页面中的内容也有中文(如“脚本提交”),建议将也脚本文件保存为utf8,避免这一部分中文变成乱码

回头试试提交信息加上时间戳之类的(或者指定参数?)
自己钻研的定制经验
utteranc.es客户端地址:https://utteranc.es/client.js

​ 因为没时间系统学习怎么制作hugo主题,我只能在Diary主题的基础上瞎摸索,这里是一些经验;如果其他主题作者命名方式一样(约定大于配置233)就会很好办。

​ 对Diary主题改动了一些,有点儿想提PR的冲动。。。不过萌新经验还差太多,不知道合不合适。。。羞(.. )…

站点&&主题目录结构
根站点和主题文件夹有相同的目录结构,hugo会优先使用根站点下的配置。

以Diary为例,主题根文件夹下:

layout放置了页面的主体框架,其中

shortcodes目录定义shortcode,可以在其他html中当组件用

_default下存放了主体部分的html框架(即body中的主div内的内容,正中间的主体)

baseof.html是全html页面的框架,其中head部分被放到了partials文件夹下

single.html是文章内容的html

可以自定义友链、“关于我”这种功能的页面在这里,记得将single中的主体框架部分拷贝过来,修改{{.Content}}附近;

踩坑:自定义页面的时候,要全用{{define main}}包裹起来,我把css放在外边,结果只编译了css
partials有评论、head、自定义head、版权、主体js等部分的html

sidebar:电脑端侧边栏的大纲(说是大纲是因为引用了版权页,而版权页单独写在一个html里),移动端这部分有单独页面,不在这里(见baseof.html);
data 存储数据文件供模板使用

public 生成的静态网站文件会放在这里

站点配置文件config.toml
注意不要在主题文件夹下放config!那儿也会生效!

博文开头的元数据配置
layout: “” 不用带后缀;该md文件会寻找layout下同名html文件渲该页染;
draft: true 为true时是草稿,不带-D参数的hugo命令不会编译、在首页显示草稿;这也是为什么我要在脚本里先后执行两次命令。
关于我、友链等页面可以用这种方式从隐藏,只在特定页面出现
其他的可以见主题文件夹下/archetypes/default.md

拓展
评论插件
静态博客要是没有自己的后台的话,评论也只能托管到其他平台上去。我用的是utteranc.es,客户端地址:https://utteranc.es/client.js

是将评论套在github的评论区。缺点是要在国内登录github网不好。。也许有gitee的?

或者自己写个类似的直接评论到B站这类平台?会爬虫or bot应该不难。
还有很多其他的评论插件更好,但我忘了名字了doge在这里记一下。真不推荐我用的这个。虽然有些平台要带水印之类的。

gittalk
Live2d看板娘
基础款
​ 基础款

<script type="text/javascript" charset="utf-8" src="https://cdn.jsdelivr.net/npm/live2d-widget@3.1.4/lib/L2Dwidget.min.js"></script>
<script type="text/javascript">
L2Dwidget.init({
model: {
scale: 1,
hHeadPos: 0.5,
vHeadPos: 0.618,
jsonPath: 'https://cdn.jsdelivr.net/npm/live2d-widget-model-hibiki@1.0.5/assets/shizuku.model.json', // xxx.model.json 的路径,换人物修改这个
},
display: {
superSample: 1, // 超采样等级
width: 120, // canvas的宽度
height: 300, // canvas的高度
position: 'right', // 显示位置:左或右
hOffset: 0, // canvas水平偏移
vOffset: 0, // canvas垂直偏移
},
mobile: {
show: true, // 是否在移动设备上显示
scale: 1, // 移动设备上的缩放
motion: true, // 移动设备是否开启重力感应
},
react: {
opacityDefault: 1, // 默认透明度
opacityOnHover: 1, // 鼠标移上透明度
},
});
</script>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
加到哪儿应该都行,我是粘到了extended_head里,这样会加载到head标签中。人物长什么样子可以直接百度“live2d 看板娘 ”+名字、长相什么的。我个人喜欢shizuku,双马尾好可爱ヽ(✿゚▽゚)ノ!!! hibiki也不错

音乐插件
使用了APlayer && MetingJS。直接看MetingJS的github仓库即可:MetingJS,暂时不用看Aplayer用法,CV大法好(doge)

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.css">
<script src="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/meting@2/dist/Meting.min.js"></script>
<!-- 放在想生成播放器的地方⬇ -->
<meting-js
server="netease"
type="playlist"
id=" "
list-folded = "true"
volume = "0.3"
>
</meting-js>
1
2
3
4
5
6
7
8
9
10
11
12
Aplay是一个Html5音乐播放器,而MetingJS结合了国内几大音乐平台的api。本想直接用外链,但网易云官方现在似乎不提供可用的歌单外链。

注:

在使用Meting提供的网易云api时,歌单里歌曲太多或使用“我喜欢的音乐”歌单可能无法从api获取数据!
需要的js、css文件在头文件中按顺序引入(有依赖关系)
Aplayer官方提出了好多静态博客插件,唯独没有hugo的。~~《如果早知道,用hugo会被孤立。。。》~~虽然我也没用那些插件。这个主题用了vue,可以通过vue集成。
静态页面托管平台
github pages
gitee pages
提交到仓库后,还要在Pages服务那里点“更新”才会更新!!
vercel
我看oschina和CSDN也有项目仓库了,不知道有没有托管功能。

图床
gitee
对于常用图片后缀不允许外链(通过查看请求头中的Refer),目前webp格式的还可以。如果只把博客部署在gitee还是可以考虑
能不能钻个空子利用pages当图床?
CSDN发篇文章只有图片当图床
vercel + 百度云
picgo可以结合OSS作图床,也许可以试试结合CSDN?
好家伙我看还有新浪微博图床插件的,离谱哦
typora使用CSDN图床 - 『编程语言区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn
我为什么用hugo?
​ 哦我的上帝啊,瞧瞧这hugo!ko no sei gai还有更难用的静态网站生成器吗?当然我也没用过其他的,只是吐槽一下hhh

​ 一开始尝试在centos7上使用hugo(linux64位0.84.x版本),并用nginx做服务器部署生成的静态页面,遇到了路径问题,样式文件加载不出来;然后修改到一半,新的页面突然就生不出来了。。。QAQ

​ 改了配置文件、添加了新文章、执行hugo命令后也没有生成新的、正确的静态页面。根据提示,安装extended版本 ,结果又报错说缺少c++的新版动态库,但我的确是新版了(跟CSDN上的博客比)。现在有经验了,回想回想可能是配置文件或者命令错了。

​ 最后用了windows版+github pages。省时又省心,效果还一样。之前尝试部署到服务器上的我简直是个可爱的小傻瓜。

​ 另,gitee的Pages服务这几个月关闭了,预计8月左右恢复。说是为了建设绿色网络环境什么的,可能不符合规定的要被清除?

​ 近日正好收到一篇公众号的推送,是关于hugo搭建博客的,就用上了。最早了解的是wordPress,但没有使用;身边人用的最多的是hexo。年轻时总想着搞个人博客,早就接触到了建站容易的静态博客,但感觉搭建起来对技术提高帮助不大,就没搞。

​ 现在博客做起来了,能刺激我总结总结经验知识。通过添加各种前端特效、插件,巩固了一下前端基础。这些可以做刚学完前端基础的过渡练习,要是那会儿就来实战练习就好了。那会儿天天做作业,贼枯燥,做完还就扔了忘了,没实战也没效率(*  ̄︿ ̄)
————————————————
版权声明:本文为CSDN博主「TableRows表行」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_44915801/article/details/124519210

使用 Syncthing 搭建个人同步服务器

使用Syncthing搭建个人同步服务器

使用Syncthing搭建个人同步服务器

笔者作为一个 IT 销售人员,除了要会推销自己的产品,处理报价、合同等商务工作,还得熟悉方案,甚至有时候还要着手给客户写技术方案,因此平时手头有大量的文档处理,工作时间一般电脑不离身。销售有个好就是时间比较自由,换言之就是任何时间都在休息,也都在上班!

所以我很多时候在家里也会处理一些文档类工作,比方晚上和周末。以前是怎么干的呢?1)下班的时候把工作电脑文件通过微信、QQ 发到云上;2)拷到U盘里。然后做完之后再同步回去,很不方便。

在Syncthing之前,我曾试过百度云、Onedrive、SyncToy等文件同步应用,它们有的速度慢,有的占用资源高,有的得付费,总之都觉得不太好。Syncthing这样一款开源、轻量级、速度贼快的点到点文件同步系统可以说甚合我意,它支持市面上大多数操作系统如Windows/MAC OS/Android/Linux等,它让你的数据在两个终端间通过加密方式传输,同时也不会把存放在别的地方,很安全。而且这是一款超过20年的开源软件,生命周期很长,所以针对它的第三方拓展也比较多。

使用 Syncthing 搭建个人同步服务器
使用 Syncthing 搭建个人同步服务器

Syncthing 安装

Windows安装Syncthing非常简单,直接到官网下载最新版解压后运行里面的主程序 syncthing.exe,弹出来的批处理窗口就是它的主程序了。经过几秒的初始化系统会用你默认浏览器打开http://127.0.0.1:8384,这就是Syncthing的操做和管理后台了。


如果你仅用于Windows间的文件同步和传送,那就在多台电脑间安装即可愉快食用。不瞒您说,我这博客可是用的马云家100M 带宽的ECS啊,不做个文件同步服务器有点可惜的,于是下面介绍CentOS下的安装方法——其他Linux也适用。

# 下载syncthing,可以暂时不用管版本,等安装好打开之后会自动检查更新,1.20.4是截至2022/09/03的最新版本
wget https://github.com/syncthing/syncthing/releases/download/v1.20.4/syncthing-linux-amd64-v1.20.4.tar.gz
# 解压下载下来的压缩包
tar xzvf syncthing-linux-amd64-v1.20.4.tar.gz
# 进入解压出来的文件夹
cd syncthing-linux-amd64-v1.20.4
# 将syncthing二进制程序复制到/usr/local/bin目录,然后就可以通过“syncthing”命令运行syncthing了
cp syncthing /usr/local/bin
# 将除syncthing运行文件之外的的其他说明文件删除
rm -rf syncthing*
# 运行主程序
syncthing

至此Syncthing的主文件已经安装好了,接下来开放端口。Syncthing默认监听以下几个端口:

22000 (TCP) --节点访问端口
8384 (TCP) --Web控制端口
21027 (UDP)
44647 (UDP)
37269 (UDP)

我是自己使用,只打开前两个就行了,开放防火墙端口请根据自己服务器的情况来设置。阿里云需要到后台区设置,定位到云服务器-实例-管理-本实例安全组-配置规则-添加安全组规则,然后参考如下配置:

使用 Syncthing 搭建个人同步服务器
授权对象建议写成 0.0.0.0/0,即是允许所有人访问

开放端口之后直接输入syncthing运行它,初始化的行应该跟Windows 版是一样的,咱们也不用管它,CTRL+C叫停它。修改生成的配置文件,定位到/root(你的当前用户名)/.config/syncthing/config.xml,用VIM工具或WinScp之类的 FTP 将127.0.0.1:8384改成 0.0.0.0:8384 即可,也可以直接使用命令:

sed -i 's/127.0.0.1/0.0.0.0/g' '/root/.config/syncthing/config.xml'

至此Linux版本的Syncthing 已经搭建完成,在此输入syncthing运行它。然后就可以在浏览器输入你的服务器IP:8384访问管理它了。

Syncthing 使用

建议将服务器端的面板设置个管理密码,依次定位到操作-设置-图形界面修改。系统咱们已经建好了,如何实现文件同步呢?主面板只三块清晰内容,分别是“文件夹”、“当前设备”、“远程设备”,作为本地和远程设备的一览。事实上 Syncthing 是通过唯一识别码来进行连接和文件传输的,点击“添加远程设备”,粘贴对面服务器/PC 的设备ID后发起连接申请,对面确认后即可选择文件/文件夹同步了。

使用 Syncthing 搭建个人同步服务器
Syncthing 联系二维码

具体到文件同步管理,这里面有个功能深得我心。它的“忽略模式”允许用户排除主文件夹下不想被同步的文件夹或内容,能非常灵活的管理和设置,对于我这种安良付费的 ECS,如果随便把每个文件都上传,一则费时间,二则费钱。

如果你的两个同步服务器是处于局域网内普通电脑,那么系统会进行网络寻址,数据流不会经过路由器直接在局域网内同步。如果两个电脑没在一个局域网也没有对应的公网IP了,Syncthing 还能通过它分布全球的中继服务器进行数据同步——只不过速度稍慢了。

如果你像我一样,有自己的云服务器,建议关闭设置里边的“全球发现”和“NAT 遍历”,这样它就不会 P2P 传输了~

使用 Syncthing 搭建个人同步服务器
以上是它的全球用传输热点图

Syncthing扩展

以上完成了Syncthing的安装和使用,这样一般会占用你系统50MB左右的内存,可以说相当轻量级了。不过,程序在启用的时候系统任务栏会常驻一个程序,界面也比较简陋,于是有的朋友开发了对应的GUI,把它弄到了系统托盘。我试了一下觉得没啥必要。需要的朋友可以看看这两个链接:

  • https://github.com/sieren/QSyncthingTray
  • https://github.com/canton7/SyncTrayzor

Syncthing移动端支持

Syncthing 本身是支持 Android 的,但是我并不希望文件实时同步到手机,很耗电对不对?不过毕竟有需要的时候,怎么办呢?安装个 Kodexploer 在手机上能对单独文件或目录浏览、下载、分享就行啦——建议你:保持 Syncthing 和 Kodexploer 的文件目录一致比较省事儿。

Syncthing 移动端支持
Kodexplorer 是个相当强大的文件管理工具,可以文件外链共享、预览、编辑等

下一步工作

在查询相关资料的时候,了解到斐讯 N1 这么个强大的玩意儿,于是……已经买了 N1 盒子准备折腾,初步打算:

  • 在N1上刷Debian,安装OMV(OpenMediaVault)作为小型家用Nas使用
  • 在以上基础上安装Lnmp,可以跑Wordpress
  • 内网穿透,绑定域名
  • 安装Syncthing,不再同步文件到阿里云
  • …  …
35条评论
  • 惠姐姐源码网

    05/03/2021 at 00:55回复

    还是上群辉吧。。。专业

  • 老头

    04/20/2021 at 10:47回复

    这货类似 微力同步、Resilio Sync 吧?不过前两者多几个任务就比较耗资源。

    • 牧羊人

      08/18/2022 at 14:38回复

      要更轻巧一些

  • Andy烧麦

    04/19/2021 at 21:19回复

    赞,这是拿ECS云服务器,做网盘么?

    • 牧羊人

      08/18/2022 at 14:38回复

      差不多是这个意思

  • Uz

    04/03/2021 at 23:27回复

    为什么不用坚果云呢?

    • 牧羊人

      04/04/2021 at 09:00回复

      为什么要用坚果云呢?

  • 皇家元林

    09/23/2019 at 11:13回复

    我想知道你内网穿透用的是什么?

    • 牧羊人

      09/23/2019 at 18:24回复

      用的FRP,搭建了没使用~
      想了想我还不如直接把数据放在云上,还快~

  • Lvtu

    08/23/2019 at 16:51回复

    原来还是位隐藏的IT大神,失敬。。。。

  • 曾经左手烟

    08/23/2019 at 10:27回复

    我是想到时候直接买群晖
    省事省心

    • 牧羊人

      08/23/2019 at 10:41回复

      恩恩额,我觉得我还是比较喜欢这种折腾的快乐吧哈哈哈哈

  • 懿古今

    08/16/2019 at 09:40回复

    其他文件我倒是很少,一般都是在公司写的稿件或文档,家里还要继续用,一般直接用WPS编辑然后保存为云文档,然后随时随地都可以编辑使用。

    • 牧羊人

      08/19/2019 at 14:05回复

      其他文件少自然可以简便一些了~ 微软也有类似功能

  • 尽欢

    08/13/2019 at 19:23回复

    我是用的nextcloud

    • 牧羊人

      08/13/2019 at 20:43回复

      跟这个好像不是一个方向的产品~

  • Joe

    08/06/2019 at 14:36回复

    遗憾的是,Syncthing好像没有适用的ios客户端

    • 牧羊人

      08/09/2019 at 09:46回复

      好像是的,似乎 ios 的读写权限比较难搞到,根据自己需求选择合适的系统吧~

  • repostone

    07/19/2019 at 16:44回复

    还真的没搞过这个。

  • 1900

    07/19/2019 at 00:51回复

    我之前也考虑了很久,最后还是找几个人合伙买了个onedrive

    • 牧羊人

      07/21/2019 at 17:42回复

      生命的乐趣在于折腾~

  • Sam.Z

    07/16/2019 at 11:44回复

    现在用的自家NAS同步,给个建议,还是不要搭在路由器上,最好买个itx的板子做,24h不关机稳定功耗小散热快最关键,咸鱼几百块淘一下可以的。如果家里想做软路由,可以买最近出的树莓派4~

    • 牧羊人

      07/19/2019 at 11:17回复

      我公司有个宏碁的HTPC,赛扬CPU,可以拿回去用,体机也还算小,但是我看了看功率,要30w以上,我觉得没啥必要。。。我还是就用阿里云算了。经过两周的试用,家里 的OMV唯一作用是当下载器看电影(然而电影我也很少看)。。。问个问题:怎么把内网映射出来?性价比高点的方案

      • Sam.Z

        07/20/2019 at 09:26回复

        我走的FRP,你用你的主机搭一个就好了,性价比很高,速度嘛,我觉得OK

        • 牧羊人

          07/20/2019 at 23:52回复

          感谢提醒,我已经装上啦~

  • 山小炮

    07/16/2019 at 10:59回复

    这个挺好,配置看起来也不太复杂。另外阿里云确实快,一分钱一分货啊,羡慕~~

    • 牧羊人

      07/21/2019 at 17:43回复

      那可不~

      我的斐讯 N1 已经折腾好了,可能还需要DDNS,然后把 sync 搬进去~

  • 山野愚人居

    07/15/2019 at 11:51回复

    100M?独享吗?我的天,我的才1M小水管……

    • 牧羊人

      07/21/2019 at 17:44回复

      是的,100M独享哈哈哈哈,只不过我是按流量计费的,我把图片什么的都用cdn了,所以一年下来也没花多少钱~

      • k8s

        08/16/2020 at 11:03回复

        可以了解一下阿里云的轻量应用服务器 轻量香港节点864元/3年,30M峰值带宽

  • 逆时针

    07/14/2019 at 20:25回复

    我的网站用的还是一个共享的虚拟主机,是不是落伍了~

    • 牧羊人

      07/21/2019 at 17:48回复

      不落伍不落伍,看需求嘛,我是之前在这个server上有过其他站,就这么留下来了,不过,vps 确实还是要方便很多的~

  • 子午物联网

    07/13/2019 at 21:42回复

    这个不错啊,有时间尝试一下!

  • 神父

    07/12/2019 at 12:36回复

    能不能用个旧手机(安卓、苹果都行)作为中转服务器,在不同的windows间同步。比如,上班时办公室pc同步至手机,下班后在家里pc自动接收手机同步来的文件

    • 牧羊人

      07/13/2019 at 10:13回复

      可以直接同步到你手头的手机,不过不建议这么干,太耗电了…

      请继续关注我的下一篇折腾日志:在家里面安装个 斐讯N1作为软路由和NAS,可解决你说这个痛点~

发表评论

华严寺的雨荷、古镇的清风
换主题?
使用 Syncthing 在多个设备间同步文件

使用 Syncthing 在多个设备间同步文件

使用 Syncthing 在多个设备间同步文件

使用 Syncthing 在多个设备间同步文件

2020 年,在我们的 20 个使用开源提升生产力的系列文章中,首先了解如何使用 Syncthing 同步文件。
-- Kevin Sonney(作者)

去年,我在 19 天里给你介绍了 19 个新(对你而言)的生产力工具。今年,我换了一种方式:使用你在使用或者还没使用的工具,构建一个使你可以在新一年更加高效的环境。

使用 Synthing 同步文件

设置新机器很麻烦。我们都有在机器之间复制的“标准设置”。多年来,我使用了很多方法来使它们在计算机之间同步。在过去(这会告诉你我年纪有多大了),曾经是软盘、然后是 Zip 磁盘、U 盘、SCP、Rsync、Dropbox、ownCloud,你想到的都试过。但这些似乎对我都不够好。

然后我偶然发现了 Syncthing

syncthing console

Syncthing 是一个轻量级的点对点文件同步系统。你不需要为服务付费,也不需要第三方服务器,而且速度很快。以我的经验,比文件同步中的许多“大牌”要快得多。

Syncthing 可在 Linux、MacOS、Windows 和多种 BSD 中使用。还有一个 Android 应用(但尚无官方 iOS 版本)。以上所有终端都有方便的图形化前端(尽管我不会在这里介绍)。在 Linux 上,大多数发行版都有可用的软件包,因此安装非常简单。

Installing Syncthing on Ubuntu

首次启动 Syncthing 时,它将启动 Web 浏览器以配置守护程序。第一台计算机上没有太多要做,但是这是一个很好的机会来介绍一下用户界面 (UI)。最重要的是在右上方的 “Actions” 菜单下的 “System ID”。

YLWYO3E-IBNGBT4-OEKJZPL-6AF3KNJ-TCMULRE-7NHTHRW-R33ESW5-NJRACAP (二维码自动识别)

设置第一台计算机后,请在第二台计算机上重复安装。在 UI 中,右下方将显示一个按钮,名为 “Add Remote Device”。单击该按钮,你将会看到一个要求输入 “Device ID and a Name” 的框。从第一台计算机上复制并粘贴 “Device ID”,然后单击 “Save”。

你应该会在第一台上看到一个请求添加第二台的弹出窗口。接受后,新机器将显示在第一台机器的右下角。与第二台计算机共享默认目录。单击 “Default Folder”,然后单击 “Edit” 按钮。弹出窗口的顶部有四个链接。单击 “Sharing”,然后选择第二台计算机。单击 “Save”,然后查看第二台计算机。你会看到一个接受共享目录的提示。接受后,它将开始在两台计算机之间同步文件。

Sharing a directory in Syncthing

测试从一台计算机上复制文件到默认目录(“/你的家目录/Share”)。它应该很快会在另一台上出现。

你可以根据需要添加任意数量的目录,这非常方便。如你在第一张图中所看到的,我有一个用于保存配置的 myconfigs 文件夹。当我买了一台新机器时,我只需安装 Syncthing,如果我在一台机器上调整了配置,我不必更新所有,它会自动更新。


via: opensource.com/article/

作者:Kevin Sonney 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

发布于 2020-01-18 12:46
数据同步
文件同步
Syncthing

赞同 11
写下你的评论...
 
19 条评论
默认
最新
观我生

直接说用这个代替ResilioSync可能更多人才会懂这软件的好处,Syncthing可以直接用Resilio付费的功能,可以选择性同步,而且还有版本控制功能,同样也可以把自己的文件/文件夹生成神key分享。不过在设置上是比较麻烦的,GUI端设置不齐全,文件夹的高级选项要web端才有(所以推荐直接用web端就好了).设置有几个要点:1,防火墙要放行既能进也能出,很多人随便设,都设成是只进不出,导致手机、桌面同步失败.2.文件夹要设成“发送和接收”默认常常是“仅接收”.3.做私有同步盘的打开“监视更改”.手机端要在黑屏时也同步的电源管理也得好好整改一翻,不然就为了下载某个大文件你就保持亮屏.这软件的安装后要配置的项稍微多了一点点,导致的结果是……好少人用啊!!!还找不到资源!!!

2020-08-31
Makarove

想问一下Syncthing怎么选择性同步啊,我在手机上共享了一下相册的文件夹,然后电脑就哼哧哼哧的全部同步下来了,只能暂停和继续,不能选择同步。

2021-03-31
观我生

同步文件夹选项里有个忽略模式,可以研究一下,我没这个需求就没去研究,不过看样子应该跟写的.gitignore文件方法类似,在里面写几种匹配模式,不想同步的文件加个后缀前缀之类的放进去.这方法可能麻烦,但是你可以多分几个文件夹啊,土办法就能解决的事情啊.

2021-03-31
Chensmeat

请教一下,需要保持两台机器都开机在线状态吗?

2020-05-14
Cameo Chen
好像是的
2020-05-26
知乎用户JwBYIx
没有iOS端
2020-01-31
无牙虎
能跨网段吗同步吗?能通过互联网同步吗?
2020-01-22
linearleaf
要求局域网么?
2020-01-18
知乎用户JwBYIx
我记得以前测过这个方案…忘了是因为什么原因弃掉的了 场景是多人协作
2020-01-18
无限黄焖鸡
挺好的,不过我现在的解决方案貌似也非常好。一台路由器,若干电脑,Android,iphone,其中android和iphone装上es文件管理器,这样我的所有设备就全部拥有smb协议以共享文件了,爽得一匹
2020-01-18
无限黄焖鸡
[惊喜]
2020-02-29
Makarove
icloud同步的本质还是数据存在苹果的服务器上,而我想实现的是,利用大硬盘组建个人的NAS服务器,手机、平板、电脑的数据都通过samba或sftp协议传输到NAS存储服务器进行存储,与此同时手机和电脑等终端都能访问NAS的文件,起到脱离第三方云盘网盘的目的,确保数据始终都在自己的硬盘里。目前电脑端实现了,还剩手机自动同步和备份了。多谢回答啦🙏
2020-02-29

否极泰来
请问怎么调才能在所有网络下同步,我只能在局域网下使用[捂脸]
2021-10-23
知乎用户JwBYIx
请教一下有没有什么办法让速度快一点😂我前面几次都是两三兆每秒,这次保持了六个多小时的几十k每秒
2021-05-25
知乎用户JwBYIx
我把办公电脑同步到单位的服务器上备份,但是windows电脑挂了一天内存占用达到2G多,内存占用太大了,是因为我同步的文件太多吗?是否有解决方案?
03-10
陈阳

不会吧?我的占用很小, 使用Syncthing搭建个人同步服务器 - 牧羊人

08-27
写下你的评论...
 

文章被以下专栏收录

Linux 爱好者
Linux 爱好者
学习 Linux 技术

登录即可查看 超5亿 专业优质内容

超 5 千万创作者的优质提问、专业回答、深度文章和精彩视频尽在知乎。