понедельник, 31 октября 2022 г.

Внесение в cron нескольких заданий через bash

Возникла необходимость внесения двух заданий в в cron. Например, одно задание должно выполняться ежедневно каждую 1 минуту часа с 18 до 21 часов, а второе задание также должно выполняться ежедневно, но в 21 час. 5 минут.

Если компьютер свой, то назначить эти задания можно через команду терминала crontab -e (см. пользовательское задание cron):

01 18-21 * * * /home/minter/.config/scripts/cron1.sh

05 21 * * * /home/minter/.config/scripts/cron2.sh

Но если компьютер не свой (вы кому-то помогаете дистанционно) или каждый раз просто лень постоянно вносить изменения в сron через  crontab -e ?

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

Создадим скрипт, который "обнулит" текущий cron пользователя и запишет новый cron из подготовленного файла. 

🔰   Примечание. Приём заимствован из арсенала администраторов Linux, но с успехом работает и в системе только с одним пользователем. 

Пример:

#!/bin/bash
crontab -r
crontab -u minter /home/minter/Shared/cronjob
exit

-u minter  указывает на то, что новый cron будет назначен для пользователя системы с логином minter. Если пользователь имеет логин user, то будет -u user

/home/minter/Shared/cronjob  указывает полный путь к файлу cronjob

Сохраните данный скрипт как исполняемый файл sh, например newcron.sh 

Файл cronjob (или любое другое имя) представляет из себя обычный текстовый файл. Пример:

#
01 18-21 * * * /home/minter/.config/scripts/cron1.sh
05 21 * * * /home/minter/.config/scripts/cron2.sh

Обратите внимание, что в данном текстовом файле нет необходимости делать перевод каретки на новую строку, как это предписано при редактировании через crontab -e

Попробуйте выполнить созданный скрипт.  Откройте на редактирование cron (crontab -e) и убедитесь, что синтакис cron соблюдён, то есть пустая строка в конце присутствует.

воскресенье, 30 октября 2022 г.

Исключение из синхронизации pCloud скрытых папок и файлов

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


Ниже приводится пример добавления папок .debris, относящихся к механизму синхронизации с облаком MEGA.

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



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



понедельник, 24 октября 2022 г.

Syncthing как служба в Windows 7/10

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

1) с установленным сервером ftp невозможно было соединиться, несмотря на внесение необходимых записей в настройки сетевого экрана Windows (и даже при его отключении);

2) общие папки доступа на основной машине Linux не отображались даже при необходимых произведенных изменениях в параметрах сетевого обнаружения и доступа.

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

Проблема с обменом файлами (папками) решилась установкой Syncthing.  Описанное выше работает и в Windows 10.

На сайте Syncthing для Windows рекомендована установка SyncTrazor. Но держать лишнее приложение в системной трее было воспринято как не совсем хорошая идея и было принято решение поискать возможность запуска обычного экземпляра Syncthing без графического интерфейса, тем более что всё равно управление Syncthing производится через браузер.

Скачайте syncthing необходимой разрядности (32 или 64).

Для установки Syncthing как системной службы используйте ПО nssm нужной разрядности (скачать архив). Дальнейшие действия производились в соответствии с найденными рекомендациями.

Поскольку создание отдельных папок для nssm и syncthing показалось мне "расточительством", то оба этих файла были помещены в одну и ту же папка apps.



Далее открывается командная строка, запущенна от имени администратора и выполняются следующие команды:

c:\apps\nssm.exe install Syncthing c:\apps\syncthing.exe

c:\apps\nssm.exe set Syncthing AppDirectory c:\apps

c:\apps\nssm.exe set Syncthing start SERVICE_DELAYED_AUTO_START

В некоторых версиях Windows это может не получиться. Касается ситуации автоматического перехода командной строки в папку system32. В таком случае следует ввести команду перехода в папку c:\apps ( cd c:\apps ) и далее выполнить команды:

 nssm.exe install Syncthing c:\apps\syncthing.exe

nssm.exe set Syncthing AppDirectory c:\apps

nssm.exe set Syncthing start SERVICE_DELAYED_AUTO_START

Поясняющий рисунок ниже:



В результате в системе будет создана служба Syncthing, выполняемая при старте системы с некоторой задержкой (отложенный запуск).



Syncthing должен запускаться от имени пользователя системы. Поэтому изменяю параметры запуска службы с системной учётной записи на учётную запись пользователя.



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



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




Перезагрузить Windows и проверить доступ к панели управления Syncthing, указав в адресной строке браузера  http://127.0.0.1:8384  Результатом должно быть отображение панели управления Syncthing.

воскресенье, 9 октября 2022 г.

Переключение между клиентами PPPoE в MikroTik

В процессе эксплуатации роутера MikroTik возникла необходимость переключиться между интерфейсами PPPoE. Связано с финансовым вопросом, поскольку оплата провайдеру активного PPPoE будет задержана и имеется необходимость переключиться на другой аккаунт, предоставляющий услугу подключения к Интернет. Дальнейшие действия показаны через интерфейс веб-браузера, хотя примерно такая же картина будет наблюдаться и через Winbox.

1. Определяются имена интерфейсов PPPoE (клиентов PPPoE). Их имена заданы при настройке клиентов, в процессе которой они им и были присвоены. Однако имена можно поменять в любой момент, на функциональность это не влияет. Смотреть Interfaces либо PPP (равнозначно):



2. Через Sheduler (System – Sheduler) назначается задание выключения интерфейса PPPoE с заданным именем.

Если имя интерфейса, к примеру, internet-1, то командой будет  

/interface pppoe-client disable [find name=internet-1]

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


3. Аналогичным образом назначается задание включения интерфейса PPPoE с заданным именем.

Если имя интерфейса, к примеру, internet-2, то командой является  

/interface pppoe-client enable [find name=internet-2]

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