Обычные пользователи привыкли делать бэкапы своих данных при помощи проприетарных средств Google и всяких программ вроде TitaniumBackup. Но вот GNU/Linux'оиды не всегда с этим могут просто так смириться. Более того, у многих даже не установлены Google Apps (и правильно). Вот и я не стал мириться и пошёл по собственному пути.
1. Установленные приложения
Как известно, их данные находятся в /data/app/<app_id> и /data/data/<app_id>. Но работать с этими каталогами вручную совсем не нужно.
В F-Droid есть очень хорошая программа под названием oandbackup. Внимание: нужны root-права!
Ссылка: https://f-droid.org/repository/browse/?fdfilter=oandbackup&fdid=dk.jens.backup
Она умеет делать архивы данных приложений, установочного APK или всего вместе. Отслеживает версии программ и имеет удобную фильтрацию. Даже расписания поддерживает (но этой фичей я не пользуюсь).
НО: не стоит делать бэкап Termux (и других очень крупных приложений, например, firefox) с помощью этой штуки, потому что запаковывать tar.gz на несколько сотен мегабайт/пару гигов - задача небыстрая. С терминалом будут разборки дальше.
Выполнены нужные манипуляции? Идём дальше.
2. Пользовательские файлы и всё остальное
На этом этапе нужно будет установить приложения Termux, Termux:API и Termux:Widget. Будем считать, что они у нас уже установлены.
Запускаем Termux, и туда:
# обновления софта пропускаем, пусть они уже стоят apt install termux-api termux-tools openssh rsync termux-setup-storage # может спросить права на доступ к файлам mkdir -p ~/.shortcuts # так надо mkdir backup-info # каталог для симлинков
Теперь можно видеть, что в $HOME появился каталог storage, где имеется полный доступ ко внутренней памяти. Также там есть несколько ссылок на часто используемые места.
Создаём символьные ссылки в каталоге backup-info для нужной информации.
cd backup-info ln -s ../caesium/caesium.cfg . ln -s ../storage/dcim/Camera . # куда же без фоточек ln -s ../storage/shared/Documents . # каталог Documents из корня внутренней памяти ln -s ~/shortcuts . # скрипты из виджета Termux ln -s ~/.config . # дальше, думаю, ясно # ... # И САМОЕ ВАЖНОЕ - приложения из пункта 1 ln -s ../storage/shared/oandbackups .
О экспорте контактов можно позаботиться либо стандартными средствами системы, либо с помощью команды termux-contact-list, которая возвращает список в виде json (правда, если за человеком записано несколько номеров телефонов, то выдаёт только первый).
После этого напишем бэкап-скрипт с использованием rsync. Вообще, каждый линуксоид волен дальше продолжать по своему усмотрению, но вот моё решение:
#!/system/xbin/bash server="your-server.ru" port="22" one="~/backup-info" two="user@$server:/home/username/phone-backups/" termux-contact-list > $one/contact-list dpkg --get-selections > $one/termux-packages # установленный софт тоже важен rsync -varLk -e "ssh -p $port" --size-only --stats --delete "$one" "$two"
Сохраняем файл в каталоге ~/.shortcuts, даём ему права на исполнение.
Затем добавляем на домашний экран (он же лончер) андроида виджет Termux, в котором будет виден только что написанный скрипт. Виджет нужен, чтобы не вводить команду вручную, а просто тыкнуть пальцем, ввести пароль и ждать окончания работы.
В самый первый раз скрипт просто скидывает на сервер все наши установленные приложения, фотографии, контакты, конфиги и всю остальную информацию. В последующие он будет отправлять только те файлы, которые претерпели изменения. При удалении файла на телефоне он также удалится на сервере.
Вот и всё. Задача решена простыми и привычными средствами (rsync, bash), а у пользователя полная свобода в управлении своими резервными копиями. И никакой следящей проприетарщины: всё своё, домашнее, шифрованное.