自从百度同步盘GG了以后,就再也没用同步盘工具了,东西都存在网盘,但拉取的速度实在太慢。
家里刚好有一块闲置的硬盘,一个树莓派4,来组一个家庭私有同步盘。
一、给树莓派刷一个新的系统
因为不需要用到图形界面,这里直接下载的Lite版。
用Etcher写入镜像。刷完后在根目录下创建空白ssh文件,开启ssh访问。
路由器上找到树莓派的IP地址,用ssh登录后,先修改root密码
sudo passwd root
二、挂载硬盘
1、查看当前插入的硬盘
fdisk -l
可以看到此处盘符为:/dev/sda,包含了一个NTFS分区
2、格式化硬盘分区
sudo mkfs -t ext4 /dev/sda1
3、挂载硬盘
(1)创建挂载目录
mkdir /home/pi/wd
(2)赋权
chmod 777 /home/pi/wd chown -R pi:pi /home/pi/wd
(3)挂载
mount /dev/sda1 /home/pi/wd
4、查看挂载情况
df -h
5、设置开机自动挂载
(1)查看硬盘的UUID
blkid
(2)记录下这个UUID:5d7cd7b7-bc96-428d-bb13-402cf50627b1
(3)打开编辑挂载文件
nano /etc/fstab
(4)在最后一行加入
UUID=5d7cd7b7-bc96-428d-bb13-402cf50627b1 /home/pi/wd ext4 defaults 0 0
(5)保存退出
(6)执行挂载
sudo mount -a
(7)测试硬盘速度(可选)
安装hdparm
sudo apt install hdparm
执行测试
hdparm -tT --direct /dev/sda
三、安装syncthing
(一)到github上下载最新版
https://github.com/syncthing/syncthing/releases/latest
树莓派应选择arm版本,直接下载到树莓派上
(二)解压
tar -zxvf syncthing-linux-arm-v1.18.2.tar.gz
(三)重命名目录
mv syncthing-linux-arm-v1.18.2 syncthing
(四)进入 syncthing 目录
cd syncthing
(五)给主程序加上执行权限
chmod +x syncthing
(六)运行主程序
~/syncthing/syncthing
运行后按Ctrl+C退出,会自动生成一个配置文件
(七)修改配置文件
sudo nano /home/pi/.config/syncthing/config.xml
(八)将监听地址127.0.0.1:8384改为0.0.0.0:8384
(九)再次运行主程序
~/syncthing/syncthing
(十)配置开机启动
1.创建启动文件
sudo nano /etc/init.d/syncthing
2.粘贴以下内容(DAEMON_PATH为主程序地址,请根据实际情况修改)
#!/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=pi DAEMON_PATH="/home/pi/syncthing/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
3.加可执行权限
sudo chmod +x /etc/init.d/syncthing
4.添加默认启动
sudo update-rc.d syncthing defaults
5.启动服务
sudo service syncthing start
6.打开浏览器访问
7.更改默认文件夹
8.更改监控目录数量限制
echo "fs.inotify.max_user_watches=204800" | sudo tee -a /etc/sysctl.conf
9.配置nginx(这一步可以省略)
在server{}中
root /home/pi/wd; autoindex on; autoindex_exact_size on; autoindex_localtime on; charset utf-8,gbk; # 避免中文乱码
10.搭建syncthing的中继服务器和全球发现服务器(对公网同步有需求)
参考:http://relyn.cn/share/69