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

Автоматизация процессов. Запуск и остановка в Linux клиента MEGA по расписанию через bash

Запуск и остановка клиента синхронизации облака MEGA возможна по расписанию. Но если в скрипте, который будет осуществлять запуск клиента MEGA применить команду megasync, то скрипт не сработает.

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

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

Если Вы используете только одну учётную запись MEGA, то в пользовательском задании cron укажите выполнение команды DISPLAY=:0 /usr/bin/megasync

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

При использовании нескольких учётных записей MEGA для запуска и остановки клиента MEGA с необходимым аккаунтом целесообразно использовать 2 скрипта.

1-й скрипт запишет нужную конфигурацию учётной записи и запустит клиент.

Пример:

#!/bin/bash
rm -R '/home/user/.local/share/data/Mega Limited/MEGAsync'
cp -R /home/cemea/configs/Mega-4/MEGAsync '/home/user/.local/share/data/Mega Limited'
DISPLAY=:0 /usr/bin/megasync

2-й скрипт остановит работу клиента MEGA. Пример:

#!/bin/bash
OUTPUT="$(pidof megasync)"
kill -15 ${OUTPUT}
rm -R /home/user/configs/Mega-4/MEGAsync
cp -R '/home/user/.local/share/data/Mega Limited/MEGAsync' /home/user/configs/Mega-4
exit

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

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

Комментариев нет:

Отправить комментарий