syncthing下载_全平台免费同步神器——syncthing

c8210486a11c09b27df503a6fae13a63.png

前段时间作者用树莓派打造了一个种子下载机,当时提到了一嘴qbittorrent的自动检测文件夹中的种子并且自动下载的功能。这个功能配合今天要讲的syncthing简直就是一对完美组合——可以轻松实现在pc端下载好种子文件的同时传输到树莓派让其自动下载的操作!如果再配合一个python爬虫,让其自动爬取自己在byr中收藏的种子,简直就是懒人利器啊!在下面先把之前那篇文章贴上来:

来来回回:树莓派打造北邮人种子下载机——下载、做种一条龙全站式教程​zhuanlan.zhihu.com

以下就正式介绍这款开源软件的特性和安装:

特点我就不多说了,在GitHub上有:

08d36dcf4841a7c6114c2ed0e598ff82.png

简单讲就是:安全、简单、自动、多平台

接下来就是下载安装了,可以在这里找到你需要的版本

syncthing/syncthing​github.com
0812af57cd54da8b9f2c26c761a4a18f.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

这些都不用管,如果我们想要在远程浏览器访问树莓派上的这个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

首次打开,软件会提醒你设置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端下载种子,树莓派自动下载文件啦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值