Показаны сообщения с ярлыком MEGA. Показать все сообщения
Показаны сообщения с ярлыком MEGA. Показать все сообщения

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

четверг, 30 декабря 2021 г.

Руководство по настройке клиента MEGA

Указанный ниже контент создавался как "пособие для чайников" для моих респондентов, с которыми у меня производится обмен файлами и папками. 

Со времени создания оформленного в виде pdf "пособия" клиент MEGA претерпел кое-какие изменения и в некоторых случаях приводимые в "пособии" картинки могут не совпадать с существующим в настоящее время интерфейсом клиента MEGA. 

На момент публикации внешний вид клиента MEGA был такой:



Но общее понимание предлагаемый материал может предоставить, особенно тем, кому "лениво" читать оригинальную справку по пользованию от разработчиков MEGA.

С такой же позиции мне было "лениво" править файл и заново рисовать картинки к уже написанному 😀  Поэтому файл pdf предоставляется "как есть".

Перейти к файлу pdf по ссылке.

четверг, 27 мая 2021 г.

Inbox для MEGA – папка MEGAdrop

Загрузить в папку вашего облака MEGA файлы и папки без входа в аккаунт MEGA
 

Облако MEGA предоставляет возможность загрузки вам файлов тем у кого такого аккаунта не имеется или у кого необходимости его создавать, но необходимость отправки вам контента присутствует.

Респондент может открыть в браузере предоставленную вами ссылку нажать на кнопку "Загрузить" и указать файлы, которые он желает вам отправить. На приведенных ниже рисунках показан пример загрузки двух файлов в папку MEGAdrop. Drop – это имя папки созданного Filebox (папка преобразована в папку MEGAdrop). Ниже наименования папки будет отображено имя, которое указано вами в вашем профиле аккаунта MEGA. 

В процессе загрузки одного файла можно добавить ещё файлы, которые будут поставлены в очередь загрузки. Завершение загрузки сопровождается записью "Завершить" напротив файла из списка очереди загрузок.



Преобразовать в папку MEGAdrop можно не каждую папку MEGA. Так, папки общего доступа или папки, на которые имеется ссылка, преобразовать в папку MEGAdrop не получится. 

Создайте в браузере отдельную папку, которая будет выполнять функцию вашего Filebox (папка MEGAdrop), правым кликом мыши выберите пункт контекстного меню и подтвердите желание преобразовать данную папку с папку MEGAdrop (Создать):



 Система сгенерирует ссылку, например:

 https://mega.nz/megadrop/XtaPHDWdMLg

 Предоставьте её тем кому необходимо.

Ограничение. Папки передать нельзя. При попытке передачи папок отобразится уведомление:


Для обратного преобразования папки MEGAdrop в обычную папку используйте команду "Закрыть папку MEGAdrop" правого контекстного меню:

 



вторник, 2 февраля 2021 г.

Папки .debris в MEGA

При совместной работе с папками общего доступа в случае обмена большими файлами значение приобретает настройка Корзин клиента MEGA и самого облака MEGA.

Вызовите кликом по значку MEGA настройки и перейдите в секцию "Продвинутые".



Настройте .debris планировщик очистки. По умолчанию предлагается 30 дней, но можно установить своё значение от 1 до 30:



Если вы используете полную синхронизацию с облаком MEGA, то, как предлагается по умолчанию, папка .debris будет расположена в папке MEGA. Если вами используется выборочная синхронизация, а также подключены папки, предоставленные вам в полный доступ, папка .debris будет расположена в каждой из синхронизируемых папок. Для того чтобы её увидеть включите в менеджере файлов отображение скрытых файлов. В неё складываются удаляемые вами файлы и папки, а содержимое папки .debris очищается в соответствии с настройкой в вашем клиенте MEGA.

Примечание. В Windows данная папка будет называться не .debris, а Rubbish


На рисунке выше приведено содержание папки  .debris в предоставленной в доступ папки другого пользователя. В свете изложенного, к вопросу о планировании очистки .debris необходимо подойти вдумчиво. Если вы постоянно обмениваетесь файлами большого объёма, то при большом значении срока удаления вы будете терять дисковое пространство своего жёсткого диска, которое будет расходоваться данной папкой.

На самом облаке также имеется своя Корзина, называемая SyncDebris. Для каждого из пользователей её содержимое будет своим. Чтобы её увидеть зайдите в облако MEGA через браузер:



Планировщик её очистки также настраивается. Нажмите в левой части интерфейса на значок шестерёнки и обратитесь к секции "Управление файлами":



Следует иметь в виду, что в отличие, например, от Dropbox или pCloud расход дискового пространства на SyncDebris вычитается из общего размера вашего облачного хранилища. Размер предоставленной вам в доступ папки MEGA другого пользователя не вычитается из общего размера вашего облачного хранилища. 

понедельник, 14 сентября 2020 г.

Запуск процесса синхронизации при изменении содержания источника данных (автоматизация)


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

Решение создавалось для решения прикладной задачи личных нужд и не претендует на материал для обучения или описание единственно правильного написания сценария sh.

Необходимость запуска синхронизации определяется путём вычисления разницы между предыдущим содержанием папок и содержанием этих папок на момент запуска синхронизации. В моём случае такой запуск осуществляется по расписанию (см. пользовательское задание cron).

Мной были созданы 2 файла сценариев sh и 2 папки.


Папка Lists содержит файлы, на основании которых определяется необходимость запуска синхронизации. Файлы сценариев account.sh и do.sh представляют из себя набор команд, осуществляющих выполнение всех действий. Папка MEGAsync содержит данные, необходимые для работы конкретной учётной записи MEGA. Поскольку у меня имеется не один аккаунт, то существование данной папки определяется алгоритмом запуска клиента MEGA под разными учётными записями (подробности).

В папке Lists содержатся файлы list.txt , s.txt , value.txt  Их назначение поясняется в комментариях к листингу сценария do.sh


В приводимых листингах сценариев указываются пути для моего случая. Если возникнет желание применить их в своей системе, то укажите свои пути. Например, это касается значений log= , conf= , /home/minter/... 

Пояснения в сценариях читать после символа #.

Выполнение задачи осуществляется путём запуска файла do.sh

#!/bin/sh
#  Указывается файл протокола работы в конкретный день месяца.
day=`date '+%d'` 
log=/home/minter/Reports/mega/$day.data2.txt
#  Если файл log не существует, то он создаётся
if [ -f $log ]; then
  :
else
  > $log
  echo "  " >> $log
fi
# В conf указываются пути всех дополнительных файлов
conf=/home/minter/configs/mega/internet
# Файлы list.txt содержат список хранящихся в них объектов
# Аналогичные данные содержатся и в файлах s.txt
# Файлы s.txt содержат данные состояния до анализа необходимости синхронизации,
# то есть состояния после последней синхронизации.
# Файлы list.txt содержат сведения о содержании папок на момент принятия решения
# о необходимости осуществления синхронизации.
list1=$conf/Lists/list1.txt
list2=$conf/Lists/list2.txt
list3=$conf/Lists/list3.txt
list4=$conf/Lists/list4.txt
list5=$conf/Lists/list5.txt
list6=$conf/Lists/list6.txt
s1=$conf/Lists/s1.txt
s2=$conf/Lists/s2.txt
s3=$conf/Lists/s3.txt
s4=$conf/Lists/s4.txt
s5=$conf/Lists/s5.txt
s6=$conf/Lists/s6.txt
# Значения stor являются указания путей к папкам с синхронизируемым данным.
# Эти значения используются в командах создания списков содержания этих папок.
stor1=/home/minter/Books
stor2=/home/minter/FBbooks
stor3=/home/minter/Downloads/palemoon
stor4=/home/minter/Downloads/waterfox
stor5=/home/minter/Downloads/yandex
stor6=/home/minter/Downloads/opera
# Создаются списки содержания папок, подлежащих синхронизации с облаком.
# В комплекте поставки Linux Mint "из коробки" программа tree отсутствует.
# Её необходимо установить дополнительно:  sudo apt install -y tree
tree --noreport $stor1 > $list1
tree --noreport $stor2 > $list2
tree --noreport $stor3 > $list3
tree --noreport $stor4 > $list4
tree --noreport $stor5 > $list5
tree --noreport $stor6 > $list6
# Вычисляются величины, на основании которых сценарий будет принимать
# решение о необходимости осуществления запуск клиента MEGA.
# Сравнивается содержание файлов list.txt и s.txt
# Если файлы равны, то величине присваивается значение 0.
# Если файлы не равны, то величине присваивается значение 1.
# Действие производится для каждой из синхронизируемых папок.
# write value for stor1
if cmp -s $list1 $s1
  then
     v1=0
     echo $v1 > $conf/Lists/value1.txt
  else
     v1=1
     echo $v1 > $conf/Lists/value1.txt
fi
# write value for stor2
if cmp -s $list2 $s2
  then
     v2=0
     echo $v2 > $conf/Lists/value2.txt
  else
     v2=1
     echo $v2 > $conf/Lists/value2.txt
fi
# write value for stor3
if cmp -s $list3 $s3
  then
     v3=0
     echo $v3 > $conf/Lists/value3.txt
  else
     v3=1
     echo $v3 > $conf/Lists/value3.txt
fi
# write value for stor4
if cmp -s $list4 $s4
  then
     v4=0
     echo $v4 > $conf/Lists/value4.txt
  else
     v4=1
     echo $v4 > $conf/Lists/value4.txt
fi
# write value for stor5
if cmp -s $list5 $s5
  then
     v5=0
     echo $v5 > $conf/Lists/value5.txt
  else
     v5=1
     echo $v5 > $conf/Lists/value5.txt
fi
# write value for stor6
if cmp -s $list6 $s6
  then
     v6=0
     echo $v6 > $conf/Lists/value6.txt
  else
     v6=1
     echo $v6 > $conf/Lists/value6.txt
fi
# Считываются полученные значения value.txt
# Каждое из значений записывается в переменную h
h1=`cat $conf/Lists/value1.txt`
h2=`cat $conf/Lists/value2.txt`
h3=`cat $conf/Lists/value3.txt`
h4=`cat $conf/Lists/value4.txt`
h5=`cat $conf/Lists/value5.txt`
h6=`cat $conf/Lists/value6.txt`
# Вычисляется сумма переменных h
# Полученная сумма сравнивается со значением 0.
# Если результат сравнения "не равно 0", то это означает, что содержание
# хоть одной из синхронизируемых папок было изменено, поэтому
# необходимо запустить синхронизацию.
# Если результат сравнения "равно 0", то это означает, что с момента предыдущей
# синхронизации содержание папок не изменилось и необходимость в
# осуществлении их синхронизации с облаком отсутствует. 
res1=$(( $h1 + $h2 + $h3 + $h4 + $h5 + $h6 ))
res0=0
if [ $res1 -eq $res0 ]; 
  then
     # в файл протокола вносится запись, что необходимости что-то делать не имеется.
     time=`date '+%H.%M.%S'`
     echo "$time nothing to do" >> $log
     echo "  " >> $log
  else
     # при необходимости синхронизации запускается клиент MEGA
     # запуск клиента MEGA осуществляется с параметром 
     # export DISPLAY=:0, так как клиент является графическим приложением
     export DISPLAY=:0 && $conf/account.sh
fi
# Содержание файлов s.txt перезаписывается содержанием файлов list.txt
cp $list1 $s1
cp $list2 $s2
cp $list3 $s3
cp $list4 $s4
cp $list5 $s5
cp $list6 $s6
time=`date '+%H.%M.%S'`
echo "$time lists replaced" >> $log
echo "  " >> $log
exit

Листинг сценария account.sh

#!/bin/sh
# Указывается расположение данных учётной записи MEGA
conf=/home/minter/configs/mega/data2
# Указывается расположение файла протокола задания
day=`date '+%d'`
log=/home/minter/Reports/mega/$day.data2.txt
# Так как в моём случае аккаунтов MEGA несколько, то 
# данные для предыдущие данные клиента MEGA удаляются
# и записываются данные нужной учётной записи MEGA.
rm -R "/home/minter/.local/share/data/Mega Limited/MEGAsync"
cp -R $conf/MEGAsync "/home/minter/.local/share/data/Mega Limited/MEGAsync" 
time=`date '+%H.%M.%S'`
echo "$time account data copied" >> $log
fi
sleep 5
# Запуск клиента MEGA. Запуск сопровождается отображением
# уведомления в верхней части экрана.
# В некоторых ubuntu-подобных дистрибутивах компонент notify-send
# может отсутствовать и его необходимо установить. 
# sudo apt install -y libnotify-bin
# Дополнительный материал по оформлению всплывающих сообщений.
notify-send --icon=/home/minter/.local/share/icons/gnome/48x48/emblems/emblem-sync-megasync.png "MEGA starting"
time=`date '+%H.%M.%S'`
echo "$time mega started" >> $log
# Значок & после команды запуска клиента указывает на
# переход к следующей команде. Если он будет отсутствовать,
# то следующая команда не будет выполнена до тех пор, пока
# будет активна команда megasync.
megasync &
# sleep 600 означает "спать 10 минут". Планируется, что 10 минут
# достаточно для выполнения синхронизации. 
sleep 600
# Команда завершения работы клиента MEGA без участия пользователя.
client="$(pidof megasync)"
kill -15 ${client}
time=`date '+%H.%M.%S'`
echo "$time mega stoped" >> $log
sleep 5
# После завершения работы клиента данные, относящиеся к процессу
# синхронизации с облаком MEGA записываются в папку с настройками
# учётной записи. Предыдущие данные удаляются, а данные
# выполненного сеанса синхронизации записываются на их место.
rm -R $conf/MEGAsync
cp -R "/home/minter/.local/share/data/Mega Limited/MEGAsync" $conf/MEGAsync
notify-send --icon=/home/minter/.local/share/icons/gnome/48x48/emblems/emblem-sync-megasync-blue.png "MEGA backuped"
time=`date '+%H.%M.%S'`
echo "$time account data copied to backup" >> $log
exit

Если имеется только 1 учётная запись MEGA, то содержание файла account.sh можно упростить до следующего:

#!/bin/sh
day=`date '+%d'`
log=/home/minter/Reports/mega/$day.data2.txt
notify-send --icon=/home/minter/.local/share/icons/gnome/48x48/emblems/emblem-sync-megasync.png "MEGA starting"
time=`date '+%H.%M.%S'`
echo "$time mega started" >> $log
megasync &
sleep 600
client="$(pidof megasync)"
kill -15 ${client}
time=`date '+%H.%M.%S'`
echo "$time mega stoped" >> $log
exit

Необходимость в наличии папки MEGAsync (см. в начале публикации) будет отсутствовать, так как не имеется необходимости в перезаписи содержания папки 
~/.local/share/data/Mega Limited/MEGAsync

воскресенье, 10 ноября 2019 г.

Применение rclone в Linux с использованием сценариев на bash


Интерес к применению rclone явился следствием поиска какого-либо решения, которое позволило бы взаимодействовать с Облако@Mail.Ru после прекращения Mail.Ru поддержки клиента синхронизации для Linux. А возможность использования rclone для взаимодействия с Диском Google и Microsoft OneDrive придало дополнительное ускорение изучению данного вопроса.

Приводимые сценарии на bash (скрипты bash) для автоматизации процессов копирования, перемещения и синхронизации данных с облачными хранилищами Dropbox, Microsoft OneDrive, Диск Google, Box.net, Jottacloud, MEGA, pCloud, Яндекс Диск, Облако@Mail.Ru создавались для своих нужд и использования в системах Linux Mint 18.3 и Linux Mint 19.2.

Ожидается, что повторяемость приводимых сценариев будет достаточно высока. Теоретически, всё должно работать, но, как говорится, даже самая маленькая практика стоит самой большой теории. В приводимых листингах вместо manager и minter не забудьте указывать имя своего домашнего каталога. Также следует иметь в виду, что некоторые команды для Вашей оболочки (Cimnnamon, MATE и др.) могут быть другими. Примеры приводятся для XFCE, о чём в скобках даются пояснения.

Сценарии оформляются как исполняемые файлы sh, запуск которых производится по расписанию или через кнопки запуска (дополнительно читать здесь или здесь).

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


Здесь вам не равнина, здесь – климат иной ... (Высоцкий В.С.)

Говоря простым языком, rclone является инструментом, написанным на языке Go, с помощью которого, хотя и через командную строку, можно напрямую взаимодействовать с содержимым своего облачного хранилища данных без необходимости установки десктопного клиента синхронизации. Под прямым взаимодействием имею в виду интересующие меня операции копирования, перемещения, синхронизации. Со списком поддерживаемых ПО rclone облачных хранилищ можно ознакомиться на сайте https://rclone.org  Справа от каждого наименования можно увидеть такие значки как "домик" и "книга". "Домик" содержит ссылку на главную страницу ресурса, а "книга" – ссылку на пример настройки для него rclone. Например,


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


Получить rclone

Скачать ПО rclone можно со страницы https://downloads.rclone.org/  Для установки текущей версии ПО мной был скачан deb-пакет, в наименовании которого присутствует слово current:


ПО предыдущих версий смотрите в соответствующей папке с начала страницы и вниз.


Настройка rclone

Для настройки rclone выполните в терминале команду rclone config

Если у Вас уже имеются настроенные варианты соединений, то они отобразятся под записью Current remotes.

Current remotes:

Name                 Type
====                 ====
CA                   dropbox
Jotta-2              jottacloud
SA                   dropbox

Ниже следуют варианты "что делать":

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q>

e – редактировать существующее соединение;
n – новое соединение;
d – удалить существующее соединение;
r – переименовать имя соединения
c – копировать настройку;
s – установить конфигурационный пароль;
q – выйти из режима настройки.

При выборе нового соединения rclone запросит его имя (как вы яхту назовёте, так она и поплывёт). Команды работы с rclone в качестве указания удалённого ресурса будут содержать имя соединения.

После ввода имени соединения необходимо цифрой указать облачное хранилище, на которое далее будет настраиваться rclone.

Листинги с пояснениями осуществлённых мной настроек на свои облачные ресурсы хранения данных содержатся ниже.



Как указывалось выше, имя настроенного соединения можно изменить, например:

e/n/d/r/c/s/q> r
Choose a number from below, or type in an existing value
 1 > CA
 2 > MS
 3 > SA
 4 > Sv
remote> 4
Enter new name for "Sv" remote.
name> VS
Current remotes:

Name                 Type
====                 ====
CA                   dropbox
MS                  onedrive
SA                   dropbox
VS                   dropbox


Файл с настройками rclone расположен в скрытом каталоге домашнего каталога пользователя: ~/.config/rclone/rclone.conf


Команды действий в rclone

Все возможные команды rclone перечислены на странице https://rclone.org/docs

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

Синтаксис команды очень прост: rclone действие откуда куда

"Откуда" и "куда" указывают на локальный каталог (папку) компьютера или каталог (папку) выбранного облачного ресурса.

Весь облачный ресурс указывается в виде имя_соединения:

Например, для перечисленных в примере выше указание всего облака будет в виде CA: MS: SA: VS:

Для работы с конкретной папкой облака её имя указывается сразу после двоеточия, например:  CA:Входящие  или  MS:Музыка/Инструментальная .

Дополнительная информация: в качестве указателей "откуда" и "куда" могут использоваться и подключения к ресурсам облачного хранения данных.


Получить список содержимого

Возможные команды:  rclone treerclone lsrclone lsdrclone lsl.

rclone tree – отобразить содержание в виде дерева;

rclone ls – отобразить объекты с указанием размера и пусти;

rclone lsd – отобразить все папки/контейнеры c их именами и количеством содержащихся в них элементов;

rclone lsl – отобразить все объекты, их пути и размеры.

Результаты вывода показаны на рисунках ниже:





Можно создать сценарии на bash, которые будут осуществлять сохранение данного вывода в файл или для отображения вывода в терминале или через zenity.

Просто вывод в текстовый файл:

#bin/bash
rclone tree MS:Audio > /home/manager/Reports/MS.txt
exit

Вывод в окно терминала (пример для xfce):

#!/bin/bash
xfce4-terminal --geometry=80x35 -x sh -c 'rclone tree MS:Audio; exec bash'


--geometry=80x35 – это ширина и высота окна терминала.

Вывод в zenity:

#bin/bash
file=/home/manager/Reports/MS.txt
rclone tree MS:Audio > $file
zenity --text-info --width "600" --height "400" --title "Содержание ресурса" --filename=$file
rm $file
exit


-width "600" --height "400" – это ширина и высота окна.

--title "Содержание ресурса" – это заголовок окна.

После нажатия на кнопку ОК данное окно будет закрыто и выполнится последующая команда удаления файла MS.txt, который представляет из себя список содержимого.


Копировать, переместить

Так как rclone мной в большей части используется для автоматизации процессов, то ниже приводятся примеры сценариев, которые запускаются по расписанию, но даётся и пример интерактивного отображения.

Команды:  rclone copy,  rclone copyto,  rclone move,  rclone moveto

rclone copy – копировать файлы из источника в назначение, существующие файлы не перезаписываются;

rclone copyto – копировать файлы из источника в назначение, пропускаемые файлы уже скопированы;

rclone move – переместить файлы из источника в назначение;

rclone moveto – переместить файл или каталог из источника в назначение.

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

Пример:

#!/bin/bash
# Log creation
day=`date '+%m-%d'`
report=/home/minter/Dropbox/Reports/SA/$day.rclone.txt
if [ -f $report ]; then
  :
else
  > $report
  time=`date '+%H-%M-%S'`
  echo "$time -- rclone log created" >> $report
fi
# Transfer messages
sm=/home/minter/Clouds/rsync/SA
dm=SA:Input/Сообщения
count=`find $sm -type f | wc -l`
if [ $count -eq 0 ];
then
 time=`date '+%H-%M-%S'`
 echo "$time -- no items to transfer" >> $report
else
 time=`date '+%H-%M-%S'`
 echo "$time -- start of transmission" >> $report
 echo "* * *" >> $report
 ls $sm >> $report
 echo "* * *" >> $report
 rclone move $sm $dm
 time=`date '+%H-%M-%S'`
 echo "$time -- all items transferred" >> $report
fi
exit

Приведенный сценарий осуществляет перемещение содержимого каталога /home/minter/Clouds/rsync/SA в папку Input/Сообщения облака под именем соединения SA. Осуществляемые действия протоколируются в файл отчёта /home/minter/Dropbox/Reports/SA/$day.rclone.txt, в имени которого присутствует дата. То есть файл отчёта имеет наименование, например 11-07.rclone.txt (ноябрь 7-го). Файл отчёта создаётся ежедневно. Если такой файл существует, то операция его создания не производится. В файл отчёта включается время начала передачи, список передаваемых файлов и время завершения передачи. Передача производится в том случае, если в каталоге (папке) источника найден хотя бы 1 файл. Если ни одного файла не найдено, то запуск rclone не осуществляется, а в файл отчёта вносится запись о том, что для передачи ничего не имеется (no items to transfer). Для повышения читаемости файла отчёта в него дополнительно включаются разделители вида * * *. Пример:

06-30-01 -- rclone log created
06-30-01 -- start of transmission
* * *
11-09.No.313.03-50.pdf
11-09.No.313.05-01.pdf
Поля сражений (1-10 серии).html
* * *
06-30-05 -- all items transferred

Если при передаче больших объемов данных необходимо контролировать ход процесса, то после команды необходимо добавить ключ --progress. Пример:


Пример сценария:

#!/bin/bash
xfce4-terminal --geometry=80x35 -x sh -c 'rclone move --progress /home/minter/00 Box-1:Books; exec bash'


По завершении операции будет отображено приглашение командной строки, например:



Сколько данные занимают места на облаке

Команда:  rclone size

Примечание: если у Вас много данных, то процесс может занять время.

Например:


Сценарий 1:

#!/bin/bash
xfce4-terminal --geometry=80x35 -x sh -c 'rclone size MS:Audio; exec bash'


Сценарий 2 (через zenity):

#bin/bash
file=/home/manager/Reports/MS.txt
rclone size MS:Audio > $file
zenity --text-info --width "300" --height "180" --title "Занимаемое место" --filename=$file
rm $file
exit



Сколько занято и сколько доступно на облаке

Команда:  rclone about

Выводятся значения Total (выделено облаком), Used (использовано), Free (свободно), Trashed (в Корзине).

Пример:


Сценарий 1 (пример для xfce):

#!/bin/bash
xfce4-terminal --hold -e "rclone about MS:"


Сценарий 2 (zenity):

#bin/bash
file=/home/manager/Reports/MS.txt
rclone about MS: > $file
zenity --text-info --width "300" --height "180" --title "Занимаемое место" --filename=$file
rm $file
exit



Синхронизация данных

Команда:  rclone sync

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

Пример сценария:

#!/bin/bash
day=`date '+%m-%d'`
sm=/home/minter/FBbooks
dm=MEGA-3:FBbooks-H-4
report=/home/minter/Dropbox/Reports/MEGA-3/$day.list.txt
# Syncronize
rclone sync $sm $dm
rclone tree MEGA-3: > $report
exit

В этом сценарии после завершения синхронизации формируется список содержания синхронизируемого ресурса, который экспортируется в файл txt  /home/minter/Dropbox/Reports/MEGA-3/$day.list.txt


Другие команды rclone

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

rclone delete – удалить контент пути (например удалить содержимое ресурса SA:Input/Сообщения);

rclone purge – удалить путь и весь его контент (насколько предполагаю, применительно к предыдущему случаю будет удалена папка Сообщения со всем её содержимым);

rclone mkdir – создать путь (каталог), если он не существует;

rclone rmdir – удалить путь (вероятно, каталог);

rclone rmdirs – удалить пустые каталоги, расположенные ниже пути (имеются в виду вложенные каталоги);

rclone check – проверить, совпадают ли файлы источника и назначения;

rclone dedupe – интерактивно найти дубликаты файлов и их удалить/переименовать;

rclone mount – монтировать облако или его папку в каталог компьютера. Например, rclone mount MS:Audio /home/manager/00. Для отмонтирования в документации rclone указано, что нужно отправить сигнал SIGTERM.

Для своих нужд создавались 2 сценария: монтирование и отмотирование.

Для монтирования, например, всего облака с именем SA:

#!/bin/sh
rclone mount SA: /home/minter/00 &
exit

Всё пространство облака SA монтируется в каталог /home/minter/00

Символ & позволяет завершить сценарий, то есть выполнить команду exit при сохранении подключения к облаку.

Для отмонтирования, то есть отправки SIGTERM, соответствующему команде kill, необходимо знать номер процесса.


Пример сценария отмонтирования:

#!/bin/sh
client="$(pidof rclone mount SA: /home/minter/00)"
kill ${client}
exit 


Пример перемещения данных в ЛВС по ftp

Если в папке с данными будет найден хотя бы 1 файл, то rclone будет выполняться.

#!/bin/bash
cur=/home/manager/RClone/Curious
hum=/home/manager/RClone/Humour
sm=/home/manager/RClone/SA
count1=`find $cur -type f | wc -l`
if [ $count1 -eq 0 ];
then
 :
else
 rclone move $cur H-4:Clouds/rsync/Curious
fi
count2=`find $hum -type f | wc -l`
if [ $count2 -eq 0 ];
then
 :
else
 find $hum -name '*.odt' -delete
 rclone move $hum H-4:Clouds/rsync/Humour
fi
count3=`find $sm -type f | wc -l`
if [ $count3 -eq 0 ];
then
 :
else
 find $sm -name '*.odt' -delete
 rclone move $sm H-4:Clouds/rsync/SA
fi
exit


Дополнительные команды

1. Передача/получение данных с уничтожением каталогов

При передаче через move исходные каталоги не удаляются, оставаясь "пустыми", то есть без содержания. Чтобы они удалялись команду move необходимо дополнять так называемым флагом: --delete-empty-src-dirs

Пример с использованием отображения процесса в терминале в оболочке xfce:

xfce4-terminal --geometry=80x15 -x sh -c 'rclone move --progress li-2:sa /home/minter/Загрузки --delete-empty-src-dirs; exec bash'

2. Очистка Корзины

Иногда требуется принудительно очищать Корзину, так как такие хранилища как Диск.Яндекс и MEGA при подсчётах доступного для записи места на облаке учитывают объём, который занимают удалённые данные, то есть помещённые в Корзину. Например:

rclone cleanup ydsa:

В приведенной выше команде ydsa: соответствует хосту Диск.Яндекс, прописанному в конфигурации rclone.conf


Пояснение возможного использования Rclone Browser

Ранее мной использовался графический инструмент rclone browser, установка которого возможна из менеджера программ:


Однако в этой оболочке значки облачных ресурсов Dropbox, Google, OneDrive, Yandex Disk корректно отображаются только до версии rclone 1.44. Уже с версии 1.45 эти ресурсы начинают отображаться знаком вопроса.

Ранее мной автору rclone ранее задавался вопрос о возможной причине отображения интересующего меня ресурса MEGA значком вопроса. Martins Mozeiko тогда ответил мне, что при разработке rclone browser MEGA ещё не предоставляла необходимый значок, поэтому он и отсутствует. Но, по его словам, я мог бы скомпилировать rclone browser из исходных кодов, включив в проект своей сборки нужный мне значок. В то время у меня так и не получилось сделать свою версию rclone browser. А после того как удалось разобраться с командами rclone, необходимость в использовании rclone browser отпала сама собой.

Если Вам критично корректное отображение в Rclone Browser значков и Вы используете только Dropbox, OneDrive, Google, Yandex Disk, то устанавливайте Rclone Browser и rclone версии 1.44. Для монтирования облака создайте у себя пустой каталог (и без запуска Rclone Browser не записывайте туда никаких данных). Пример:


При монтировании в этот каталог облака его содержимое будет отображено в этом каталоге.


 "Подводный камень".  При попытке отмонтировать ресурс 00 через менеджер файлов (рис. выше) отмонтирование происходит не всегда. Чтобы отмонтировать подключенный удалённый ресурс нужно во вкладке Rclone Broser Jobs


напротив выбранного ресурса нажать на значок крестика и подтвердить выполнение назначенной операции:



Однако бывает, что отмонтирование как будто произошло, но или каталог, в который было смонтировано облако отображается как присоединённый, или содержание своего домашнего каталога недоступно. В этом случае попробуйте завершить процесс в менеджере задач. Если не помогло, то имеется только вариант перезагрузки системы.  

В последних дистрибутивах Linux Mint (19/20) используется дальнейшая разработка Rclone Browser 1.8, которую сопровождает уже не Martins Mozeiko, а разработчик с ником kapitainki (London, UK). В новой версии Rclone Browser появилось отображение значков MEGA, но отсутствуют значки для Облака Mail.Ru и pCloud. Вместо них отображаются значки вопроса.

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