среда, 22 мая 2024 г.

Исключить из синхронизации через rclone 1 папку и 1 файл

Для своих нужд организовано трёхкратное резервирование данных:
– получить данные с одного облака;
– синхронизировать полученные данные на другое облако;
– синхронизировать полученные данные на облако MEGA через десктопный клиент синхронизации megasync.

Если по первым двум задачам никаких вопросов не возникает, в процессе выполнения третьей задачи десктопный клиент синхронизации megasync автоматически создаёт в синхронизируемой папке с данными скрытую папку .debris и скрытый файл .megaignore

Скрытая папка .debris в течение определённого времени хранит объекты (файлы и папки), которые были удалены (замены) в процессе синхронизации. Это определяется соответствующей настройкой клиента MEGA, например:


Содержание файла .megaignore представляет из себя шаблон, в соответствии с которым перечисленные в нём объекты из процесса синхронизации должны быть исключены. Его можно посмотреть и при необходимости отредактировать текстовым простым редактором:

-:Thumbs.db
-:desktop.ini
-:~*
-:.*
-:*~.*
-:*.crdownload
-:*.sb-????????-??????
-:*.tmp

Естественно, что при отсутствии таких объектов на источнике при выполнении первой задачи на получателе такие объекты, если они существуют, будут удалены. Но они будут автоматически созданы в ходе дальнейших циклов синхронизации через десктопный клиент синхронизации megasync.

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

1. Исключить из синхронизируемой с облаком папки объекты .debris и .megaignore в направлении компьютер – облако.

rclone sync --progress /home/minter/Документы/Ex-H-4 --exclude /.debris/** --exclude /.megaignore mr81:Books-01

Обратите внимание, что в инструкции --exclude каждый из объектов указывается отдельно, то есть --exclude применено два раза, а сами инструкции следуют после указания источника, то есть папки компьютера. 

Смотрим результат выполнения операции на получателе (на примере Облака Mail.Ru):


Как видно из приведенного снимка экрана, ни папки .debris, ни файла .megaignore на получателе не наблюдается.

2. Исключить из синхронизируемой с облаком папки объекты .debris и .megaignore в направлении облако – компьютер.

rclone sync --progress mr81:Books-01 /home/minter/Документы/Ex-H-4 --exclude /.debris/** --exclude /.megaignore

Обратите внимание, что в данном примере инструкции --exclude следуют после указания папки получателя (компьютера).  

Проверяем, что существующие на получателе объекты .debris и .megaignore не были удалены.

понедельник, 20 мая 2024 г.

Работа с несколькими аккаунтами MEGA

Как одним клиентом синхронизации MEGA работать с несколькими аккаунтами независимо друг от друга

Ранее уже рассматривался способ одновременной эксплуатации клиентов синхронизации для облака MEGA. Но здесь описан более простой приём.

Известно, что в Linux настройки для работы с учётной записью MEGA клиент хранит по пути 
/home/user/.local/share/data/Mega Limited/MEGAsync 
– где под user следует понимать Ваш домашний каталог. Чтобы увидеть это в файловом менеджере включите в нём показ скрытых файлов.

В Windows расположение этих данных примерно следующее:

C:\Users\user\AppData\Local\Mega Limited\MEGAsync (user – пользователь системы) 

Настройте синхронизацию для одного из своих аккаунтов MEGA. Обратите внимание на то, что для успешного запуска нескольких аккаунтов на компьютере (ноутбуке) необходимо выключить автоматический запуск клиента при входе в систему:


Закройте клиент синхронизации. Скопируйте содержание папки MEGAsync в нужное место на вашем диске, в котором будут храниться настройки клиента MEGA для различных аккаунтов (создайте нужные папки заранее). Например, это можно сделать командой rsync. 

cd "/home/minter/.local/share/data/Mega Limited/MEGAsync"
rsync -azv --recursive * /home/minter/mega/M1 

В примере выше M1 является папкой, в которую были рекурсивно продублированы настройки синхронизации для первого аккаунта MEGA (содержание папки MEGAsync).

Для Windows, если не ошибаюсь, такой командой может быть:

Xcopy "C:\Users\user\AppData\Local\Mega Limited\MEGAsync" C:\Users\user\MegaConfig\Mega1\ /s /e

Удалите содержание папки MEGAsync, снова запустите клиент MEGA и настройте синхронизацию для другой учётной записи MEGA. Аналогично скопируйте сохранённые настройки и для второго своего аккаунта MEGA, например:

cd "/home/minter/.local/share/data/Mega Limited/MEGAsync"
rsync -azv --recursive * /home/minter/mega/M2 

Если у вас имеются ещё аккаунты MEGA, то сделайте для них то же самое.

Удалите папку MEGAsync со всем содержимым.

rm -fR "/home/minter/.local/share/data/Mega Limited/MEGAsync"

Создайте для каждой учётной записи свой скрипт (сценарий) запуска. Сохраните их как файлы sh (m1.sh, m2.sh или любые имена файлов на ваше усмотрение) с правом выполнения как программы. Примеры:

#!/bin/bash
ln -s /home/minter/Tools/mega/M1 "/home/minter/.local/share/data/Mega Limited/MEGAsync"
sleep 1
megasync
sleep 1
rm "/home/minter/.local/share/data/Mega Limited/MEGAsync"
exit

#!/bin/bash
ln -s /home/minter/Tools/mega/M2 "/home/minter/.local/share/data/Mega Limited/MEGAsync"
sleep 1
megasync
sleep 1
rm "/home/minter/.local/share/data/Mega Limited/MEGAsync"
exit

sleep 1 (заснуть на 1 секунду) можно не делать, если ваш жёсткий диск и система обладают достаточным быстродействием.

Для Windows командой создания символической ссылки на папку будет (пример):

mklink /D "C:\Users\user\AppData\Local\Mega Limited\MEGAsync" C:\Users\user\MegaConfig\Mega1

А сценарий запуска оформляется как файл bat примерно следующего содержания:

@echo off
mklink /D "C:\Users\user\AppData\Local\Mega Limited\MEGAsync" C:\Users\user\MegaConfig\Mega1
timeout /t 1 /nobreak
C:\Users\user\AppData\Local\MEGAsync\MEGAsync.exe
timeout /t 1 /nobreak
rmdir "C:\Users\user\AppData\Local\Mega Limited\MEGAsync"
exit

Смысл работы созданных сценариев запуска состоит в том, что для каждой папки с сохранёнными данными состояний и настроек синхронизаций MEGA при запуске сценария создаётся символическая ссылка на нужную папку. Сам же клиент MEGA будет "уверен" в том, что эти данные находятся по нужному пути, то есть в папке

/home/user/.local/share/data/Mega Limited/MEGAsync (Linux)

C:\Users\user\AppData\Local\Mega Limited\MEGAsync (Windows)

После остановки работы клиента (процесс megasync) созданная символическая ссылка удаляется.

Теперь можно проверить работу клиента синхронизации для своих нескольких аккаунтов MEGA.


Кнопка запуска скрипта в Linux

На рабочем столе создаётся значок запуска (xfce), либо кнопка запуска (Cinnamon), в которой указывается вызов сценария запуска. По умолчанию предлагается создать такую же кнопку в меню Прочие/Прочее (Cinnamon/xfce), с чем имеется смысл согласиться. После создания значка/кнопки запуска с рабочего стола его можно удалить Созданный значок запуска (кнопка запуска) расположен в папке ~/.local/share/applications и представляет из себя исполняемый файл .desktop, который можно редактировать в текстовом редакторе. Пример:

[Desktop Entry]
Name=M20
Exec=/home/minter/Tools/mega/m20.sh
Comment=
Terminal=false
PrefersNonDefaultGPU=false
Icon=emblem-megasync-sand-dark
Type=Application

Как пояснялось выше, значок/кнопка запуска будет отображаться в категории "Прочее" (xfce) или "Прочие" (Cinnamon). Для указания другой категории добавьте в файл строку Categories= , в которой после знака равенства укажите необходимые значения. Например, для "Разработка" (xfce) или "Программирование" (Cinnamon) это будет иметь вид Categories=GTK;Development; , а для категории "Интернет" – Categories=Network;

Если надо, чтобы кнопка отображалась по-русски, то добавьте строку Name[ru]= и после знака равенства напишите русский текст, например, Синхронизация с облаком (без кавычек).

воскресенье, 19 мая 2024 г.

Double Commander не открывает архивы rar

Раньше для открытия архивов rar в Double Commander достаточно было поместить файл libunrar.so или символическую ссылку на него в каталог /lib . Этот файл мной брался из портативной версии Double Commander.

Но в настоящее время такой приём не сработал. Double Commander продолжает указывать на отсутствие необходимого для выполнения операции компонента libunrar.so Для того, чтобы архивы rar открывались в Double Commander попробуйте установить libunrar.so.5 (unarchiver for .rar files (non-free version) - shared library) sudo apt install -y libunrar5 

После этой операции проверьте возможность открытия в файловом менеджере Double Commander архивов rar. 

среда, 15 мая 2024 г.

Ошибка rclone – invalid character '<' looking for beginning of value

Cегодня при попытке синхронизации локального каталога с облаком Mail.Ru, а также запросе состояния rclone about вывод окна терминала выдаёт ошибку, например, Failed to about: about call failed: invalid character '<' looking for beginning of value.

Как пишут на форуме rclone, имеющая место ситуация обусловлена слишком большим числом запросов к получателю, в результате чего он начинает их блокировать.

Для устранения неполадки при синхронизации примените опцию --tpslimit N, где N попробуйте указывать от 10 в сторону понижения, например, 

rclone sync --progress --tpslimit 10 источник получатель

Если при значении 10 всё заработает, то можно пробовать постепенно повышать значение N до 20. Конкретное значение вашей величины N, при которой достигается стабильная работа rclone, определите экспериментально.