Seafile Terminal客户端同步间隔设置开机自启教程

简介

因为我个人的怪癖,代码喜欢实时同步到服务器上去让它自己热编译
所以想找找看多端同步的开源软件,之前是用nextCloud
但发现它多端同步的时候不是增量上传,导致同步速度极慢
我这暴脾气,果断换了seafile
但在使用的时候,发现seafile的Terminal客户端不是自动开机自启的,每次重启还要执行seaf-cli start启动守护线程,很麻烦,官网文档又没给ubuntu14.04开机自启的解决方案
所以自行搜索调试,最后解决了此问题,在此记录一下。

环境

系统:ubuntu 14.04
时间:2018-10
seafile server:6.1.8

安装&配置

seafile服务器端没啥好说的,用的是seafile官方文档-Linux 下部署 Seafile 服务器中提供的Seafile 安装脚本
下载了专业版的包(需要去Seafile用户中心注册下载)
然后跟着安装脚本走就行了。
Terminal客户端的配置参考Install Seafile Client on LinuxSeafile client for a Cli server都不难,就几条命令

开机自启

如果你的服务器运行systemd(ubuntu15.04及以上),就可以用官方文档-开机自启动 Seafile的解决方案,不过我没试过,不知道好用不好用。
因为我服务器系统版本是ubuntu14.04,不支持systemd,所以用以下方案,参考了Seafile Terminal Client - Installation und Synchronisation unter Ubuntu 14.04.x LTS
首先,创建一个开机脚本

1
nano /usr/local/bin/seafile-client-starter.sh

写入以下内容,注意seaf-cli的路径别写错了

1
2
3
#!/bin/sh
set -e
/usr/bin/seaf-cli start

退出,加个执行权限

1
chmod +x /usr/local/bin/seafile-client-starter.sh

开个crontab

1
crontab -e

写入以下内容,意思是重启后等10秒,让系统网络啊什么的正常工作,然后运行seafile开机脚本,根据自己的情况调整等待时间。我这服务器10秒就够了。

1
@reboot sleep 10 && /bin/sh /usr/local/bin/seafile-client-starter.sh 2>&1 > /var/log/cron.log

重启就行了,运行seaf-cli status看看同步正不正常。

调整同步间隔

其实不设置也没啥事,同步间隔也能接受,不过GUI客户端能设置,Terminal客户端就也要设置一下才甘心
参考了这个
打开seafile目录下的seafile-data/repo.db

1
sqlite3 ~/seafile-client/seafile-data/repo.db

执行以下内容,$repo-id替换为你资料库的id$time替换为你想设置的间隔

1
INSERT INTO "RepoProperty" VALUES ('$repo-id','sync-interval','$time');

退出,重启seaf-cli

您的支持将鼓励我继续创作!