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

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


понедельник, 2 августа 2021 г.

Windows 10 определяет HDD как SSD

Подготовил образ для переустановки системы. Готовил его на компе с SSD.

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

Решение здесь:(ответ от DavidELindsay()

1. Открываем командную строку от имени администратора (*)

2. Выполняем winsat formal.

3. PROFIT!

(*) поскольку винда после 98-ой пигшется индусскими наркоманами, то даже winsat /? невозможно выполнить из обычной командной строки, даже если войти в систему с администраторской учеткой.

понедельник, 28 июня 2021 г.

Zimbra: квоты и размер почтового ящика

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

В GUI пункт с размерами п/я зарыт слишком глубоко, поэтому решил найти способ получить эти сведения в CLI для возможной автоматической обработки.

Были использованы материалы:

  1. https://nwildner.com/posts/2019-09-27-zimbra-cli-tips/
  2. https://webhostinggeeks.com/howto/how-to-show-mailbox-size-on-zimbra-via-command-line/
  3. мануал по awk (оказалось, я забыл бейсик, пришлось лезть в шпаргальник)
  4. собственный пост по близкой тематике

Где хранится индивидуальная переопределенная квота, я не проверял.

Итак: zmprov gqu (в первой ссылке, кстати, эта команда написана неправильно - qgu вместо gqu, get quota usage) выводит списком почтовые ящики на сервере в формате "адрес квота занято", например "gates_wh@contoso.ru 471859200 1546199" - "пользователю В.Г. Гейтс выделено 450М, из которых занято полтора".

То есть, размеры выводятся в байтах, а дальше потребитель информации решает, в каких единицах ее использовать.

Для более-менее удобного анализа родил такую хитровыделанную команду:

zmprov gqu localhost|sort -nr -k2,3|awk {'printf "%.2fK:%.2fK=%2.2f%% %s\n", $3/1024, $2/1024, $3/$2*100, $1'}

  1. берем данные с этого же сервера
  2. сортируем по убыванию сначала квоты, потом - использованного места (2-е и 3-е поля в выводе gqu)
  3. выводим в виде "x.xxK:z.zzK=y.yy% адрес", увеличивая порядок единиц для удобочитаемости - килобайты вместо байтов, например "1509.96K:460800.00K=0.33% gates_wh@contoso.ru", то есть, у тов. Гейтса занято 0.33% от выделенной ему квоты

На этом пока всё

P.S.

Усовершенствованная версия команды для отправки отчетов и т.п.

zmprov gqu localhost|sort -nr -k2|awk {'printf "%.2fK:%.2fK=%2.2f%% %s\n", $3/1024, $2/1024, $3/$2*100, $1'} |grep -v "=-nan%"|sort -rn -t \=  -k2 |head -n 10

отличия: убираем недопустимые значения, например, деление на ноль, потом сортируем по процентажу и выводим только топ-10

сдуру решил, что "-d" у sort задает разделитель полей, и долго не мог понять, на что сортировка ругается... Оказалось, надо -t. И, да, -k позволяет задать только одно поле для сортировки, поэтому в исходной команде результаты сортировки могут быть странные

суббота, 5 июня 2021 г.

Фраза дня 20210605

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

среда, 18 ноября 2020 г.

MySQL: group_concat - ограничение и как его преодолеть

 В небезызвестной OCS-NG Inventory, по крайней мере до версии 2.1.2 включительно, есть таблица AccountInfo, в которой хранятся различные дополнительные параметры оборудования, которые можно менять в разделе Administrative Data

Но есть у нее недостаток: MySQL не поддерживает косвенную адресацию (обратиться в полю по имени, которое находится в переменной или является результатом выражения), а поля в этой таблице имеют вид FIELDS_NNN, где NNN - номер поля, поэтому для обращения, скажем, к полю "Владелец компа" надо делать лишний селект, чтобы узнать, в каком из FIELDS-ов этот владелец хранится. И не просто селект, а еще и при каждом обращении к этому полю, чтобы при изменении его номера не пришлось перелопачивать весь скрипт.

среда, 29 апреля 2020 г.

Word и перенос заголовка таблицы

Есть у меня хитрый документ .docx с длинной таблицей. Для первой строки задано "показывать как заголовок на каждой странице".
Открываю документ в OOo/LOo - всё нормально. Открываю в MSO 2016 - на первой странице заголовок есть, на остальных - нету. Флажок "повторять" на месте, но не повторяется.
В общем, надо снять галку "обтекание таблицы". Почему этого не требуется в свободных офисах - без понятия.

https://forum.dwg.ru/showthread.php?t=127389

понедельник, 16 марта 2020 г.

Bash: разница в днях между двумя датами

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

echo $(( ( $(date +%s -d 4/13/2020 ) - $(date +%s -d 3/23/2020 ) )/86400 ))

Функция вычислений $(( выражение ))
Вывод команды $( команда )
Арифметическое операторы и скобки (-/)
Перевести дату, заданную параметром -d в формат UNIX-date (число секунд с начала эры) +%s
Начальная дата в формате mm/dd/yyyy 4/13/2020
Конечная дата в формате mm/dd/yyyy 3/23/2020
Разницу между датами делим на число секунд в сутках 86400

Есть и другие способы такой арифметики, но именно этот первым пришел в голову. Данная команда выдает результат "21", то есть, между 13 апреля 2020 года и 23 марта 2020 года 21 день

По арифметике с временами у меня есть более ранний пост.

пятница, 14 февраля 2020 г.

Этикетки в OpenOffice - без слияния

Или: учимся работать с косвенной адресацией ячеек в электронных таблицах. Основная цель этого поста - показать возможности функции indirect(), ну а выбранный пример - это последний, где я ее применил

В большинстве офисных пакетов предусмотрена такая штука как "рассылка писем", "стандартные письма", "печать слиянием" и т.п. Имеется в виду, что существует некий табличный список, например:

SysName IT# AssetTag Ordinal
cnt300901 18006 JR0046780 1
cnt300911 18007 JR0046781 2
cnt300921 18008 JR0046782 3
cnt300931 18009 JR0046783 4
cnt300941 18010 JR0046784 5
cnt300951 18011 JR0046785 6
cnt300961 18012 JR0046786 7
cnt300971 18013 JR0046787 8
cnt300981 18014 JR0046788 9
cnt300991 18015 JR0046789 10

Где SysName - сетевое имя компа, IT# - внутренний номер для службы ИТ, AssetTag - инвентарный номер, Ordinal - порядковый номер.
(последнее поле по логике должно быть крайним слева, но я в реальном документе добавил его в последний момент, и чтобы не сломать форматирование, добавил справа. впрочем, на теоретические основы этого поста сей факт не влияет)