Android 相册备份
2023年10月25日 · 551 字 · 2 分钟
最近找了一些 Android 端的开源软件,尝试同步照片到自建的图片服务器,效果都不理想。 最后还是采用了一个很笨,但是很方便的方法。使用 ”rsync“ 命令来备份照片。
# 网络环境,三台设备已用 wireguard 互联,内网 ip 固定。
┌──────────────────┐
│ pi(debain) │
│ │
┌─────────────┐ ┌──────► 10.10.0.1 │
│ phone │ │ │ │
│ │ │ │ │
│ 10.10.0.3 ├─────┤ └──────────────────┘
│ │ │
│ │ │
└─────────────┘ │
│
│
│ ┌──────────────────┐
│ │ pc(ubuntu) │
│ │ │
└──────► 10.10.0.4 │
│ │
│ │
└──────────────────┘
目标是将手机上的照片传输到 pi 和 pc 上,最最最简单的方法是 USB 数据线复制粘贴,但是这样非常不方便。三台机器都是 linux* 系统,用 rsync
命令更简单,更方便。
手机端使用的工具:
- termux:执行 shell 脚本
- termux:widget:从桌面 icon 一点唤起 termux,执行相应脚本
同步脚本如下:
#!/bin/sh exec "$@"
cd ~/storage/shared
pwd
for dst in "ban@10.10.0.4:/home/ban/data/Ban/Pictures/" "root@10.10.0.1:/root/data/Pictures"
do
echo ""
echo ""
echo "===================="
echo "rsync to pc ${dst}"
echo "===================="
for dst_dir in "Pictures" "DCIM"
do
cd $dst_dir
rm .* -rfv
for f in *; do
if [ -d "$f" ]; then
rm $f/.* -rfv
if [ "$(ls -A $f)" ]; then
mv -v $f/* .
fi
rm $f -rfv
fi
done
cd ../
rsync -av --progress $dst_dir/* ${dst}
done
sleep 5
done
echo ""
echo ""
read -p "Press enter to continue"
将上述脚本置于 /data/data/com.termux/files/home/.shortcuts
目录下
桌面新建 termux widget, 选择该脚本。
最用实现的效果
每次点击桌面上的 icon,照片自动增量备份到 pc 和 pi 设备上。