简介
因为我个人的怪癖,代码喜欢实时同步到服务器上去让它自己热编译
所以想找找看多端同步的开源软件,之前是用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 Linux和Seafile 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
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