Делаем бэкап данных Termux

Делаем бэкап данных Termux

t.me/termuxqew

В этой статье вы узнаете некоторые методы резервного копирования и восстановления своих данных Termux. Настоятельно рекомендуется понять что делают команды перечисленные здесь, перед бездумным копированием - вставкой. Непонятная цель каждого шага может нанести непоправимый ущерб вашим данным, если это случилось с вами - не жалуйтесь.

В примерах этой статьи, мы рассмотрим копирование и восстановление как домашнего каталога, так и системного блока.

  1. Домашний каталог, он же $HOME, он же ~, он же /data/data/com.termux/files/home - каталог пользователя, в котором вы оказываетесь когда открывайте первую сессию Termux. Когда вы будете создавать резервную копию этой папки, всё что в ней, будет также скопировано.
  2. Системный блок, он же $PREFIX, он же /data/data/com.termux/files/usr - каталог вмещающий в себе "системный блок", ключевые папки, такие как
$ termuxqew - ls ../usr/
bin etc include lib libexec share src tmp var

Из них

bin     - каталог бинарных файлов, программы, другими словами "команды", которыми вы можете воспользоваться в любой момент
etc     - каталог содержащий конфигурационные файлы
include - cтандартные заголовочные файлы
lib     - библиотеки, необходимые для работы программ из bin
libexec - бинарные файлы, используемые другими программами
share   - архитектурно-независимые общие данные
src     - исходные коды
tmp     - временные файлы и папки
var     - изменяемые файлы: регистрации, спулеры, временные почтовые

Если кратко - все перечисленные выше папки и файлы в них необходимы для работы TermuxС помощью tar

Архивирование системных и домашних каталогов - это самый простой способ резервного копирования данных. Такой способ не требует дополнительных пакетов, так как необходимые утилиты уже предоставлены busybox.

В этом примере будет показано резервное копирование как домашнего каталога, так и системного блока. Полученный архив будет храниться на вашем общем хранилище, и будет сжат с помощью gzip.

1. Убедитесь, что разрешение на хранение получено

termux-setup-storage

2. Перейдите в родительский каталог папки home

cd /data/data/com.termux/files

3. Создайте резервную копию папок home и usr

tar -zcvf home/storage/shared/termux-backup.tar.gz home usr

Резервное копирование должно быть завершено без ошибок. Не должно быть никаких отказов в разрешении, если только пользователь не злоупотреблял правами root.

Важно: никогда не храните ваши резервные копии в частных каталогах Termux. Их пути могут выглядеть так:

/data/data/com.termux                      
/sdcard/Android/data/com.termux            
/storage/XXXX-XXXX/Android/data/com.termux 
${HOME}/storage/external-1

Как только вы очистите данные Termux в настройках, эти каталоги тоже будут удалены. Безоговорочно.

Инструкции для домашнего каталога home и каталога usr отдельны, хотя если вы делали резервное копирование, как показано выше, то эти каталоги хранятся в одном архиве. Перед восстановленим всегда предоставляйте доступ к общему хранилищу где и хранится ваш архив

termux-setup-storage

Следуя этим инструкциям, все ваши файлы Termux будут перезаписаны файлами из резервной копии.

1. Перейдите в родительский каталог папки home:

cd /data/data/com.termux/files

2. Замените домашний каталог на тот что из резервной копии:

tar -zxvf home/storage/shared/termux-backup.tar.gz home

Домашний каталог не столько критичен, поэтому никаких дополнительных шагов, таких как закрытие/открытие Termux не требуется.

Восстановление $PREFIX - довольно сложная задача. Вам придётся удалить $PREFIX, где хранятся все системные данные Termux.

1. Перейдите в родительский каталог папки home:

cd /data/data/com.termux/files

2. Скопируйте бинарный файл busybox в текущий каталог (на этом этапе мы одновременно копируем busybox, и переименовываем на tar в текущем каталоге)

cp usr/bin/busybox tar

3. Сотрите системный блок. На этом этапе все пакеты будут удалены.

rm -rf usr

4. Восстановите $PREFIX из резервной копии:

unset LD_PRELOAD
./tar -zxvf home/storage/shared/termux-backup.tar.gz usr

С помощью restic

Restic - это утилита для выполнения инкрементного резервного копирования. Она может работать как с локальными, так и с удаленными резервными копиями. Резервируемые данные шифруются и дедублируются. По умолчанию этот пакет не установлен. Установите его следующей командой:

pkg install restic

Не забывайте предоставлять разрешение на доступ к общему хранилищу

termux-setup-storage

Примечание: Restic предназначен только для продвинутых пользователей. Несмотря на то, что он предоставляет больше возможностей, чем tar, он более сложен в использовании. Большинство людей будут использовать его в скриптах, а не вручную в командной строке. Инструкции здесь приведены только в качестве примера.

На этих шагах будет выполняться резервное копирование только $PREFIX, а не вашего домашнего каталога. Резервное копирование будет храниться в общем хранилище.

1. Инициализируйте локальное хранилище restic. Вам будет предложено ввести пароль, потому что шифрование включено по умолчанию (возможности выключить нет). Если пароль будет утерян - ваши данные будут заблокированы навсегда.

restic init -r storage/shared/termux-backup

2. Сделайте резервное копирование $PREFIX

restic backup -r storage/shared/termux-backup --tag termux $PREFIX

--tag не обязателен, но будет полезен в случае, если вы решите создать резервную копию нескольких каталогов в одном хранилище. Например, таким образом вы можете создать резервную копию домашнего каталога:

restic backup -r storage/shared/termux-backup --tag termux-home $HOME

Как и в случае с резервным копированием на основе tar, восстановление $PREFIX - сложная задача. Следующие шаги применимы только для локальных резервных копий:

1. Убедитесь что разрешение на доступ к общему хранилищу получено

termux-setup-storage

2. Убедитесь, что restic установлен

pkg install restic

3. Скопируйте бинарник restic в $HOME.

cp $PREFIX/bin/restic $HOME/restic

4. Сотрите $PREFIX. Все пакеты будут удалены

rm -rf $PREFIX

5. Восстановите $PREFIX из последнего снимка:

unset LD_PRELOAD
$HOME/restic restore -r storage/shared/termux-backups --tag termux --target / latestСпСледуя этим инструкциям, все ваши файлы Termux будут перезаписаны файлами из резервной копии. 

Восстановление home директории
1. Перейдите в родительский каталог папки home:

cd /data/data/com.termux/files
2. Замените домашний каталог на тот что из резервной копии:

tar -zxvf home/storage/shared/termux-backup.tar.gz home
Домашний каталог не столько критичен, поэтому никаких дополнительных шагов, таких как закрытие/открытие Termux не требуется.

Восстановление $PREFIX
Восстановление $PREFIX - довольно сложная задача. Вам придётся удалить $PREFIX, где хранятся все системные данные Termux. 

1. Перейдите в родительский каталог папки home:

cd /data/data/com.termux/files
2. Скопируйте бинарный файл busybox в текущий каталог (на этом этапе мы одновременно копируем busybox, и переименовываем на tar в текущем каталоге)

cp usr/bin/busybox tar
3. Сотрите системный блок. На этом этапе все пакеты будут удалены.

rm -rf usr
4. Восстановите $PREFIX из резервной копии:

unset LD_PRELOAD
./tar -zxvf home/storage/shared/termux-backup.tar.gz usr
С помощью restic
Restic - это утилита для выполнения инкрементного резервного копирования. Она может работать как с локальными, так и с удаленными резервными копиями. Резервируемые данные шифруются и дедублируются. По умолчанию этот пакет не установлен. Установите его следующей командой:

pkg install restic
Не забывайте предоставлять разрешение на доступ к общему хранилищу

termux-setup-storage
Примечание: Restic предназначен только для продвинутых пользователей. Несмотря на то, что он предоставляет больше возможностей, чем tar, он более сложен в использовании. Большинство людей будут использовать его в скриптах, а не вручную в командной строке. Инструкции здесь приведены только в качестве примера. 

Бэкап
На этих шагах будет выполняться резервное копирование только $PREFIX, а не вашего домашнего каталога. Резервное копирование будет храниться в общем хранилище.

1. Инициализируйте локальное хранилище restic. Вам будет предложено ввести пароль, потому что шифрование включено по умолчанию (возможности выключить нет). Если пароль будет утерян - ваши данные будут заблокированы навсегда. 

restic init -r storage/shared/termux-backup
2. Сделайте резервное копирование $PREFIX

restic backup -r storage/shared/termux-backup --tag termux $PREFIX
--tag не обязателен, но будет полезен в случае, если вы решите создать резервную копию нескольких каталогов в одном хранилище. Например, таким образом вы можете создать резервную копию домашнего каталога:

restic backup -r storage/shared/termux-backup --tag termux-home $HOME
Восстановление
Как и в случае с резервным копированием на основе tar, восстановление $PREFIX - сложная задача. Следующие шаги применимы только для локальных резервных копий:

1. Убедитесь что разрешение на доступ к общему хранилищу получено

termux-setup-storage
2. Убедитесь, что restic установлен

pkg install restic
3. Скопируйте бинарник restic в $HOME.

cp $PREFIX/bin/restic $HOME/restic
4. Сотрите $PREFIX. Все пакеты будут удалены

rm -rf $PREFIX
5. Восстановите $PREFIX из последнего снимка: 

Спасибо за прочтение!

🌫️Мои проекты🌫️

t.me/termuxqew

💚 Наш чатик 💚

t.me/Termux_Sms





Report Page