Open5

Androidの写真をTermuxとrsyncでバックアップしたい

okuokuokuoku

普段のバックアップにはOneDriveを使っているけど、ホワイトボードの処理とかが自動で調整のしようが無いので生データを何とか手元に置いておきたい。

okuokuokuoku

termux-setup-storage コマンド

Termuxの termux-setup-storage コマンドを実行して写真へのアクセスをgrantすると、 ~/storage 以下から写真等にアクセスできる。よって、このフォルダをどこかにrsyncすれば目的は達成できる。

./Pictures/Screenshots/Screenshot_20220507-175244.png
./Pictures/Screenshots/Screenshot_20220508-172246.png
./Pictures/Screenshots/Screenshot_20220510-161729.png
./Pictures/Screenshots/Screenshot_20220521-145347.png
./Pictures/Screenshots/Screenshot_20220521-180311 (1).png
./Pictures/Screenshots/Screenshot_20220528-013325.png
./Pictures/Screenshots/Screenshot_20220528-013448.png
./Pictures/Screenshots/Screenshot_20220528-180648.png
./Pictures/Raw
./Pictures/Raw/PXL_20220310_043331736.dng
./Pictures/Raw/PXL_20220310_050320552.dng
./Pictures/Raw/PXL_20220311_061340662.dng
./Pictures/Raw/PXL_20220321_084839781.dng
./Movies
./Movies/.thumbnails
./Movies/.thumbnails/.database_uuid
./Movies/screen-20210919-150016.mp4
./Movies/screen-20210919-155131.mp4
./Movies/screen-20210925-180020.mp4
./Movies/screen-20211020-111149.mp4
./Movies/screen-20211024-200520.mp4
./Movies/screen-20211031-184710.mp4

.thumbnails とかは無視する必要があるな。。

okuokuokuoku

コピーの実行

rsync -rltv Pictures Movies DCIM home:/cygdrive/f/pictbak/stage/sync

(r)ecursive、(l) symlinkをフォロー、(t)imestamp、(v)erbose。本番では --delete も付けて電話側から消したファイルはsync先からも消すように。

Pictures/Screenshots/Screenshot_20220521-180311.png
Pictures/Screenshots/Screenshot_20220528-013325.png
Pictures/Screenshots/Screenshot_20220528-013448.png
Pictures/Screenshots/Screenshot_20220528-180648.png

sent 7,560,006,790 bytes  received 34,052 bytes  10,406,112.65 bytes/sec
total size is 7,558,041,300  speedup is 1.00

たしか今年の頭に一旦整理したから半年で7GiBくらい増えるのか。。

okuokuokuoku

タイムスタンプファイルの生成

今回Git-LFSを使ってバックアップしようと思うので、タイムスタンプを保存するためにファイルに書き出しておく。

find sync -type f -printf "%T@ %p\\n" | grep -v \\.thumbnails | sort -k 2 > filelist.txt

gitは個々のファイルにはタイムスタンプを保持しない。

okuokuokuoku

git lfs install しないと git lfs track してもLFSに行かない

そんな罠があるのか。。実際には git lfs install --local でも十分なはずだけど未検証。