четверг, 22 ноября 2018 г.

Thunar: команда "выполнить скрипт" в контекстном меню


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

Выберите "Правка – Особые действия":


В следующем разделе настроек нажмите "Добавить":


В поле "Имя" укажите наименование пункта, которое будет отображаться в меню, а в поле "Команда" впишите sh %f :


В условиях полявления укажите файлы *.sh :


Теперь при выделении файла с расширением sh в правом контекстном меню отобразится указанное наименование команды:


вторник, 20 ноября 2018 г.

Расширение Thunar для облака MEGA

В менеджере пакетов Synaptic нашлось полезное дополнение, расширяющее возможности работы файлового менеджера Thunar с облаком MEGA. Пакет дополнения называется thunar-megasync.

Почему-то для 64-битной Linux Mint 18.3 данный пакет найден только i386, в то время как в Linux Mint 19 данный пакет, похоже, 64-битный.


Пакет для Linux Mint 18.3


Пакет для Linux Mint 19

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


Загрузить 1 каталог


Загрузить 1 файл


Загрузить 3 каталога


Загрузить 3 файла

После активизации данного пункта правого контекстного меню Thunar будет вызвано окно загрузки. По умолчанию выбранный контент будет загружаться в папку MEGAsync Uploads облака MEGA.


Если такой папки на Вашем облаке MEGA не существует, то она будет создана автоматически. Однако загрузка именно в эту папку не является обязательной. Папку загрузки можно изменить и даже переназначить на другую папку по умолчанию. Для этого нажмите на красный логотип MEGA (на рисунке выше справа) и укажите другую папку Вашего облака MEGA.


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


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


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

понедельник, 19 ноября 2018 г.

Цитаты в терминале


Приведенное публикуется после ознакомления с публикацией "Добавить афоризмы в терминал Linux (Это интересно)".

Действительно, получилось интересно:


Ниже приводится список цитат, отображённых у меня за последнее время:

ЧЕТВЕРТЫЙ ЗАКОН ПРОВЕРКИ
 Как бы кропотливо и тщательно вы ни готовили выборку, вам всегда могут
 сказать, что она неправильна и неприменима к данной проблеме.

Принятие нужных мер, всегда обходится дешевле, чем принятие решительных.
-- Евгений Кащеев

Три минуты удовольствия не стоят трёх часов хорошего разговора.
-- Р. Дэйнджерфилд

Нет ни в чем Вам благодати,
Со счастием у Вас разлад:
И прекрасны Вы некстати,
И умны Вы невпопад.
-- А.С.Пушкин

Не порицайте женщину. Ибо цель мужчины истина, а цель женщины довольство собой.

Если Вам понравилось, то выполните в терминале

sudo apt install -y fortune-mod fortunes-ru && xed ~/.bashrc (Linux Mint)

sudo apt install -y fortune-mod fortunes-ru && gedit ~/.bashrc (Ubuntu)

В результате у Вас будет установлено соответствующее ПО и откроется текстовый редактор с содержимым файла ~/.bashrc, в который необходимо дописать строку fortune:


Сохраните изменение в файле  ~/.bashrc

Соответственно, для удаления выполните в терминале

sudo apt purge -y fortune-mod fortunes-ru && xed ~/.bashrc (Linux Mint)

sudo apt purge -y fortune-mod fortunes-ru && gedit ~/.bashrc (Ubuntu)

В открывшемся текстовом редакторе удалите строку fortune (см. выше) и сохраните файл.

Отображаемые цитаты расположены в файлах без расширения в каталоге /usr/share/games/fortunes/ru (можно, например, открыть отмеченный файл amur)


Выбирая из этих файлов понравившееся можно составить свой цитатник для использования в переписке по E-mail или общении.

четверг, 15 ноября 2018 г.

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

Одной из задач, решение которых потребовало времени, явилась необходимость выполнения команды остановки работы графических клиентов клиентов Mega и Облако@Mail.Ru без участия оператора компьютера, то есть производимых по расписанию. Другими словами – организация полной автоматизации циклов "Запуск клиента – Синхронизация – Выход из приложения" .

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

Если с запуском графических клиента синхронизации Mega и Cloud@Mail.Ru вопросов не возникало (запуск осуществляется командами megasync и cloud), то как останавливать их работу без вызова контекстного меню управления через значок системного лотка (трея) было не понятно.

В конце концов было выяснено, что таких терминальных команд для указанных графических клиентов не существует (или мне их так и не удалось найти), поэтому завершение работы приложения пришлось осуществлять через закрытие процесса (megasync или cloud). Например, в диспетчере задач XFCE указанные процессы отображаются как:



Как пишет автор этой публикации, чтобы "попросить процесс (вежливо) остановиться" используется команда SIGTERM, соответствующая выполнению команды kill -15.

В ходе практической проверки команда kill -15 megasync (то есть с указанием имени процесса) не была выполнена, так как SIGTERM вместо имени процесса требует указывать его pid. Поэтому перед выполнением SIGTERM требуется получить pid процесса megasync, который каждый раз будет разным.

Получение pid процесса megasync осуществляется командой pidof megasync

Первоначальное решение заключалось в записи полученного pid в файл

pidof megasync > /home/minter/megasync.txt

и последующей записи pid в переменную путём считыванием 1-й строки megasync.txt

MYVAR=`sed -n '1p' /home/minter/megasync.txt`

Примечание.  /home/minter/ можно заменить на ~/

Далее осуществляется выполнение kill -15 $MYVAR, то есть kill -15 pid-megasync

Желаемый результат был достигнут, а промежуточные данные в виде файла megasync.txt подлежали удалению: rm /home/minter/megasync.txt

Полный текст скрипта составил:

#!/bin/bash
pidof megasync > /home/minter/megasync.txt
MYVAR=`sed -n '1p' /home/minter/megasync.txt`
kill -15 $MYVAR
rm /home/minter/megasync.txt
exit

Однако впоследствии были предприняты поиски решения, при котором полученный pid можно было бы кратковременно запомнить и подставить это значение в kill -15 pid-megasync.

Благодаря автору этой публикации, решение данной задачи свелось к двум строкам кода:

OUTPUT="$(pidof megasync)"
kill -15 ${OUTPUT}

После подстановки полученного ${OUTPUT} после kill -15 было реализовано "мягкое" завершение работы процесса megasync, которое по своему функционалу соответствует команде "Выход", вызываемой из графического индикатора клиента MegaSync.

Скрипт был оформлен как файл sh и ему было назначено выполнение по расписанию.

#!/bin/bash
OUTPUT="$(pidof megasync)"
kill -15 ${OUTPUT}
exit

Не читается флэшка. Низкоуровневое форматирование в Linux

На практике пару раз возникала ситуация, когда в флэшка не "читалась" и с ней ничего не удавалось сделать. Такое возможно в случаях её "выдёргивания" из разъёма usb без отмонтирования или выхода файловой системы (таблицы размещения файлов) из строя. При этом переформатировать её также не удаётся ни через менеджер дисков, ни через gparted.

При поиске в Интернет инструментов низкоуровнего форматирования флэш-накопителя результаты в своём подавляющем большинстве будут относиться к Windows. В случае же Linux такое действие можно осуществить командой "забивания" накопителя нулевыми значениями байтов, представленных в hex-коде (16-ричной системе счисления).

sudo dd if=/dev/zero of=/dev/sdx bs=4M status=progress

в sdx вместо x необходимо подставить букву накопителя. Ниже приводится пример для флэшки 4 Гб.



На рисунке выше видно, что выделенный раздел накопителя флэш обозначен как b1. Поэтому сам накопитель необходимо указывать как b. С учётом указанного, команда будет иметь вид:

sudo dd if=/dev/zero of=/dev/sdb bs=4M status=progress

После выполнения команды в терминале начнёт отображаться ход процесса:


По его завершении отобразится, что

3879731200 байт (3,9 GB, 3,6 GiB) скопирован, 442,986 s, 8,8 MB/s
dd: ошибка записи '/dev/sdb': На устройстве не осталось свободного места
926+0 записей получено
925+0 записей отправлено
3879731200 байт (3,9 GB, 3,6 GiB) скопирован, 442,987 s, 8,8 MB/s
[user@|~ ] $

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

После исчезновения уведомления накопитель можно из usb изъять, а при повторном его подключении в менеджере дисков будет отображено:


среда, 14 ноября 2018 г.

Linux. Зеркальная копия каталога на другой хост с помощью ssh

Сохранность данных пользователя – головная боль пользователя, который сам должен позаботиться о том, чтобы ничто из "нажитого непосильным трудом" (из к/ф "Иван Васильевич меняет профессию) не пропало. И если сам пользователь сам об этом не позаботится, то никто другой за него это не сделает. А если он не сумеет это сделать сам, то о таком должен позаботиться близкий человек.

Ранее мной был описан вариант создания резервной копии, транслируемой из одного облака в другое при помощи инструмента создания зеркальной копии данных grsync.

Имеющееся решение предусматривало сохранение критически важных данных с компьютера Windows на Диск Яндекс в реальном масштабе времени (синхронизация). Сохранённые на Диск Яндекс данные предоставлялись в доступ в режиме "только чтение" другой учётной записи Яндекс, которые синхронизировались на другой компьютер под управлением Linux. Полученные данные с помощью grsync зеркалировались в другую папку, синхронизируемую с облаком MEGA.

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

Так как доступ к файловой системе второго компьютера в силу определённых причин решено было осуществлять не через Samba, а через SSH, то возникла, на первый взгляд, неразрешимая ситуация, связанная с тем, что выбранное ПО для синхронизации данных FreeFileSync не "умеет" работать с SSH.

И хочется, и колется, и мамка не велит ... Но, как говорится, если нельзя, но очень хочется, значит можно. Поэтому, чтобы было "моня", используем инструменты rclone + rclone browser, который будет транслировать содержание удалённого ресурса SSH в локальный каталог компьютера.

Не буду останавливаться на настройке FreeFileSync. Несмотря на англоязычность сайта, после скачивания архива tar.gz, его последующей распаковки и запуска файла FreeFileSync Вы обнаружите, что программа "разговаривает" по-русски.



На что следует обратить внимание?

Вызовите команду "Действия – Настройки синхронизации" (или нажмите F8). Так как SSH "не понимает" действия удаления в корзину, то следует указать безвозвратное удаление на приёмнике. То есть, при удалении из неё элементов (источник) такие же действия производятся и на приёмнике (получателе).


Второй особенностью является то, что данные для синхронизации источника будут хранится в каталоге, подлежащем зеркалированию, в виде скрытого файла .sync.ffs_db  А как указывалось в поставленной задаче выше, источник синхронизируется с Диском Яндекс в режиме "только чтение". И если файл .sync.ffs_db будет оставаться в каталоге, то при очередном сеансе синхронизации с Диском Яндекс будет отображена ошибка синхронизации, связанная с невозможностью записи файла .sync.ffs_db (ресурс "только чтение").

Решение заключается в том, чтобы:

1) зеркалирование каталога с помощью FreeFileSync осуществлялось при выключенном демоне Диска Яндекс, а при работающем демоне Диска Яндекс файла .sync.ffs_db в синхронизируемом каталоге быть не должно;

2) при запуске FreeFileSync файл .sync.ffs_db записывается в зеркалируемый каталог, а при выключении FreeFileSync файл .sync.ffs_db перемещается в другое место.

Исходя из п.2, для запуска FreeFileSync будет использоваться скрипт sh. Ниже приводится текст реального скрипта:

#!/bin/bash
mv /home/cemea/Yandex/Rovena/.sync.ffs_db /home/cemea/Yandex/Rovena/Логика
/home/cemea/Tools/FreeFileSync/FreeFileSync
mv /home/cemea/Yandex/Rovena/Логика/.sync.ffs_db /home/cemea/Rovena/Traidex
zenity --info --text "sync.ffs_db сохранён" 2>/dev/null --timeout=3
sleep 1 && exit

Теоретически можно предположить, что на компьютере Windows винчестер "прикажет долго жить". И даже то, что по "закону подлости" одновременно с ним выйдет из строя и винчестер на компьютере Linux. Но если возникнет ситуация, при которой одновременно "вылетят" винчестеры всех трёх компьютеров, то в этом случае останется лишь восклицать "дас ист фантастиш" и ...

понедельник, 12 ноября 2018 г.

СПАМ с "дальним прицелом"

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


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

2. В качестве имени отправителя указан Газпромбанк. Неужели кто-то ещё полагает, что Газпромбанк занимается какими-то розыгрышами между адресами электронных почт?

Обратите внимание на то, что в качестве e-mail отправителя указан sender@i-retail.com  Не настораживает какая-то степень несоответствия между именем отправителя и его адресом электронной почты?

Можно обратиться на https://2ip.ru и запросить информацию о домене i-retail.com


В результате выяснится, что домен i-retail.com


Ну как-то не вяжется Газпромбанк с провайдером США.

3. Если подвести мышку к кнопке "Заберите сумму своего выигрыша уже сейчас", то в нижней части браузера высветится, что при нажатии на эту кнопку браузер обратится по адресу http://bit.ly/... , что также не совсем соответствует Газпромбанку.

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

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

4. Кто сдал адрес? Кто виноват? Скорее всего, этот вопрос останется без ответа. В описываемом случае адрес используется для коммуникации в сфере академического образования. Учитывая то, что в образовании сплошная Windows, для которой вредоносного кода придумано не просто много, а очень много, а также время существования адреса около 20 лет, то лично мне удивляться не приходится. Просто и этот отправитель будет внесён в пользовательский фильтр почты Mail.Ru, в результате срабатывания которого сообщение будет удалено, а отправителю будет направлено системное сообщение "Нет такого адреса".