Синхронизация и бекап пишушейся книги - простой способ

Автор: Мрак Сергеевич

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

Самый простой вариант - использовать флешку и простой 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 дискам у меня нет, они дохнут унося с собой всю информацию).

Синхронизация выполняется как через флешку, так и через сетевую папку. Флешка - еще один бекап "на всякий случай". 🙂

Хорошей работы и быстро пишущихся прод! 👍

+84
113

0 комментариев, по

17K 2 863
Наверх Вниз