背景
我个人收集了310GB的 计算机后端相关PDF电子书,手上的iPad存储是256GB, 实际可用的是240G。
我想把部分电子书 同步到iPad上。
iPad上的PDF expert自带有samba同步功能, 真心点赞!!!
思路: 为了减少副本占用存储空间, 打算采用文件软连接 + samba来实现。
那怎么把310GB的文件 局部软连接 瘦身为240GB 呢?
环境
1 2 3 4 5 6 7
| root@debian:~# smbd --version Version 4.13.13-Debian root@debian:~#
root@debian:~# nmbd --version Version 4.13.13-Debian root@debian:~#
|
创建 软链接link
脚本
- 先将所有文件创建为软连接
- 精简部分软连接
- 测试
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| chunli@debian:~$ cat link_pdf.sh DIR="ipad_book" FROM="/mnt/chunli/book/"
rm -rf $DIR mkdir $DIR
find $FROM -type f -print0 | sed "s@${FROM}/@@g" | xargs -0 -i dirname {} | tr '\n' '\0' | xargs -0 -i mkdir -p ${DIR}/{} find $FROM -type f -print0 | sed "s@${FROM}/@@g" | xargs -0 -i ln -fs ${FROM}/{} ${DIR}/{}
echo "原始大小" du -sLh $DIR
rm -rf ${DIR}/XXXXXXX rm -rf ${DIR}/00_阅读软件 rm -rf ${DIR}/07_医学 rm -rf ${DIR}/08_金融
echo "精简之后" du -sLh $DIR chunli@debian:~$ `
|
效果
设置Samab
这里有一个坑, 官网只说要配置3项,但没说干扰项。
allow insecure wide links = yes
wide links = yes
unix extensions = no
这三项必须在[global]的第一项,否则其他项会有干扰。
include = /etc/samba/smb.conf.%U
这是我自己设定的, 每个用户的配置文件独立
1 2 3 4 5 6 7 8 9
| root@debian:~# vim smb.conf # 紧邻 global 下面追加. 不能有其他项,以免干扰。 [global] allow insecure wide links = yes wide links = yes unix extensions = no
# 设定每个用户使用自己独立的配置文件 include = /etc/samba/smb.conf.%U
|
用户的配置文件
1 2 3 4 5 6 7 8 9 10 11
| root@debian:~# cat /etc/samba/smb.conf.chunli [02_Book] path = /mnt/chunli/book/ writeable = yes create mask = 0664 directory mask = 0775
[05_iPad] path = /home/chunli/ipad_book/ writeable = yes root@debian:~#
|
重启服务
1 2
| root@debian:~# systemctl restart nmbd root@debian:~# systemctl restart smbd
|
Windows 打开文件
完结
iPad 使用 PDF expert 同步就不说了, 比较简单。