Официальная возможность получить лицензионный софт бесплатно.
Giveaway of the Day
Это не реклама!

Щелкните для получения прогноза по Биробиджану


пятница, 15 марта 2024 г.

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

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

Попробуем сочинить команду для получения подобного результата.

sudo smartctl --all /dev/sdX|grep -A10 "ID#"|grep "^ \{0,2\}9"|awk '{print $10}'

  1. smartctl выдает длинную портянку атрибутов и прочих полезностей. Нам нужен атрибут №9: "power on hours" или "power on time" или как-то еще. Название не стандартизировано, а вот номер всегда одинаков.
  2. для этого мы находим заголовок таблицы атрибутов и берем первые 10 строк этой таблицы. 10 - чтобы с запасом. А таблицу ищем, чтобы не взять в работу что-то не то, которое будет выглядеть похоже на искомое.
  3. в этих 10 строках ищем ту, которая начинается с девятки, перед которой могут быть, а могут и не быть несколько пробелов.
  4. awk понимает, что если между осмысленными данными несколько разделителей-пробелов подряд, то их надо считать одним разделителем. В десятом поле строки, полученной в п.п. 1-3 содержится количество отработанных диском часов.

Например:

$ sudo smartctl --all /dev/sdb|grep -A10 "ID#"|grep "^ \{0,2\}9"|awk '{print $10}'

25457

Без awk строка выглядит так:

  9 Power_On_Hours          0x0032   071   071   000    Old_age   Always       -       25457

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

$ echo $(( workedHours * 100 / 24 / 36525 )) $(( (workedHours * 100 / 24 % 36525 ) /100 ))

Если взять workedHours=25457, то на выходе получим

2 328

то есть, диск отработал 2 года и 328 дней.

Для чего лишние умножения и деления на 100? Bash умеет только целочисленную арифметику, а реальная продолжительность года 365.25 суток, как я помню. Именно из-за этой четвертушки каждый четвертый год - високосный, с одним добавочным днем. И чтобы имитировать такую арифметику, мы умножаем делимое и один из делителей на 100. Количество часов в сутках суть константа, ее умножать не надо.

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

Собственно, всё. Наслаждайтесь.

пятница, 27 октября 2023 г.

Монтирование флешек и вообще внешних накопителей из командной строки без sudo или прав root--a

Не всегда есть возможность использовать sudo, когда надо смонтировать флешку. Особенно это заметно, когда работаешь из командной строки и нет графического "монтажника". Но файловые менеджеры, работающие от имени текущего пользователя, как-то же умудряются подключать/отключать накопители и тома, не требуя привилегий.

В решении проблемы поможет демон udisks2. Подробнее здесь.

1. Проверяем, работает ли демон как чёрт?

sudo systemctl status udisks2


2. Находим (если еще не) нужный диск или раздел:

lsblk


Обычно есть смысл ориентироваться на самую бОльшую букву, назначенную ему ядром - вряд ли свежевставленная флешка будет называться /dev/sda. Ну и на размер файловой системы. Допустим, мы увидели, что устройство называется /dev/sdk, и нужный нам раздел - /dev/sdk1

3. Монтируем найденное:

udisksctl mount -b /dev/sdk1
Точка монтирования будет создана в /media/имя_пользователя/название_накопителя, если только обратное не указано в /etc/fstab. Если накопитель прописан в fstab, то он будет подключен, как указано там.

4. Попользовались, теперь демонтируем.

udisksctl unmount -b /dev/sda1


Из реальной жизни. Есть у меня внутренний диск, который по умолчанию не подключен. Это диск с 1 разделом, сегодня он /dev/sdh (уже довольно долго буквы дисков могут меняться от загрузки к загрузке, поэтому в fstab он прописан то ли по метке тома, то ли по UUID, точно не помню, и должен монтироваться на постоянную точку монтирования

$ udisksctl mount -b /dev/sdh1
Mounted /dev/sdh1 at /media/500blue.

А вот вставил в ридер microSD карточку, которая села на /dev/sdg

$ udisksctl mount -b /dev/sdg1
Mounted /dev/sdg1 at /media/sergei/72AD-2013

В fstab ее нет, и метки у этого раздела тоже нет, поэтому он прицепился к моему подкаталогу в /media

Не проверял, правда, как оно будет вести себя если пользователь не в sudoers, но меня устраивает то, что есть сейчас.

LibreOffice не показывает изображения в документах Word

Столкнулся со странностью. Перебирал архивы документов и был сильно удивлен, что вот это чудо 

вдруг перестало показывать внедренные картинки. Например: 


Лечится, оказывается, просто: в меню вид включаем пункт "Изображения и диаграммы". Почему он по дефолту выключен - непонятно


И всё, собственно:



вторник, 4 октября 2022 г.

Рисование текстовых рамок в bash, часть 2

 В августе 2021 я уже писал на эту тему. Но потом мне захотелось прекрасного и недавно я доработал алгоритм, сведя его в отдельную процедуру и дополнив некоторыми возможностями.

Красиво оформлено через pastebin


Вот как выглядит результат работы этого скрипта

Функция border() принимает 2 аргумента. Первый, обязательный, текст для вывода внутри рамки. Второй, не обязательный, выбор типа рамки. Сейчас воспринимаются только два модификатора: g - graphical, и d - double, соответственно обычная и двойная псевдографические рамки.

По сути, модификатор просто определяет набор знаков, используемых для рисования. Всего имеется 8 компонентов рамки: 4 угла и 4 "стенки" - 2 вертикальных (левая/правая) и 2 горизонтальных (верхняя/нижняя). Меняя символы в этих наборах, можно без проблем рисовать рамки из любых символов.

Забавно, что символ "одиночная псевдографическая горизонталь" (переменные BTM и BBM в наборе "g", \Ux2500, если не ошибаюсь) я никак не мог ввести в консоли. Не помогала даже вставка из "таблицы символов". 


Под катом - не раскрашенный текст скрипта на случай, если pastebin перестанет работать.

dmesg и sudo в новых Ubuntu

Был неприятно удивлен, когда в 22.04 обнаружил, что dmesg вдруг стало требовать повышенных привилегий. Учитывая, что эта команда просто показывает содержимое "кольцевого буфера ядра", то мне совершенно непонятны причины такой "секретности".

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

Вот и теперь решение есть и очень простое. Но, скажите мне, как про него догадаться? Я не понимаю.

sudo sysctl -w kernel.dmesg_restrict=0

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

Как отключить анимацию курсора и перерисовки в Office 2016/2013

Многие туповатые советчики предлагают для этого отключить (для win8 и win10) анимацию в самой винде. Но если я хочу отключить анимацию только в офисном продукте, потому как меня дико бесит этот плавный курсор и красивенькие (но совершенно бесполезные) анимации при пересчете таблиц и т.п.

Идея найдена здесь:
https://zooks.ru/disable-office-2013-typing-animation/
(в статье речь про офис-2013, но у меня сработало и для 2016)

Если коротко, создаем раздел
Компьютер\HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Common\Graphics
(по умолчанию его нет)

В нём создаем dword-32 параметр с именем DisableAnimations
Параметру присваиваем значение "1".
Закрываем все офисные продукты и открываем их заново.
PROFIT!!!

(перегружать комп, как предлагают в статье, не обязательно)

Для включения анимации обратно, меняем единицу на ноль или просто удаляем параметр.

среда, 20 октября 2021 г.

Справочная информация: Подключение к Диску Яндекс через webdav в Thunar

Завелся у меня "мегадиск" от мегафона. Ну, как завелся, еще почти год назад. Сегодня пришла смс, что из 100 полученных тогда гигов 75 были заманушными и всё такое. Решил хоть попробовать, что это. Заодно попробовать зайти туда через тунар.
Не сразу сообразил, как правильно подключать webdav, и нашел подсказку здесь.
У меня прекрасно сработало по первому же способу

Справочная информация: Подключение к Диску Яндекс через webdav в Thunar: При работе в Linux Mint xfce возникла необходимость подключаться к Диску Яндекс прямо из файлового менеджера Thunar. Было найдено 2 спосо...