Everything posted by wuyongjun
-
syncthing 同步详细配置
一直都想把群晖服务器的数据同步到unRaid上来,使用群晖的官方备份工具只能做到把群晖数据备份到unRaid上,而不能使用,只有群晖遇到灾难性问题时,作为备份资料还原到群晖中,而备份本身在unRaid中是不能用的。这个群晖备份方案不合适我的使用习惯。 近日发现一个同步工具是安装在全系列的操作系统上的同步工具Syncthing,在测试使用时发现可以双向同步,很合适我的使用习惯,把群晖的数据备份了,还能在unRaid中使用。非常不错。但在使用中发现几个有瑕疵的地方。直到现在也没有在网上找到一个合适的解决方案。经过两天的研究,终于找到问题,并做成教程,供大家学习使用。 问题一,unRaid社区应用中的两个版本应用有什么区别。很多人都认为这两个版本都是有区别的,有的说用这个好,有的说用那个好。经过半天时间研究发现,两个版本没有区别。都是一样的一个是以用户名做为配置目录,一个以默认做为配置。区别在于,一个为你配置好了以media做为默认目录,添加文件夹后主目录在/mnt/user/。一个以data为名,数据保存在appdata/Syncthing目录下的默认配置。当然数据保存在appdata/Syncthing目录下。 问题二,如何把数据保存在根目录下。而又不把配置文件转移到根目录。 经过研究发现这两个问题我一一解决。下面我们来安装Syncthing,并图文并解。 第一部份: 在unRaid中点击“应用”——在“搜索”中输入“Syncthing”显示两个版本的Syncthing。 安装linuxserver的版本,为什么选择他。因为他配置接近官方配置表 把原容器配置中的两个“data”修改了。其它保持原容器配置不变。 因为这两个目录是必填配置,如果你一开始不想修改配置,可以把这两个目录删除或者打开高级视图把这两个"data"必填改成"否"直接先安装好后再处理也行。 1、修改第一个“data” 把data1的名称、容器路径、主机路径、默认值(可不填)全改为:/mnt/user/ 注意:/mnt/user/在这user后的反斜杠一定要。否则会在Syncthing中添加文件夹时会提示你的目录无权限。 更为重要的是,如果有两个以上或更多的用户名,如果你要把同步目录创建在N个用户时把1改在你要存储的硬盘编号上:如user1、user2、user3、或更多userN。 2、修改第2个“data” 把data2的名称、容器路径、主机路径、默认值(可不填)全改为:/mnt/disk1/ 注意:/mnt/disk1/在这disk1后的反斜杠一定要。否则会在Syncthing中添加文件夹时会提示你的目录无权限。 更为重要的是,如果有两个以上或更多的硬盘,如果你要把同步目录创建在N个硬盘时把1改在你要存储的硬盘编号上:如disk2、disk3、或更多diskN。 修改好后,点击下方应用,开始安装。 等待安装完成。 完成Syncthing安装。 第二部份: 1.首次来到Syncthing WEB页面。 这儿选择"否"不允许匿名使用报告。 2. 点击危险下面的设置 3. 选择常规,更改设备名。 4. 选择"图形用户界面"。添加用户名和密码,保存重启登录。 5.点击"操作"——选择"高级" 6.选择“默认值”——打开“默认文件夹” 7.找到“path”这个参数修改 删除“波浪号”改成 “/mnt/user/”或“/mnt/disk1/” 注意:这儿的“path”对应你在配置表中的“data1”或“data2”中的名称。一般来说。你用“data1”映射那么“data2”是不会用的。用“data2”映射那么“data1”是不会用的。这儿不影响根目录的使用。 8.改好后,保存。 9. 添加文件夹 10.目录选择你现有的或创建一个目录。文件夹ID不用管它 注意新创建的目录会自动生成文件夹在根目录。 11.在版本控制中,先选择"简易版本控制" 12.在高级中,可以选择忽略文权限,以降低同步时造成的文件没有权限问题。 13.设置完成后,保存。 第三部份: 添加一个远程设备 1.点击右下角的"添加远程设备" 2.如果你有其它设备。那么会显示在红色条的位置。 3.双击红条设备会自动添加到设备ID中。 4.选择共享:把你要共享出来的文件夹选中。后面可以加密。 5.高级中我们保持默认。如有需要修改。在运行后。有什么其它问题,再修改。 保存完成。 这样我们一台同步服务器就设置好了。本文是针对unRaid中的Synching来设置的。其它系统的自行研究,理论大概一样。 第四部份: 连接服务器开始同步 1. 在浏览器打开其它Synching设备IP,会看到这样一个请求 2. 点击“添加设备” 3. 在这儿我们不做任何选择,直接保存。 注意:两个共享设置的意思 一:作为中价:是将有共同名称的文件夹都添加到本地服务器中(这儿的服务器是群晖nas或是其它unRaid) 二:自动接授:自动创建本地服务器没有的文件夹。 所以以上两种我们不选择。因为我们要对接两个文件夹。 4. 刷新nas会弹出“新文件夹”点击“添加” 5. 弹出添加文件夹的设置窗口后。我们看到如下: 6. 把文件夹的标签中的名称改成你Nas中想要同步的文件夹名称。 我想同步的是Documents这个文件夹,所以修改后是如下图: 注意。如果你同步的不是相同名称的文件夹,那么,你可以在文件夹标签中输入你要同步的文件夹名称。如:music、photo或者是video都行。同步后。在unRaid的documents目录下自动会是音乐、照片或是视频了。 7. 版本控制我们依然选择"简易版本控制" 8. 高级保持默认就可以了。 好了,设置都没有问题了。保存退出 现在。可以看到开始同步了。 安装Syncthing后,在没有设置的情况下,会产生很多的忽略垃圾文件造成原本清洁的目录结构很混乱。有效设置能保持原本目录清洁,又能提高互传速度和稳定性。 1. 打开高级 默认忽略模式 填加下面内容: // 下面所有类型全部忽略,每行一个有效防止同步各类临时文件。 .* .** ~* ~** ~$* ~$** 2. 默认文件夹 Path设置为:/mnt/user/ (默认为:~) 3. 选项 一、默认设置是通过外网连接,无法通过局域网连接传入同步连接侦听地址,因此,设置如下,就能在本地用局域网快速同步。外网同步保留默认。 Listen Addresses设置为:tcp://192.168.xx.xx:22000, tcp://0.0.0.0:22000, tcp://:22000, default (默认:default) 二、增加内存数据量,有助于大文件吞吐量默认:0.在低资源情况下同步设置为16或32,高性能设置为1024或更多)。 Max Concurrent Incoming Request KiB设置为:0 三、区分大小写有助提高系统所需安全检查(因一次把文件夹小写改大写就同时生成两个大小写文件夹,而把所以数据毁了而后悔,所以还是勾选为佳) Case Sensitive FS勾选 配置优化 Syncthing 附带了一组默认值,旨在为大多数人提供良好的效果 用户在常见情况下。但是,有许多 可以调整的配置选项以提高性能或 减少资源消耗。本文提出建议,但您 需要进行试验以找到适合您的特定设置的最佳设置。 针对高性能进行调优 您有闲置的资源,并希望优化性能。开始 同时,请确保您运行的是 64 位生成,并且索引数据库 位于 SSD 上。首先是一些常规选项: progressUpdateIntervalS 设置为 -1 可禁用进度更新。花在进度上的时间 更新是未花在同步上的时间。 setLowPriority 设置为 false 以正常优先级运行 Syncthing。这可能允许 同步以使用更多的 CPU 时间,这可以提高性能。 maxFolderConcurrency 为要同步的文件夹数找到适当的设置 同时,考虑到 底层存储系统。如果两个文件夹位于同一基础上 旋转磁盘,同时同步它们将严格丢失 性能。如果底层存储是大型磁盘阵列, 那么同时同步多个文件夹可能是有益的。 databaseTuning 设置为 。无论实际数据库的大小如何,这 增加缓冲区和设置的数量,以优化更高的 吞吐量。large maxConcurrentIncomingRequestKiB 这将设置正在处理的最大数据量(从 磁盘并通过网络传输)在任何给定的 时间。这是一个全局限制器,而不是每个文件夹。如果你有很多 文件夹和/或大量设备和内存,您可能需要 增加此值。默认值为 256 MiB,考虑值为 1024 MiB 或更多。 这些选项特定于文件夹,应在每个文件夹上设置: fsWatcherEnabled 如果可能,使用文件系统通知可以避免不必要的 I/O 大型定期扫描。使用通知可以更快地检测到更改 比扫描。 Copiers 用于文件同步的复制阶段的例程数。类似 到其他并发选项,如果有很多文件要同步,并且如果 I/O 系统可以处理它,您可能会看到性能的提高 增加此值。默认值与系统相关,位于某处 介于 1 和可用的 CPU 内核数之间。 Hashers 对本地更改的文件进行哈希处理时,哈希例程的数量要 用。值越高意味着 I/O 和 CPU 负载越大,并且可能会增加 当有大量文件需要哈希时的性能,假设 I/O 带宽和 CPU 可用。默认值与系统相关, 介于 1 和可用 CPU 内核数之间。 pullerMaxPendingKiB 在任何给定条件下有未完成请求的最大数据量 时间。较高的值可能会提高性能,尤其是在网络 或 I/O 延迟较高。默认值为 32 MiB。 scanProgressIntervalS 为 GUI 提供扫描进度更新并不是很昂贵,但是 是可以花在更有成效的事情上的努力。如果你不这样做 需要查看扫描进度,将其设置为 -1 以禁用它。 weakHashThresholdPct 默认情况下,Syncthing 将查找滚动(弱)哈希匹配项以进行检测 如果文件中的大量数据已更改,则文件中的数据已移动。如果你的 用例不会导致文件中的数据发生偏移,如果文件发生 大型(电影、VM 映像等),无需花时间检查 弱哈希。将阈值设置为 101% 以禁用弱哈希。 maxConcurrentWrites 同步限制任何未完成的写入系统调用的数量 给定时间以避免 I/O 系统过载。如果您增加 复印机、未完成的网络请求或其他增加的设置 并发写入次数,您可能需要增加此值。 默认值为 2。 disableFsync 同步文件和目录后对文件和目录进行同步调用 以确保它们在稳定存储时安全无虞。这是一个很好的 东西,但它可能很昂贵。如果您有很多文件要同步 和/或大量可用的 I/O 带宽,您可能会看到性能 通过禁用 增加 。对于大多数人来说,不建议这样做 设置,因为您正在增加在电源的情况下数据丢失的风险 中断或系统崩溃。fsync()fsync() blockPullOrder 默认情况下,Syncthing 在拉入时使用伪随机块顺序 以便更好地在多个设备上分配负载。如果你是 通常只从一台设备下载文件,如果您有 旋转磁盘作为底层存储,您可能会看到性能 通过将其设置为 来增加。inOrder copyRangeMethod 如果您的底层文件系统支持它,您可能会看到性能 通过启用写入时复制方法增加,因为它减少了 同步文件时实际复制到磁盘上的数据。 caseSensitiveFS 如果底层文件系统区分大小写,您可能会看到 通过启用此选项提高性能。这将禁用许多 不区分大小写的文件系统所需的安全检查,以及 如果您的底层文件系统实际上不是大小写,则可能会导致数据丢失 灵敏。 /, / 如果您的用例需要它们,请使用它们,但请记住它们 具有相当高的性能成本。 对于设备,请考虑以下事项: numConnections 设置为或高于可用的 CPU 内核数。这允许最大 TLS 连接的并发性,并可能提高性能。 其他事项: GOMEMLIMIT and : 这些环境变量可用于 控制垃圾回收器。对于大型设置,请设置为 Syncthing 应使用的最大内存量可以提高 性能。原因是这会降低垃圾收集器的频率 在较低的内存使用率期间。在 Go 中阅读更多内容 GC 指南。GOGCGOMEMLIMIT 针对低资源进行调整 您的资源有限,并希望 Syncthing 使用尽可能少的资源。你 不太关心性能。 常规选项: progressUpdateIntervalS 设置为 -1 可禁用进度更新。进度更新不是 绝对必要,并消耗一定量的 CPU 和内存。 maxFolderConcurrency 设置为 1 可按顺序同步文件夹,从而减少峰值内存使用量。 databaseTuning 设置为:auto 。无论实际数据库大小如何,这都会减少缓冲区数量的大小,以优化减少内存使用量。 maxConcurrentIncomingRequestKiB 设置为 32 MiB 以减少用于缓冲的内存量 对传入请求的响应。 文件夹选项: fsWatcherEnabled 如果可能,使用文件系统通知比 进行完整的定期扫描。 copiers, hashers 设置为 1 可减少同步和散列 文件夹,减少峰值内存使用量。 pullerMaxPendingKiB 设置为 16 MiB 以减少用于缓冲的内存量 同步时。 scanProgressIntervalS 设置为 -1 可禁用扫描进度更新。跟踪扫描进度 使用内存和 CPU。 weakHashThresholdPct 设置为 101% 以禁用弱哈希。使用弱哈希有一个 内存成本。 copyRangeMethod 如果您的底层文件系统支持它,则使用 copyrange 会更多 比让 Syncthing 进行数据复制更有效。 caseSensitiveFS 如果您的基础文件系统区分大小写,请将其设置为跳过 由于缓存而产生内存成本的检查数。这些检查 对于不区分大小写的文件系统是必需的,禁用它们可以 如果您的底层文件系统不是实际情况,则会导致数据丢失 灵敏。 设备选项: numConnections 设置为 1 可减少每个设备的开销量,因为每个连接 具有内存和 CPU 成本。 其他事项: GOMEMLIMIT and GOGC 这些环境变量可用于控制垃圾 收藏家。对于小型设置,设置为所需的最大值 Syncthing 应该使用的内存量可以使垃圾回收器 更紧密地遵守所需的限制。在 Go GC 指南中阅读更多内容。GOMEMLIMIT GOMAXPROCS 此环境变量可用于控制最大数量 Syncthing 使用的并发运行线程数。将其设置为 1(或 任何低于实际核心数的数字)将减少 Syncthing 在任何给定时刻使用的 CPU 量。
-
unraid使用苹果的时间备份总是断开连接,时间机器未能完成备份到“Time Machine”
-
unraid使用苹果的时间备份总是断开连接,时间机器未能完成备份到“Time Machine”
unraid使用时间备份总是断开连接,时间机器未能完成备份到“Time Machine”,一个130G的系统备份了7天也没有完成首次备份
-
最完整rclone挂载网盘到本地(Alist篇)解决方案
rclone挂载网盘到本地(Alist篇) alist 最近折腾unraid存储服务器,对于云盘有很多的APP特别麻烦,所以想把所有不同的网盘都放在一起进行管理,先是用了CloudDrive2感觉很不错,图形界面设置很简单,小白都会。我也喜欢,但免费版只能挂两个云盘,一个本地。着实有点失望,开终身会员499.论价格只是unraid一半,但对免费用户来说 ,有点小贵。直到听说alist的大名,rclone是全系列的产品。苹果,Windows,linux等系统全支持。以前还没有用过,这次就来试试。如遇到问题可以去官方网站研究。 本次我们跳过所有官方方法安装,在unraid安装插件来实现本地挂载云盘。 安装 1.打开unRaid,到应用 2.搜索“rclone” 3.最新版会有两个rclone,一个docker版,一个插件版。 4.我们下载插件版。 5.如果无法安装。先下载一个docker版的v2rayA。架梯子安装。我用正版unRaid没有任何系统设置,把梯子架好后,添加节点。选择美丽的节点。运行梯子。就能正常下载rclone,不像网上说的那样要在系统go文件,或是在etc网络文件中添加设置才能用 。 5.安装完成后,选择插件,看看rclone有没有在插件中。如果有。 6.点右上角的“终端”打开 7.下面我们将开始配置rclone。 配置rclone rclone config # 进入rclone设置 1. No remotes found, make a new one? n) New remote # 创建新配置 s) Set configuration password # 为配置设置密码 q) Quit config # 退出配置 n/s/q> n enter。 #这里选择n 2. Enter name for new remote. name> 189Cloud enter。 # 设置名字(网络教程都是用remote为配置名)。 3. Option Storage. Type of storage to configure. Choose a number from below, or type in your own value. 前面省略50种连接……. 51 / Uptobox \ (uptobox) 52 / WebDAV \ (webdav) 53 / Yandex Disk \ (yandex) 54 / Zoho \ (zoho) 55 / premiumize.me \ (premiumizeme) 56 / seafile \ (seafile) Storage>52 enter。 #输入你做连接的服务器序号,这儿我们用webdav做连接,所以选择52 4. Option url. URL of http host to connect to. E.g. https://example.com. Enter a value. url> http://192.168.xxx.xxx:5244/dav/天翼云盘 enter # 设置远程地址url: http://your_alist_ip:port/dav/网盘名 #这里在alist的地址和端口后加/dav,是alist官方端口挂载要求的 5. # 这里选7就可以了,1-6都不是我们使用的 Name of the WebDAV site/service/software you are using Choose a number from below, or type in your own value Option vendor. Name of the WebDAV site/service/software you are using. Choose a number from below, or type in your own value. Press Enter to leave empty. 1 / Fastmail Files \ (fastmail) 2 / Nextcloud \ (nextcloud) 3 / Owncloud \ (owncloud) 4 / Sharepoint Online, authenticated by Microsoft account \ (sharepoint) 5 / Sharepoint with NTLM authentication, usually self-hosted or on-premises \ (sharepoint-ntlm) 6 / rclone WebDAV server to serve a remote over HTTP via the WebDAV protocol \ (rclone) 7 / Other site/service or software \ (other) vendor>7 enter。 #因为我们选择的是webdav方法挂载云盘。这里选择其它方式连接到服务器就可以了 6. Option user. User name. In case NTLM authentication is used, the username should be in the format 'Domain\User'. Enter a value. Press Enter to leave empty. user> admin #这里是你alist的用户名 7. Option pass. Password. Choose an alternative below. Press Enter for the default (n). y) Yes, type in my own password #是的,输入我自己的密码 g) Generate random password #生成随机密码 n) No, leave this optional password blank (default) # 否,将此可选密码留空(默认) y/g/n>y enter #这里输入y Enter the password: password: #这输入你的密码,密码是看不到的 Confirm the password: password: #再次输入你的密码 enter 8. Option bearer_token. Bearer token instead of user/pass (e.g. a Macaroon). Enter a value. Press Enter to leave empty. bearer_token> enter # 这里是填写密钥的,如果没有可以留空 #直接回车 9. Edit advanced config? y) Yes n) No (default) y/n>n enter #默认配置就可以了 #高级配置或默认配置。 10. Configuration complete. Options: - type: webdav - url: http://192.168.xxx.xxx:5244/dav/天翼云盘 - vendor: other - user: admin - pass: *** ENCRYPTED *** Keep this "189Cloud" remote? y) Yes this is OK (default) #是的,我确认默认配置 e) Edit this remote #编辑配置 d) Delete this remote #删除配置 y/e/d> y enter 确认配置无误后,确认。 11. Current remotes: Name Type ==== ==== 189Cloud webdav alist webdav e) Edit existing remote n) New remote d) Delete remote r) Rename remote c) Copy remote s) Set configuration password q) Quit config e/n/d/r/c/s/q> q # 最后按q退出设置 挂载到本地 1: 查看是否连接成功,使用以下命令可以确认是否已经挂载上了alist和天翼云盘 rclone lsd Onedrive: rclone lsd 189Cloud: # 查看alist的文件目录 #查看天翼云盘的文件目录 2: rclone ls Onedrive: rclone ls 189Cloud: # 查看Onedrive的文件 #查看天翼云盘的文件 如果发生下面的结构,应该检查,你输入的运行脚本是不是正确,查找错误,更正后,就可以看到你的网盘结构了。 # 一、 前台模式挂载到本地 (建议用户使用后台挂载) #1.将Onedrive挂载到本地目录/webdav rclone mount Onedrive:/ /mnt/user/webdav/alist/Onedrive --copy-links --no-gzip-encoding --no-check-certificate --allow- other --allow-non-empty --umask 000 --use-mmap 挂载完成后,发现控制台就卡住了,在官方文档看了半天,发现这是前台命令,会一直运行,ctrl+c之后就会退出本地挂载。 #2. 将天翼挂载到本地目录/webdav (建议用户使用后台挂载) rclone mount 189Cloud:/ /mnt/user/webdav/alist/189Cloud --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000 --use-mmap 二、 后台模式挂载到本地 # 1.将Onedrive挂载到本地目录/webdav # --daemon 强制后台模式 rclone mount Onedrive:/ /mnt/user/webdav/alist/Onedrive --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000 --use-mmap --daemon 官方文档只是提了以下这个命令,并没有太详细的信息。 # 2.将189Cloud挂载到本地目录/webdav # --daemon 强制后台模式 rclone mount 189Cloud:/ /mnt/user/webdav/alist/天翼云盘 --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000 --use-mmap --daemon # 3.将189Cloud挂载到本地目录/webdav # --daemon 强制后台模式 rclone mount baiduCloud:/ /mnt/user/webdav/alist/百度网盘 --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000 --use-mmap --daemon 其它的云盘挂都是一样的配置。只是把下面改在成你所用的云盘就行。 Onedrive:/ /mnt/user/webdav/alist/Onedrive 189Cloud:/ /mnt/user/webdav/alist/天翼云盘 baiduCloud:/ /mnt/user/webdav/alist/百度网盘 115:/ /mnt/user/webdav/alist/115 结构简析: Onedrive:/ /mnt/user/webdav/alist/Onedrive Onedrive:/ rclone配置名称(自己创建)。为网盘的名字不特指微软网盘test为要挂载的网盘文件夹路径,不填留为挂载整个网盘 /mnt/user/rclone/onedrive 本地用于挂载的目录 关于其他参数含义,可自行查阅最下方命令说明 如需要给emby之类使用,挂载文件夹不显示文件,请修改--umask 000 在emby终端输入 umask / # umask 0022 / # 将示例中--umask 000修改为--umask 0022emby即可正常访问文件 解除本地挂载 # 解除本地挂载,后面跟的是挂载的本地目录 # 当自动取消挂载失败时,也可以这样手动取消挂载 fusermount -qzu /webdav 开机自动挂载 上面的手动挂载方式,在机器重启后,就失效了,每次都要手动在设置一遍,很麻烦。我们可以使用service文件来进行自动挂载。 一、使用User Scripts插件新建开机任务 在 Unraid 应用中心安装 User Script 插件。安装后打开插件,添加新脚本,此处命名为 automount_rclone 1. 添加新脚本 2. 脚本名称命名为:automount_rclone 3. 保存 4. 编辑脚本 5. 把要挂载的网盘的后台运行脚本全都添加到编辑栏中 6. 如果有两条或更多回车后再添加一条。 7. 保存脚本。 8. 计划任务以“陈列启动时运行” 9. Apply(应用) 10.Done(完成) 设置好之后,就可以开机启动阵列自动挂载了。 二、 修改Service文件新建开机任务,输入示例命令 (本人未测试,但作为保留) 设置service文件 #创建service文件 vim /usr/lib/systemd/system/rclone.service 文件内容: [Unit] Description=rclone [Service] User=root ExecStart=/usr/bin/rclone mount alist: /webdav --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000 --use-mmap [Install] WantedBy=multi-user.target 设置开机自启 # reload守护进程 systemctl daemon-reload # 设置service文件自启 systemctl enable rclone.service # 启动service文件 systemctl start rclone.service 总结 相对来说alist配置配置还是比较简单,很快就能通过文档设置好。相对比较麻烦的是rclone,会出现报错情况,只能一点一点排查,如果按照文档走,大概率可以规避掉一些问题。