среда, 30 мая 2018 г.

Очистка Корзины по условию ("страсти" по автоматизации очистки Корзины в Linux)


Неумное любопытство, а возможно – полезная любознательность, привели к попытке ответа на вопрос: можно ли сделать так, чтобы команда на очистку Корзины" выдавалась только лишь при наличии в ней удалённых объектов?

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

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

Корзина не пустая – очищать, Корзина пустая – ничего не делать

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

Скрипт создавался в целях тестирования в рамках решения задачи по полной автоматизации предоставления на Яндекс Диске контента на временной основе (подробности).

Как указывалось в более ранней публикации, в каталоге ~/.local/share/Trash/info находятся сведения о местоположении и времени удаления каждого из объектов каталога ~/.local/share/Trash/files, который и содержит все удалённые файлы и каталоги (~/ следует понимать как домашний каталог текущего пользователя). Удаление указанных каталогов равносильно операции очистки Корзины.

Создадим исполняемый файл со следующим содержанием:

#!/bin/bash
# Очистка Корзины по условию
musor=~/.local/share/Trash/info
if [ -d $musor ]
then
rm -R ~/.local/share/Trash/files ~/.local/share/Trash/info
else
fi && exit

Пояснения.

musor=~/.local/share/Trash/info устанавливает имя каталога, существование которого будет проверяться командой if [ -d $musor ].

Если такой каталог существует то тогда будет выполнена команда удаления каталогов files и info вместе с их содержимым:

then
rm -R ~/.local/share/Trash/files ~/.local/share/Trash/info

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

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

Примечание. В данном примере не рассматривается каталог expunged, который также присутствует в каталоге ~/.local/share/Trash. Как следует из его назначения, в него помещается контент, который был удалён, но по каким-то причинам полного удаления его произведено не было. Однако за 8 лет работы в Linux мне ни разу не пришлось столкнуться с тем, чтобы в этот каталог было бы что-нибудь помещено. Но если Вас волнует эта проблема, то его можно добавить в команду очистки Корзины, а затем создать его снова:

rm -R ~/.local/share/Trash/files ~/.local/share/Trash/info ~/.local/share/Trash/expunged
mkdir ~/.local/share/Trash/expunged

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

zenity --info --text "Текст сообщения." 2>/dev/null --timeout=5

или

notify-send -i info "Текст сообщения."

В первом случае будет выведено информационное окно по центру экрана,


а во втором – так называемое оповещение, которое в зависимости от настроек будет отображено в правом верхнем/нижнем или левом верхнем/нижнем углу экрана монитора.


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

#!/bin/bash
# Очистка Корзины по условию
musor=~/.local/share/Trash/info
if [ -d $musor ]
then
rm -R ~/.local/share/Trash/files ~/.local/share/Trash/info
zenity --info --text "Корзина очищена." 2>/dev/null --timeout=5
else
zenity --info --text "Корзину чистить не нужно." 2>/dev/null --timeout=5
fi && exit

#!/bin/bash
# Очистка Корзины по условию
musor=~/.local/share/Trash/info
if [ -d $musor ]
then
rm -R ~/.local/share/Trash/files ~/.local/share/Trash/info
notify-send -i info "Корзина очищена."
else
notify-send -i info "Корзину чистить не нужно."
fi && exit

Созданный скрипт можно запускать вручную (создав соответствующую кнопку запуска) или пользовательским заданием cron по расписанию.

Лично у меня скрипт некоторое время использовался при выключении компьютера (создана специальная кнопка выключения компьютера). По-моему мнению, удалённый в Корзину контент необходим только как страховка в случае случайного удаления данных. А это выясняется до завершения работы на компьютере. Поэтому текст применявшегося мной скрипта выглядит следующим образом:

#!/bin/bash
# Очистка Корзины по условию
musor=~/.local/share/Trash/info
if [ -d $musor ]
then
rm -R ~/.local/share/Trash/files ~/.local/share/Trash/info
notify-send -i info "Корзина очищена."
else
notify-send -i info "Корзину чистить не нужно."
fi
sleep 10
zenity --info --text "Запуск задания на выключение." 2>/dev/null --timeout=5
shutdown

Введение команды sleep 10 обусловлено тем, что необходимо обеспечить последовательное отображение двух информационных сообщений. В данном примере настройка уведомления notify-send -i info предусматривает отображение сообщения в течение 7 секунд.

Команда shutdown запускает процесс собственно выключения компьютера, которое произойдёт через 60 секунд. Если необходимо немедленное выключение, то используйте команду shutdown -h now и без строки zenity --info --text ...

Удалить из корзины файлы и каталоги старше N дней

Задача может быть решена установкой пакетов autotrash или trash-cli.

Autotrash

Пакет autotrash можно установить через Synaptic, для нахождения которого задать в строке поиска trash или autotrash,


либо выполнив в терминале команду sudo apt install autotrash

Исполняемый файл расположен в каталоге /usr/bin и представляет из себя последовательность команд, написанных на языке Python:


Синтаксис команды определяется вызовом в терминале справки: autotrash -h

Для удаления из Корзины объектов (файлы и каталоги) старше N дней применяется команда – autotrash -d N. Например, для 3 дней – autotrash -d 3

Данную команду можно оформить исполняемым файлом (скриптом):

#!bin/bash
autotrash -d 3
exit

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

Если у Вас имеются дополнительные смонтированные разделы (диски), то для очистки Корзины в них с помощью ПО autotrash необходимо указать путь к Корзине на них, так как по умолчанию ПО полагает, что Корзина расположена по пути ~/.local/share/Trash (~/ соответствует Вашему домашнему каталогу).

В соответствии с инструкцией по применению (autotrash --help), в этом случае полная команда должна быть примерно такой:

#!bin/bash
autotrash -d 3
autotrash -T /home/user/R-1/.Trash-1000 -d 3
exit

Параметр -T задаёт пусть к Корзине дополнительного раздела с точкой монтирования R-1. Если Вы являетесь первым пользователем системы, то Вам назначен id 1000, Ваша Корзина на другом разделе является скрытым каталогом .Trash-1000. Корзина следующего пользователя будет являться скрытым каталогом .Trash-1001 и т.д.

Autotrash может применяться и с другими условиями:

--max-free=M – произвести очистку Корзины, если свободное место на разделе меньше M мегабайт. Например, 4 Гб = 4096 Мб;

--min-free=M – произвести очистку Корзины, если на разделе осталось доступно M мегабайт.

Примечание. Следует отметить, что в Linux имеется разница между "свободно" и "доступно". Свободно – это действительно то место, которое ещё не занято какими-либо данными. Доступно – это место, в которое Вы можете записывать данные. По умолчанию, разница между ними составляет 5% от объёма дискового пространства раздела. Условно можно сказать, что Доступно = Свободно - 5%. Пять процентов дискового пространства резервируется для нужд системы на случай "ремонта" файловой системы (например, перестройка индексов) или дефрагментации. На больших разделах (например, 1-2 Тб) это значение можно менять, уменьшая его до 1-2 % с помощью утилиты tune2fs.

--delete=M – произвести очистку Корзины, удалив из неё объекты меньше M мегабайт.

Команда очистки Корзины может быть комбинированной, например,
   autotrash --min-free 10240 -d 10

Trash-cli (утилита командной строки)

Пакет trash-cli можно установить через Synaptic, для нахождения которого задать в строке поиска trash или trash-cli,


либо выполнив в терминале команду sudo apt install trash-cli

Удаление из Корзины объектов старше N дней производится командой
   trash-empty N

Например, удалить объекты старше 3 дней – trash-empty 3 или скриптом

#!bin/bash
trash-empty 3
exit

Другими доступными командами для работы с trash-cli являются:

trash-list – отобразить объекты в Корзине,
trash-empty – очистить Корзину,
restore-trash – восстановить из Корзины,
trash-put  – действие, аналогичное rm, но с возможностью просмотра списка "удалённого". В реальности, объекты будут перемещены в Корзину с возможностью их просмотра по команде trash-list.

Примечание.

Последнее позволяет сопоставить команду rm перемещению в Корзину, для чего в скрытом файле ~/.bashrc необходимо создать алиас (псевдоним), вписав строку
    alias rm=trash-put или alias rm='trash'.
Если это сделать и для суперпользователя (файл /root/.bashrc), то все удалённые от его имени объекты будут помещаться в Корзину суперпользователя, которую затем тоже необходимо будет очищать.

Иными возможными вариантами так называемого "безопасного удаления" являются:

а) применение скрипта saferm.sh
Скрипт помещается в /bin и для него создаётся алиас alias rm=saferm.sh ;

б) применение скрипта move_to_trash.sh – #!/bin/sh mv "$@" ~/.trash
Создаётся алиас alias rm=путь к скрипту/move_to_trash.sh   (источник)

четверг, 24 мая 2018 г.

Доступ к контенту на Диске Яндекс на временной основе

На Диске Яндекс (Яндекс Диск) файлы и папки можно предоставлять в доступ. При этом предоставленная информация будет находиться в доступе до тех пор, пока не будет владельцем удалена (её содержание или ссылка на контент).

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

Для чего это было сделано? Во-первых, у меня есть респондент, который до сих пор так и не научился скачивать файлы с файлообменных ресурсов. Удивительно, но встречаются и такие люди. Во-вторых, – в силу использования Диском Яндекс так называемой дедупликации файлов, при наличии где-то на диске такого же контента, который мной запланирован к размещению, данный контент будет "загружен" практически моментально, что имеет несомненный плюс при размещении файлов большого объёма.

Вариант решения этой задачи заключается в создании заданий, выполнение которых происходит по расписанию.

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

В Linux и Windows задача решается различными способами и описывается отдельно для каждой из систем.


Практические шаги в Linux

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

2. Назначается задание на удаление содержащегося в каталоге временного контента.

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

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

#!/bin/bash
rm /home/user/DiskYandex/Temp/file.mp4
exit

#!/bin/bash
rm -R /home/user/DiskYandex/Temp/folder4
exit

#!/bin/bash
rm /home/user/DiskYandex/Temp/file.mp4
rm -R /home/user/DiskYandex/Temp/folder4
exit

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

#!/bin/bash
rm '/home/user/DiskYandex/Temp/Моё видео.mp4'
exit

#!/bin/bash
rm '/home/user/DiskYandex/Temp/Моя папка'
exit

Примечание. Если у Вас демон синхронизации запускается в процессе старта системы и работает постоянно, то в чтении пункта 3 нет необходимости.

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

#!/bin/bash
yandex-disk start
sleep 180
yandex-disk stop
exit

Команда sleep 180 устанавливает количество секунд (180), в течение которых будет выполняться работа демона синхронизации до его остановки по команде yandex-disk stop. Величина в 3 минуты (180 секунд) выбрана из соображений того, что за это время процесс Яндекс Диска гарантировано пересчитает имеющиеся данные даже в случаях кратковременного пропадания соединения. Такие случае наблюдались при запуске Яндекс Диска с индикатором, когда в поле состояния высвечивалась надпись "Нет связи". Однако не позднее 1-2 минут соединение восстанавливалось.  
Команда exit остановит выполнение исполняемого файла, после чего соответствующий ему процесс будет автоматически удалён из системы.

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

#!/bin/bash
rm -R /home/cemea/.config/yandex-disk
cp -R /home/cemea/Tools/configs/Yandex/03/yandex-disk /home/cemea/.config
yandex-disk start
sleep 180
yandex-disk stop && exit

4. После этого останется только необходимость периодического удаления потерявших актуальность строк в файле пользовательских заданий. Для редактирования своего файла пользовательских заданий cron выполните команду crontab -e

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


Практические шаги в Windows

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

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

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

Для удаления файла:

@echo off
del C:\Users\spinner\YandexDisk\video.mp4 /q
timeout /t 1 /nobreak
exit

Для удаления папки:

@echo off
rd "C:\Users\spinner\YandexDisk\Shared\Folder" /s /q
timeout /t 1 /nobreak
exit

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

@echo off
del "C:\Users\spinner\YandexDisk\Shared\Моё видео.mp4" /q
timeout /t 1 /nobreak
exit

@echo off
rd "C:\Users\spinner\YandexDisk\Shared\Моя папка" /s /q
timeout /t 1 /nobreak
exit

Команды timeout /t 1 /nobreak и exit соответствуют "заснуть на 1 секунду" и "завершить работу файла bat". Хотя можно обойтись и без timeout /t 1 /nobreak.


Полная автоматизация в Linux

Следует отметить, что описанная выше реализация лично для меня представилась не совсем удобной. Так, после назначения задания на удаление через Thunar требовалось вызывать на редактирование файл пользовательских заданий cron и добавлять кратковременный запуск демона Диска Яндекс.

Во-первых, когда на временный доступ назначается много контента, то внесение изменений в пользовательское задание cron (добавление данных и удаление данных, потерявших актуальность) превращается в деятельность "процесс ради процесса". А во-вторых, – как быть в случае, если синхронизация с Диском Яндекс не запущена (запускается вручную) или производится с использованием независимых учётных записей (несколько Дисков Яндекс на компьютере)?

1. Автоматизация процесса удаления данных.

Для автоматизации процесса потребуется много поработать с клавиатурой. Хотя это и "тоскливо", но утешением будет служить то, что это будет сделано только 1 раз.

Эта задача решается просто. В каталоге временных данных создаются каталоги, соответствующие числу месяца, до которого предоставляемые в доступ данные будут доступны. Например, 01, 05, 14, 28, 31. В эти каталоги заранее записываются данные и в дальнейшем синхронизируются с соответствующими папками облака Диска Яндекс.

Для осуществления операции удаления пишется 31 исполняемый файл задания. Примеры:

#!/bin/bash
trash=~/Yandex/Shared/01
if [ -d $trash ]
then
rm -rdf ~/Yandex/Shared/01
else
sleep 1
fi
sleep 5 && exit

#!/bin/bash
trash=~/Yandex/Shared/14
if [ -d $trash ]
then
rm -rdf ~/Yandex/Shared/14
else
sleep 1
fi
sleep 5 && exit

Пояснения:

~/Yandex/Shared/14 – путь к проверяемому каталогу Диска Яндекс. Сам проверяемый каталог 14 расположен в каталоге временных данных Shared, предоставленный в общий доступ. Знак ~/ соответствует расположению "в домашнем каталоге пользователя".

Проверяется наличие указанного выше каталога на диске. Если он существует, то производится его удаление вместе со всем содержимым (файлы и вложенные каталоги) без необходимости подтверждения, даже и в том случае, если сам каталог не содержит никаких данных.

Если такого каталога не существует, то задание "засыпает" на 1 секунду (sleep 1), после чего будет инициирован процесс завершения работы задания.

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

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

2. Создание исполняемого файла, осуществляющего запуск демона синхронизации Диска Яндекс и его последующую остановку (см. п.3 выше). Если у Вас демон синхронизации запускается в процессе старта системы и работает постоянно, то в создании файла нет необходимости.

3. Внесение заданий в cron.

Здесь тоже придётся поработать, но сделать только 1 раз.

Создать задание на запуск демона Яндекс Диска для каждой даты.
Создать задание на запуск процедуры удаления файла для каждой даты.

Например, 14 и 31 числа каждого месяца в 22:24 запускается демон Яндекс Диска, а в 22:25 производится удаление соответствующего каталога.

24 22 14 * * /home/cemea/Tools/configs/Yandex/demon.sh
25 22 14 * * /home/cemea/Tools/configs/Delete/del14
24 22 31 * * /home/cemea/Tools/configs/Yandex/demon.sh
25 22 31 * * /home/cemea/Tools/configs/Delete/del31

Если применяется синхронизация с Яндекс Диском для нескольких учётных записей, то дополнительно создаётся задание на проверку наличия запущенного Диска.Яндекс (demoncheck.sh). Если он запущен, то выдаётся команда на его остановку (yandex-disk stop). Проверка планируется за 1 минуту до запуcка синхронизации под необходимой учётной записью. Например:

23 22 14 * * /home/cemea/Tools/configs/Yandex/demoncheck.sh
24 22 14 * * /home/cemea/Tools/configs/Yandex/demon.sh
25 22 14 * * /home/cemea/Tools/configs/Delete/del14
23 22 31 * * /home/cemea/Tools/configs/Yandex/demoncheck.sh
24 22 31 * * /home/cemea/Tools/configs/Yandex/demon.sh
25 22 31 * * /home/cemea/Tools/configs/Delete/del31

Задание проверки наличия запущенного демона Диска Яндекс.

#!/bin/bash
yd=/tmp/yandex-disk-*
if [ -d $yd ]; then
yandex-disk stop
else
sleep 1
fi && exit

Пояснения.

В процессе работы демона Диска Яндекс в каталоге /temp в наличии имеется каталог с длинным именем yandex-disk-...

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

yandex-disk-24adc70426bc...
yandex-disk-7b990dc3d61d...
yandex-disk-e0b822b1c9f6...





При остановке демона Диска Яндекс такие каталоги автоматически удалялись системой.

Задание проверяет существование в каталоге /temp каталога, в имени которого присутствует yandex-disk- . Если такой каталог существует, будет выдана команда остановки демона Диска Яндекс. Если такой каталог отсутствует, то задание на 1 секунду "заснёт", а потом будет осуществлено завершение его работы.


четверг, 17 мая 2018 г.

Меню Thunar: создать список содержимого каталога

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

Так как для большого числа каталогов каждый раз прописывать в терминале команду ls 'путь к каталогу'>list.txt показалось мне занятием малопроизводительным, то появилась идея попытаться запускать такую команду из контекстного меню Thunar (менеджер файлов оболочки xfce).

Запустите Thunar и перейдите в меню "Правка" – "Особые действия".



Чтобы добавить действие, нажмите на "плюсик", как показано выше.

В следующих двух окнах выбора указываются операция и условия её применимости к папкам или конкретным файлам.



В окне "Основное" в поле "Имя" введите имя, которое будет отображаться в правом контекстном меню Thunar и соответствовать созданию списка содержания каталога. В поле "Команда" введите команду:  ls %F>list.txt

Примечание. В приведенном примере список содержания каталога создаётся в файле list.txt  Вы можете указать своё наименование создаваемого файла. Список создаётся в формате plain text.

В окне "Условия появления" уберите галочку в поле "Текстовые файлы" и поставьте её в поле "Каталоги".

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


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

В частности, при вызове созданного особого действия для каталога Шаблоны моей системы в корне домашнего каталога был создан файл list.txt с содержанием:

Readme.txt
Веб-страница.html
Документ.odt
Презентация.odp
Скрипт оболочки.sh
Таблица.ods

вторник, 15 мая 2018 г.

Улучшить отзывчивость интерфейса при тяжелых дисковых операциях в Linux Mint и Ubuntu

Публикация описывает личный опыт применения изложенных на форуме рекомендаций участника с ником slant под заголовком "Mint 18 c ядром 4.13+ – переходим на bfq (улучшаем отзывчивость интерфейса при тяжелых дисковых операциях)". Теоретическое обоснование заимствовано из указанного выше источника. Некоторые речевые обороты изменены.

Представьте, что у вас две программы хотят одновременно читать или писать на диск. Какой из них дать преимущество? А что будет в это время делать вторая? За эти вопросы в системе отвечает так называемый планировщик дисковых операций (ввода-вывода) – подробности.

В Linux Mint по умолчанию используется планировщик cfq, доступны также deadline и none. В принципе, cfq справляется, но бывают случаи, когда система всё же "встаёт колом" – например при копировании с накопителей "флэш", или по гигабитной сети, особенно если диски hdd и не слишком "шустрые".

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

То есть при интенсивных дисковых операциях "тормоза" в графическом окружении должны уйти в прошлое, что может способствовать повышению скорости запуска программ и снижению нагрузки на жёсткий диск. Основное преимущество использования этого планировщика проявляется в сценарии "параллельный доступ к множеству мелких файлов на hdd". Для SSD, по словам авторов алгоритма, его применение также будет эффективно.

В настройках в Linux Mint и Ubuntu всё связанное с этим планировщиком полностью выключено. А вот пользователи Manjaro наслаждаются его возможностями "из коробки". Как пишет автор, "будем исправлять несправедливость".

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

Внимание. Для осуществления настройки необходимо наличие ядра 4.13 или новее. Для определения действующей версии ядра запустите uname -r

В процессе осуществления настройки потребуется 2 перезагрузки системы.

Примечание. По тексту для редактирования конфигурационных файлов указана команда sudo xed, так как экспериментальная проверка произведена на Linux Mint. В Ubuntu тестового редактора xed не существует и вместо него используется gedit. Поэтому пользователям Ubuntu вместо sudo xed следует вводить sudo gedit. По устоявшейся ещё с ранней Ubuntu привычке в своей системе всегда ввожу sudo gedit, а для сопоставления команде gedit команды xed был использован материал этой публикации.

1. Включить в ядре поддержку bfq, запустив  sudo xed /etc/default/grub  и добавив в строку GRUB_CMDLINE_LINUX_DEFAULT параметр scsi_mod.use_blk_mq=1

Например,
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash scsi_mod.use_blk_mq=1"

2. sudo update-grub && shutdown -r now

3. sudo modprobe bfq && sudo xed /etc/udev/rules.d/60-scheduler.rules

Так как изначально файл 60-scheduler.rules в системе отсутствует, то он будет создан и передан на редактирование в текстовый редактор. В окне редактора вписать:

ACTION=="add|change", KERNEL=="sd*[!0-9]|sr*", ATTR{queue/scheduler}="bfq"

Сохранить изменения.

4. sudo udevadm control --reload && sudo udevadm trigger

5. sudo xed /etc/initramfs-tools/modules

Вписать строку bfq и сохранить.

Содержание файла должно быть:

# List of modules that you want to include in your initramfs.
# They will be loaded at boot time in the order below.
#
# Syntax: module_name [args ...]
#
# You must run update-initramfs(8) to effect this change.
#
# Examples:
#
# raid1
# sd_mod
bfq

6. sudo update-initramfs -u && shutdown -r now

7. После перезагрузки выполнить команду cat /sys/block/sda/queue/scheduler

Должно быть выдано: [bfq] none

Отменить изменения

1) sudo rm /etc/udev/rules.d/60-scheduler.rules

2) Убрать из  /etc/default/grub  параметр scsi_mod.use_blk_mq=1, т.е. вернуть к виду, например, GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

После этого обновить загрузчик sudo update-grub

понедельник, 14 мая 2018 г.

Эмблемы для каталогов Linux. Свой набор 3 – RSS2

Для собственных нужд был создан набор эмблем RSS2 для каталогов. Несмотря на то, что набор эмблем предназначен для окружения xfce, он может быть использован в Cinnamon или MATE.

Состав набора включает 6 значков RSS2.


Для добавления в систему эмблем набора RSS2 можно использовать приёмы, описанные в этих публикациях: вариант 1 или вариант 2.

Скачать набор значков RSS2.