Синхронизация и бекап пишушейся книги - простой способ
Автор: Мрак СергеевичКогда для работы используется несколько устройств, то нужна синхронизация между ними. Вручную делать это неудобно. - какие то файлы поправляешь на стационарном ПК, другие - на ноутбуке и хочется простого решения, которое будет работать даже при отключенном интернете.
Самый простой вариант - использовать флешку и простой bat файл.
--- содержимое файла synhro.bat ---
@echo off
set SOURCE="C:\my_book"
set DEST="F:\"
echo %SOURCE%
echo Синхронизация C -> флешка...
robocopy %SOURCE% %DEST% /E /XO /COPY:DAT /NP /R:3 /W:5 /LOG:sync_s.log
echo Синхронизация флешка -> C...
robocopy %DEST% %SOURCE% /E /XO /COPY:DAT /NP /R:3 /W:5 /LOG:sync_d.log
echo Синхронизация завершена. Результаты в sync.log
pause
"C:\my_book" - заменяем на расположение директории с пишущейся книгой
"F:\" - на букву которой обозначается флешка на вашем ПК
Синхронизация будет копировать только более новые файлы, причем - в обе стороны.
Если вы используете сетевую папку вместо флешки, то его можно подключить как тот же диск F и использовать bat файл который выше.
net use F: \\Сервер\СетеваяПапка /user:ИмяПользователя Пароль /persistent:yes
Где:
F: — буква диска для подключения.
\\Сервер\СетеваяПапка — путь к сетевой папке.
/user:ИмяПользователя Пароль — данные для доступа (если требуется авторизация).
/persistent:yes — сохранить подключение после перезагрузки.
Для синхронизации планшета на Андроиде с флешкой (должна подключаться по OTG)
Скачайте Termux из F-Droid (не из Play Store — там старая версия).
Выполните в Termux:
pkg update
pkg install rsync termux-api
termux-setup-storage # Дайте доступ к файлам
Создайте файл sync.sh и в нем запишите:
#!/bin/bash
# Пути (проверьте через `ls /storage`!)
SOURCE="/storage/emulated/0/Ваша_папка" # Внутренняя память
DEST="/storage/XXXX-XXXX/Флешка_папка" # Путь к флешке (замените XXXX-XXXX)
# Синхронизация: планшет -> флешка
rsync -avh --progress --update "$SOURCE/" "$DEST/"
# Синхронизация: флешка -> планшет
rsync -avh --progress --update "$DEST/" "$SOURCE/"
Запустите Termux. Дайте в нем права скрипту:
chmod +x sync.sh
Запуск синхронизации:
./sync.sh
Если синхронизировать Андроид с сетевой папкой открытой для чтения-записи на ПК с Виндовс, то скрипт такой:
#!/bin/bash
# Локальная папка на Android
LOCAL_DIR="/storage/emulated/0/Ваша_папка"
# Сетевая папка Windows (без авторизации)
SMB_SHARE="//192.168.1.100/Общая_папка"
# Монтирование сетевой папки (временная точка)
MOUNT_DIR="/data/data/com.termux/files/home/smb_mount"
mkdir -p "$MOUNT_DIR"
# Монтируем шару (гостевой доступ)
mount -t cifs -o username=guest,uid=$(id -u),gid=$(id -g),noperm "$SMB_SHARE" "$MOUNT_DIR"
# Синхронизация в обе стороны (используем rsync)
rsync -avh --progress --update "$LOCAL_DIR/" "$MOUNT_DIR/" # Android -> Windows
rsync -avh --progress --update "$MOUNT_DIR/" "$LOCAL_DIR/" # Windows -> Android
# Размонтируем и чистим
umount "$MOUNT_DIR"
rmdir "$MOUNT_DIR"
echo "Синхронизация завершена!"
Если требуется авторизация, то меняем строчку:
mount -t cifs -o username=ВАШ_ЛОГИН,password=ВАШ_ПАРОЛЬ,uid=$(id -u),gid=$(id -g),noperm "$SMB_SHARE" "$MOUNT_DIR"
Для его работы выполняем:
pkg update
pkg install cifs-utils rsync
Дам права
chmod +x sync_smb.sh
Запускаем
./sync_smb.sh
Если возникают ошибки, то включаем SMB 1.0 на Винде:
Панель управления → Программы → Включение компонентов → SMB 1.0.
PS. С Андроидом не игрался, у меня два ноута - один работает только от сети (можно сказать стал дескноутом, тк сдохла не только батарейка, но и ее контроллер на плате), второй потаскной небольшого размера (купил бу HP EliteBook на авито, заменил блок клавиатуры, докинул памяти и установил на него второй диск - HDD, доверия к SSD дискам у меня нет, они дохнут унося с собой всю информацию).
Синхронизация выполняется как через флешку, так и через сетевую папку. Флешка - еще один бекап "на всякий случай".
Хорошей работы и быстро пишущихся прод!