![c8210486a11c09b27df503a6fae13a63.png](https://i-blog.csdnimg.cn/blog_migrate/7e399647d85945395c450590fda8b3be.jpeg)
前段时间作者用树莓派打造了一个种子下载机,当时提到了一嘴qbittorrent的自动检测文件夹中的种子并且自动下载的功能。这个功能配合今天要讲的syncthing简直就是一对完美组合——可以轻松实现在pc端下载好种子文件的同时传输到树莓派让其自动下载的操作!如果再配合一个python爬虫,让其自动爬取自己在byr中收藏的种子,简直就是懒人利器啊!在下面先把之前那篇文章贴上来:
来来回回:树莓派打造北邮人种子下载机——下载、做种一条龙全站式教程zhuanlan.zhihu.com以下就正式介绍这款开源软件的特性和安装:
特点我就不多说了,在GitHub上有:
![08d36dcf4841a7c6114c2ed0e598ff82.png](https://i-blog.csdnimg.cn/blog_migrate/8da7282f4c2972f49a607cc249c8e2d9.jpeg)
简单讲就是:安全、简单、自动、多平台
接下来就是下载安装了,可以在这里找到你需要的版本
syncthing/syncthinggithub.com![0812af57cd54da8b9f2c26c761a4a18f.png](https://i-blog.csdnimg.cn/blog_migrate/5937a7e49047766b26e586ddd902471e.png)
先在树莓派上部署安装这个软件:
cd ~
wget https://github.com/syncthing/syncthing/releases/download/v1.3.4/syncthing-linux-arm64-v1.3.4.tar.gz
tar -zxvf syncthing-linux-arm64-v1.3.4.tar.gz
注意这个软件的更新是比较快的,建议先到GitHub上看一看,然后下载最新版本。
解压完成之后我们直接进入到这个目录当中,给syncthing授予执行权限:
cd syncthing-linux-arm64-v1.3.4
sudo chmod +x syncthing
这样我们就可以执行这个软件了,先来尝试运行一下:
./syncthing
会出现这样一些log信息:
![325c676512c3048a8037b74309b75294.png](https://i-blog.csdnimg.cn/blog_migrate/30b5b1789157789cc877698970a65319.jpeg)
这些都不用管,如果我们想要在远程浏览器访问树莓派上的这个syncthing服务的话,需要先关闭这个服务(CTRL+C),然后再编辑一下监听端口即可。
sudo vim ~/.config/syncthing/config.xml
找到:
<address>127.0.0.1:8384</address>
将其改为:
<address>0.0.0.0:8384</address>
就可以通过 树莓派ip:8384 的方式访问到这个服务的webui界面了:
![2f35d7d9ed17cbd35cfc425d8fa8b1e0.png](https://i-blog.csdnimg.cn/blog_migrate/8b78714fbe9ded4c8bad8575423f03fe.jpeg)
首次打开,软件会提醒你设置webui的用户名和密码,建议设置。然后就是把这个服务添加为系统服务,这样我们就可以使用systemctl命令进行控制该服务的开启、关闭、开机自启或关闭了。具体做法如下:
sudo vim /etc/init.d/syncthing
复制粘贴以下内容:
#!/bin/sh
### BEGIN INIT INFO
# Provides: Syncthing
# Required-Start: $local_fs $remote_fs $network
# Required-Stop: $local_fs $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Syncthing
# Description: Syncthing is for backups
### END INIT INFO
# Documentation available at
# http://refspecs.linuxfoundation.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/iniscrptfunc.html
# Debian provides some extra functions though
. /lib/lsb/init-functions
DAEMON_NAME="syncthing"
DAEMON_USER=root
# 注意!这里的DAEMON_PATH是syncting所在的路径,每个人的安装方式、版本不一样,这个路径都会有所区别,请自行修改
DAEMON_PATH="/root/syncthing-linux-arm64-v1.3.4/syncthing"
DAEMON_OPTS=""
DAEMON_PWD="${PWD}"
DAEMON_DESC=$(get_lsb_header_val $0 "Short-Description")
DAEMON_PID="/var/run/${DAEMON_NAME}.pid"
DAEMON_NICE=0
DAEMON_LOG='/var/log/syncthing'
[ -r "/etc/default/${DAEMON_NAME}" ] && . "/etc/default/${DAEMON_NAME}"
do_start() {
local result
pidofproc -p "${DAEMON_PID}" "${DAEMON_PATH}" > /dev/null
if [ $? -eq 0 ]; then
log_warning_msg "${DAEMON_NAME} is already started"
result=0
else
log_daemon_msg "Starting ${DAEMON_DESC}" "${DAEMON_NAME}"
touch "${DAEMON_LOG}"
chown $DAEMON_USER "${DAEMON_LOG}"
chmod u+rw "${DAEMON_LOG}"
if [ -z "${DAEMON_USER}" ]; then
start-stop-daemon --start --quiet --oknodo --background
--nicelevel $DAEMON_NICE
--chdir "${DAEMON_PWD}"
--pidfile "${DAEMON_PID}" --make-pidfile
--exec "${DAEMON_PATH}" -- $DAEMON_OPTS
result=$?
else
start-stop-daemon --start --quiet --oknodo --background
--nicelevel $DAEMON_NICE
--chdir "${DAEMON_PWD}"
--pidfile "${DAEMON_PID}" --make-pidfile
--chuid "${DAEMON_USER}"
--exec "${DAEMON_PATH}" -- $DAEMON_OPTS
result=$?
fi
log_end_msg $result
fi
return $result
}
do_stop() {
local result
pidofproc -p "${DAEMON_PID}" "${DAEMON_PATH}" > /dev/null
if [ $? -ne 0 ]; then
log_warning_msg "${DAEMON_NAME} is not started"
result=0
else
log_daemon_msg "Stopping ${DAEMON_DESC}" "${DAEMON_NAME}"
killproc -p "${DAEMON_PID}" "${DAEMON_PATH}"
result=$?
log_end_msg $result
rm "${DAEMON_PID}"
fi
return $result
}
do_restart() {
local result
do_stop
result=$?
if [ $result = 0 ]; then
do_start
result=$?
fi
return $result
}
do_status() {
local result
status_of_proc -p "${DAEMON_PID}" "${DAEMON_PATH}" "${DAEMON_NAME}"
result=$?
return $result
}
do_usage() {
echo $"Usage: $0 {start | stop | restart | status}"
exit 1
}
case "$1" in
start) do_start; exit $? ;;
stop) do_stop; exit $? ;;
restart) do_restart; exit $? ;;
status) do_status; exit $? ;;
*) do_usage; exit 1 ;;
esac
保存并退出,我们就可以使用systemctl命令对服务进行控制了。
至于windows平台,它的操作很简单,下载并解压,双击exe文件,会在浏览器自动弹出webui窗口。然后你就可以通过设备码将两台设备连接,设置一个同步文件夹,将这个同步文件夹的路径添加到qbittorrent自动添加种子的路径下就可以实现pc端下载种子,树莓派自动下载文件啦!