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

пятница, 31 декабря 2021 г.

Исключить из синхронизации с Диск.Яндекс вложенные папки

При синхронизации с Диском.Яндекс имеется возможность исключить из процесса синхронизации некоторые папки. Для этого а файле настроек config.cfg имеется инструкция exclude-dirs, например:

auth="/home/minter/.config/yandex-disk/passwd"
dir="/home/minter/Yandex.Disk"
proxy="no"
exclude-dirs="Clips, OldSys, Video, Фотокамера"

Однако если в последующем в синхронизацию будет добавлена ещё одна папка, в которой из процесса синхронизации требуется исключить какую-либо вложенную папку, к примеру:

auth="/home/minter/.config/yandex-disk/passwd"
dir="/home/minter/Yandex.Disk"
proxy="no"
exclude-dirs="Clips, OldSys, Video, Фотокамера, Книги/.debris"

то можно с удивлением обнаружить, что несмотря на наличие в конфигурационном файле исключения exclude-dirs="..., Книги/.debris" содержание папки .debris будет синхронизироваться с Диском.Яндекс, по крайней мере на начальном этапе синхронизации.

Данный вопрос был задан службе поддержки Диска.Яндекс и в ответ получено разъяснение, что во избежание такой ситуации рекомендуется сначала в браузере создать на Диске.Яндекс синхронизируемую папку и исключаемую из синхронизации папку. Далее при добавлении папки синхронизации и папки исключения (exclude-dirs="..., Книги/.debris") содержание исключаемой из синхронизации папки на облаке Диска.Яндекс будет оставаться пустым, то есть исключение будет работать. Проверено, в действительности так и происходит. 

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

суббота, 3 августа 2019 г.

Кнопки запуска для подключения к webdav с автомонтированием в файловом менеджере Thunar

В отличие от файловых менеджеров nemo (Cinnamon) и caja (MATE) файловый менеджер Thunar в xfce в своём меню не имеет подобных команд для подключения к ресурсам webdav.

Можно, конечно, воспользоваться программой gigolo (sudo apt install -y gigolo), в которой это удобно будет делать, но можно обойтись и без неё, создав кнопки запуска на рабочем столе или нижней панели (дополнительной панели).

Для создания кнопки запуска на рабочем столе вызовите правое контекстное меню мыши и выберите "Создать значок запуска". В качестве команды впишите davs:// и далее логин и адрес ресурса webdav. Например, для подключения к Диску Яндекс (Яндекс.Диск) введите:

thunar "davs://login@webdav.yandex.ru"

login это Ваша учётная запись, которая является первым словом из адреса электронной почты, например login@yandex.ru

Если у Вас учётная запись в Яндекс почте из серии "почта для домена", то тогда вместо login пишется полный адрес электронной почты, например cetus@tut.by  Тогда команда приобретёт вид:

thunar "davs://cetus@tut.by@webdav.yandex.ru"


Для назначения значка нажмите на кнопку "Без значка" и выберите понравившийся значок. Пример назначения значка:


Вызовите в созданном значке в свойствах значка секцию "Права" и установите галочку в поле "Разрешить запуск этого файла в качестве программы":


При вызове созданной кнопки запуска Яндекс Диск будет автоматически смонтирован в файловом менеджере Thunar как сетевой ресурс:


Создание значка запуска на панели производится аналогично. Станьте курсором на панель и вызовите правое правое контекстное меню мыши. Далее выберите "Панель – Добавить новые элементы". Укажите "Запуск приложений":


На созданном значке через правое меню мыши кликните "Свойства". Нажмите кнопку, которая расположена ниже кнопки + :


Откроется окно свойств, точно такое же как и при создании значка запуска на рабочем столе, в котором просто заполните необходимые строки и назначьте значок:


Примечание. Более подробно про создание значков запуска на панели xfce можно прочитать здесь: https://onformix.blogspot.com/2016/09/xfce.html

Для подключения по webdav к другому аналогичному хранилищу box.net используйте команду

thunar "davs://login@dav.box.com/dav"

В силу ограничений для бесплатных учётных записей box.net размер файлов, которые можно записывать через webdav, имеет ограничение в 250 Мб.

При первом подключении по webdav будет запрашиваться пароль. По умолчанию предлагается запомнить пароль до выхода из сеанса. То есть если систему перезагрузить и вызвать подключение по webdav, то снова появится окно ввода пароля. Что выбрать – решайте сами. Если выбрать "Запомнить навсегда", то пароль больше никогда спрашиваться не будет.


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

Где в Ubuntu и Linux Mint находятся пароли к сетевым ресурсам? 

Пароли к этим ресурсам расположены в так называемой связке ключей keyring, которая представляет из себя файл в скрытом каталоге пользователя ~/.local/share/keyrings


Пароли расположены в файле Связка_ключей_по_умолчанию_keyring

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

Открыть данный файл в простом текстовом редакторе и произвести необходимые правки.

Ниже приводится пример части содержащейся в данном файле информации. Срока secret= и является паролем. Естественно, что в примере указаны "липовые" данные.

[1]
item-type=1
display-name=travis@h-5.net.org
secret=traverse93
mtime=1562794223
ctime=1562794223

[1:attribute0]
name=protocol
type=string
value=ftp

[1:attribute1]
name=server
type=string
value=h-5.net.org

...

[136]
item-type=1
display-name=cetus%40tut.by@webdav.yandex.ru:443/Yandex.Disk
secret= Renegat391be2
mtime=1564189280
ctime=1564189280

...

[136:attribute5]
name=user
type=string
value=cetus@tut.by

[136:attribute6]
name=xdg:schema
type=string
value=org.gnome.keyring.NetworkPassword

...

[185]
item-type=1
display-name=abahe@webdav.yandex.ru:443/Yandex.Disk
secret=18CtdhtCsyrjd423
mtime=1564710388
ctime=1564710388

понедельник, 22 апреля 2019 г.

Вывод из файла определённых строк средствами bash


Необходимость вывода определённых строк из файла возникла при дальнейшем анализе автоматически созданных отчётов о состоянии Диска Яндекс. Особенно это актуально при использовании нескольких аккаунтов Диска Яндекс с целью определения: вместится ли туда дополнительный объём информации или надо ждать освобождения доступного дискового пространства в результате автоматической очистки его Корзины (или очищать Корзину вручную). После выполнения команды yandex-disk status и записи результатов в файл yandex-disk.txt, например

yandex-disk status > /home/user/reposrts/yandex-disk.txt

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

Статус ядра синхронизации: ожидание команды
Путь к папке Яндекс.Диска: '/home/user/Yandex.Disk/account1'
Всего: 43 GB
Занято: 38.44 GB
Свободно: 4.56 GB
Максимальный размер файла: 50 GB
Размер корзины: 6,38 GB

Последние синхронизированные пути:

...

Из полученного файла предмет интереса составляют строки "Занято", "Свободно", "Размер корзины". Другими словами, интерес представляют только строки 4, 5 и 7.

С этой целью создан скрипт на bash, в котором

reports – указание каталога отчётов,

values – указание каталога для записи промежуточных значений,

sed -n -e 4,5p -e 7p  – команда вывода 4, 5 и 7 строк из файла отчёта accoun1.txt

#!/bin/bash
reports=/home/user/reports
values=/home/user/reports/values
yandex-disk status > $values/accoun1.txt
sed -n -e 4,5p -e 7p $values/account1.txt > $reports/account1.txt
exit

В результате его выполнения получается желаемый результат:

Занято: 38.44 GB
Свободно: 4.56 GB
Размер корзины: 6,38 GB

При "разборе полётов" был использован материал ресурса rus-linux.net.

воскресенье, 17 февраля 2019 г.

Linux Mint 19.1 – кнопка запуска "состояние Диска Яндекс" + автозакрытие окна терминала через xx секунд


Применявшийся ранее в Linux Mint 18 способ вызова команды отображения состояния синхронизации Диска Яндекс посредством запуска скрипта bash через кнопку запуска в Linux Mint 19.1 xfce стал работать некорректно.

При отработке status.sh

#!/bin/bash
xfce4-terminal -H -e "yandex-disk status"

наблюдалась следующая картина:


Установка галочки в поле "Больше не спрашивать" к желаемому результату не приводила.

Приемлемый результат был достигнут только при изменении status.sh на:

#!/bin/bash
xfce4-terminal -x sh -c 'yandex-disk status; exec bash'


Про аналогичное решение для Cinnamon читайте здесь.

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

В этом случае попробуйте ввести в команду параметр задания ширины/высоты окна терминала  --geometry=AAxBB , где

AA – ширина окна, BB – высота окна

Меня, например, устроил вариант 80х35 :

#!/bin/bash
xfce4-terminal --geometry=80x35 -x sh -c 'yandex-disk status; exec bash'


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

Как указано в этой публикации, в файл ~/.bashrc необходимо добавить строки

# Exit Terminal
TMOUT=xx
export TMOUT

xx – время бездействия в секундах.

пятница, 18 января 2019 г.

Linux: вариант запуска и остановки Диска Яндекс с графическим индикатором вручную или по расписанию

Публикация рассматривает вариант запуска и остановки Диска Яндекс по расписанию (пользовательское задание cron), при котором также будет запущен и остановлен индикатор Диска Яндекс.

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

Изменение конфигурации (конфигураций) клиента Диска Яндекс

Так как в рассматриваемом варианте запуск и остановка клиента Диска Яндекс не будет осуществлять командами индикатора, то в конец файла конфигурации клиента Диска Яндекс config.cfg необходимо добавить строки:

startonstartofindicator="no"
stoponexitfromindicator="no"

Настройка автостарта индикатора Диска Яндекс

Проверьте в файле настроек индикатора соответствие строки autostart значению no, то есть должно быть autostart="no".

Файл настроек индикатора: ~/.config/yd-tools/yandex-disk-indicator.conf

Создание исполняемого файла запуска

Если у Вас только 1 учётная запись Яндекса, то файл запуска имеет вид:

#!/bin/bash
yandex-disk start
yandex-disk-indicator
exit

После запуска демона Диска Яндекс и графического индикатора сам скрипт прекратит свою работу, а запущенные Диск Яндекс и его графический индикатор будут выполняться.

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

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

#!/bin/bash
# Проверка наличия запущенного экземпляра Диска Яндекс.
# Если демон запущен, то в каталоге /tmp имеется каталог, в имени
# которого присутствует yandex-disk-
# Если Диск Яндекс запущен, ты вызывается команда его
# остановки yandex-disk stop (актуально для запуска по расписанию).
# Если про проверке такого каталога не найдено,
# то не производится никаких действий.
# Команде "Ничего не делать" соответствует двоеточие, то есть :
yd=/tmp/yandex-disk-*
if [ -d $yd ]; then
  yandex-disk stop
else
  :
fi
# Бывает, что в каталоге настроек Диска Яндекс появляется файл crash.txt
# Если такой файл будет найден, то он удаляется.
# crash, D1, D2 представляют из себя пути. Данные значения применены для
# того, чтобы вместо указания полного пути использовать переменные.
crash=/home/user/.config/yandex-disk/crash.txt
D1=/home/user/.config/yandex-disk
D2=/home/user/scripts/yandex/client-1
if [ -f $crash ]; then
  rm -f $D1/crash.txt
else
  :
fi
# Текущие файлы настроек клиента Диска Яндекс удаляются (rm), а вместо них
# записываются (cp) данные нужного аккаунта (3 файла настроек).
rm -f $D1/config.cfg
rm -f $D1/iid
rm -f $D1/passwd
cp $D2/config.cfg $D1
cp $D2/iid $D1
cp $D2/passwd $D1
# Запуск демона Диска Яндекс и графического индикатора.
yandex-disk start
yandex-disk-indicator
exit

Создание исполняемого файла остановки

Проверяется наличие запущенного индикатора Диска Яндекс по имени его процесса. Если такой процесс в системе присутствует, то происходит вызов команды остановки графического индикатора. После этого вызывается команда остановки Диска Яндекс.

#!/bin/bash
[ "$(pidof python3 /usr/bin/yandex-disk-indicator)" ] && pkill yd-tools || sleep 1
yandex-disk stop
exit

Выбор запуска: по расписанию или вручную

Если запуск будет производиться по расписанию, то при его выполнении для отображения индикатора команду следует указать следующим образом:

EXPORT DISPLAY=:0 && путь_к_ скрипту

пятница, 11 января 2019 г.

Синхронизация любых папок компьютера с Dropbox, MEGA, pCloud, Диск Яндекс, Облако@Mail.Ru

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

Такими облачными хранилищами являются:

Dropbox, Диск Яндекс, Облако@Mail.Ru

 Примечание.  Клиент Облако@Mail.Ru под Linux больше не работает. Сбылось мрачное предположение.

О создании символических ссылок читайте ниже.


Папки для синхронизации с MEGA и pCloud назначаются в их графических клиентах. При этом можно отменить синхронизацию с создаваемой папкой по умолчанию и впоследствии удалить её.

Про выборочную синхронизацию для pCloud читать здесь

Для реализации такого действия в клиенте MEGA при его настройке необходимо выбирать "Выборочная синхронизация" (подробности).

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

Для удаление текущей настройки клиента MEGA в Linux выполнить в терминале

rm -R '~/.local/share/data/Mega Limited/MEGAsync'

Для удаления текущей настройки клиента MEGA в Windows выполните в командной строке

rd "C:\Users\spinner\AppData\Local\Mega Limited\MEGAsync" /s /q

В указанной команде spinner – это папка профиля пользователя. Вместо spinner укажите имя папки Вашего профиля пользователя системы.

  Обратите внимание. 

1. Чтобы не пересинхронизировать большой объём данных или не потерять имеющиеся в облаке данные зайдите сначала в облако MEGA через браузер. Посмотрите на расположение данных в папках. Не исключено, что все Ваши данные расположены в папке MEGAsync

 
2. Перенесите в браузере данные из папки MEGAsync в корень облачного хранилища. Например, вот так:


3. Перенесите на компьютере данные из папки MEGAsync в другое место.

4. Запустите клиент и согласитесь с настройкой по умолчанию. В таком варианте папка MEGAsync компьютера и  папка MEGAsync облака не будут содержать каких-либо данных.

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


Клиент пересчитает новое расположение папок с данными. Это процесс может занять некоторое время.


Символические ссылки

В Linux символические ссылки создаются очень просто. Если такая команда отсутствует в контекстном меню Вашего менеджера файлов, то можно ознакомиться с этим материалом. Хотя в нём речь ведётся о файловом менеджере Thunar (графическое окружение xfce), в нём приводятся варианты команд создания символической ссылки на папку (каталог) .

Созданную ссылку поместить в папку (каталог) синхронизации с облаком. Желательно, чтобы имя ссылки было удобоваримым, а не что-то наподобие "Ссылка на ...", "Link to ...".

Замену папки синхронизации на символическую ссылку осуществлять при выключенном клиенте облачного хранилища.

1. Перенесите папку в данными в удобное для Вас место на Вашем компьютере.

2. Создайте на папку символическую ссылку. Имена папки и символической ссылки на неё должны быть одинаковыми.

3. Поместите созданную символическую ссылку в папку клиента.

4. Запустите клиент синхронизации.

Ниже приводятся примеры для Диска Яндекс, Dropbox, Обако@Mail.Ru.


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


Поясение к рисунку выше. Cemea является общей папкой





Про назначение символических ссылок в Windows читайте эту заметку.