gladilov.org.ru gladilov.org.ua

107 заметок с тегом

сисадминство

Всякие системные и просто нужные компьютерные фичи. Настройка софта, иногда восстановление железа, и прочее, что входит в сферы интересов от эникейшика до «full stack admin’а». В придачу — симулятор системного администратора.



Позднее Ctrl + ↑

Напильник для Эгеи, часть 3

      Небольшой отчёт о проделаной работе с Эгеей.

      Март 2018 года:
Пришла пора  книжного раздела. Добавил ко всем заметкам о прочтённых книгах тэг «Моё чтиво», так как тэг «Книги» использую, в том числе, для статей об известных авторах или их произведениях. Все обложки прочтённых книг перенёс к себе на сервер (раньше тэги IMG смотрели на картинки на разных сайтах) и причесал их к стандартному размеру 105×150 точек. К каждому такому изображению применил класс «bookimg», так описав его в файле user/extras/header-pre.tmpl.php:

Показать

.bookimg {
    width:106px;
    height:150px;
    vertical-align:middle;
    border:1px solid grey;
}

Для заголовочных картинок там же описал классы «main_left_img» и «main_right_img»:

.main_left_img {
    float:left;
    margin-right:10px;
}
.main_right_img {
    float:right;
    margin-left:10px;
}

      Май 2018 года:
Приделал к блогу реКАПЧУ для отсекания сообшений от ботов.

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

(данные графиков зафиксированы на 06.01.2019 г.)

Размер свопа Используемая память
Выполняемые процессы Load average
Размер базы агрегатора

      Январь 2019 года:
Привинтил к Эгее lightbox2 для показа скринов разных ОСей. Для этого в файле user/extras/header-pre.tmpl.php добавил записи:

<link href="/lightbox2/css/lightbox.css" rel="stylesheet" type="text/css">
<script src='/lightbox2/js/lightbox-plus-jquery.min.js'></script>

а в постах пишу такой код:

<font size="2"><a class="lightbox2" data-lightbox="<уникальный ID>" href="/img/osdetect/ОСь.png"><img src="/img/install/os/ось.png" style="vertical-align:middle;" />&nbsp;ОСь<br /><img src="/img/osdetect/preview/ОСь.png" style="vertical-align:middle;" /></a></font>

Уникальный ID нужен для исключения создания галереи из нескольких картнок.

2019   HTML   досуг   маленькие хитрости   сисадминство   софт

Элегантная форк-бомба


ВНИМАНИЕ!
Не запускайте эту команду, чтобы «проверить» её, так как у вашего компьютера скорее всего произойдёт сбой, влекущий за собой принудительную перезагрузку системы.

Текст бомбы:

:(){ :|:& };:

Что она делает:
 :() — объявление функции с именем :
 {:|: &} — в теле функции описан запуск её же и отправка вывода снова в функцию : (в фоне)
 ; — разделитель команд, как и &&.
 : — первый запуск функции :

Источник

35 лет назад создан прототип первого компьютерного вируса

11 ноября 1983 года американский студент из Университета Южной Калифорнии Фред Коэн составил программу, демонстрировавшую возможность заражения компьютера со скоростью размножения от 5 минут до 1 часа. Такую программу стали называть вирусом, определяя его как разновидность компьютерных программ, отличительной особенностью которой является способность к саморепликации (и, возможно, нанесения ущерба путём повреждения или полного уничтожения всех файлов и данных, подконтрольных пользователю, от имени которого была запущена заражённая программа, а также повреждения работоспособности или полного уничтожения операционной системы со всеми файлами в целом).

Показать

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

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

Первый не лабораторный вирус, называющийся «Brain», способный заражать только дискеты, появился в январе 1986 года и имел пакистанское происхождение. А первая антивирусная программа была разработана в 1988 году.

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

2018   в мире   досуг   интересное   интернет   история   сисадминство   софт

RHEL прекращает поддержку KDE

С выходом  Red Hat Enterprise Linux 7.6 сообщается о прекращении поддержки KDE Plasma, которая теперь считается устаревшей. Полная поддержка KDE будет прекращена в одном из следующих релизах RHEL. Поддерживать текущие версии Red Hat обещает как минимум до 2024 года. Фокус компании уже давно сосредоточен на Gnome, в разработке которой участвует немалое количество программистов Red Hat.

Какое-то поветрие: сначала  Федора отвалилась, потом  Qubes, теперь вот RHEL...

Источники:
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html-single/7.6_release_notes/#chap-Red_Hat_Enterprise_Linux-7.6_Release_Notes-Deprecated_Functionality
https://www.theregister.co.uk/2018/11/02/rhel_deprecates_kde/

2018   Linux   в мире   интересное   ОС   сисадминство   события   софт

Добавление swap-файла в системе Debian

В связи с частыми вылетами демона TTRSS из-за недостатка памяти решил откусить 2 гига от корневой ФС для файла подкачки. Не уверен, что поможет, но попробую...

Создал пустой файл /swapfile размером 2 Гб:

dd if=/dev/zero of=/swapfile bs=1M count=2048

Установил ему права:

chmod 600 /swapfile

Отформатировал этот файл как своп:

mkswap /swapfile

Добавил файл подкачки в систему:

swapon /swapfile

В файле /etc/fstab добавил строку:

/swapfile     swap     swap     defaults     0     0

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

Источники:
https://wiki.debian.org/Swap
https://www.tecmint.com/create-a-linux-swap-file/
http://blog.sedicomm.com/2017/07/26/kak-sozdat-linux-swap-fajl/

2018   Debian   Linux   досуг   маленькие хитрости   сисадминство   софт

Опубликованы спецификации IEEE 802.11aq

Организации IEEE и IEEE Standards Association, специализирующиеся на разработке, стандартизации и продвижении передовых технологий, сообщили об одобрении и публикации спецификации IEEE 802.11aq. Эта спецификация — дополнение к стандарту, упрощающая обнаружение сервисов в беспроводных локальных сетях. Она позволяет обнаруживать сервисы, доступные в беспроводных локальных сетях (WLAN). Как утверждается, от внедрения поддержки IEEE 802.11aq выиграют как сетевые операторы, так и конечные пользователи.

Показать

«Подключение к WLAN без возможности легко узнать, поддерживает ли эта сеть конкретную услугу, часто является источником разочарования для конечных пользователей. Дополнение IEEE 802.11aq устраняет эти ситуации, позволяя пользователям быстро определять, какие услуги доступны, до фактического подключения устройств, — так охарактеризовал новую спецификацию Стивен Макканн (Stephen McCann), руководитель группы IEEE 802.11aq. — IEEE 802.11aq также обеспечивает критическое конкурентное преимущество за счет дифференциации услуг в переполненных рыночных средах».

По сути, IEEE 802.11aq определяет параметры для запросов, обрабатываемых беспроводной сетью до подключения устройства. С их помощью пользователя могут быстро и легко обнаружить, какие типы услуг поддерживаются, за счет чего упрощается выбор сети для подключения.

Спецификации IEEE 802.11aq уже доступны для покупки в магазине стандартов IEEE.

Источник

2018   в мире   железо   интересное   роутер   сеть   сисадминство   события

Срыв покровов. Продолжение

Продолжение рассказа об особенностях монтирования файловых систем.

В дополнение темы монтирования двух разных ФС в одну точку монтирования имею заявить следующее:

как явствует из манов ([1], [2]), при монтировании файлов используется механизм монтирования через loop-устройство. То есть, сначала устанавливается привязка петлевого устройства /dev/loopX к монтируемому файлу, затем это устройство монтируется на точку монтирования.

Если петлевое устройство явно не указано (как у меня при проведении эксперимента), тогда mount попытается найти свободный loop-device и использовать его. Поэтому, если бы я при монтировании файлов A.img и B.img в одну точку монтирования выполнил команду losetup и cat /etc/mtab, то увидел бы нечто вроде этого: Показать

root@debian:/home/soul# losetup
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE
/dev/loop0         0      0         1  0 /home/soul/A.img
/dev/loop1         0      0         1  0 /home/soul/B.img
root@debian:/home/soul# cat /etc/mtab 
rootfs / rootfs rw 0 0
. . .
/dev/loop0 /mnt/A ext2 rw,relatime 0 0
/dev/loop1 /mnt/A minix rw,relatime 0 0
root@debian:/home/soul#

Как по мне, cамый оптимальный вариант решения (подсмотрен тут) — это создать линейный RAID из двух петлевых устройств, привязанных к своим файлам, и смонтировать его в нужную точку монтирования (требует установленного пакета mdadm): Показать

root@debian:/home/soul# losetup /dev/loop0 A.img
root@debian:/home/soul# losetup /dev/loop1 B.img
root@debian:/home/soul# mdadm --build /dev/md0 --level=linear --raid-devices=2 /dev/loop0 /dev/loop1
root@debian:/home/soul# mount /dev/md0 /mnt
root@debian:/home/soul#

2018   Linux   досуг   маленькие хитрости   мну   ОС   сисадминство   софт

Срыв покровов

Рассказ об особенностях монтирования файловых систем.

Вчера моя дражайшая половина супруга задала мне интересный вопрос — что будет, если в одну точку монтирования привинтить две разных файловых системы?

Сегодня, найдя свободное время, я попробовал это выяснить опытным путём в  ВиртуалБоксовой машине с установленным  Дебианом, о чём отчитываюсь: Показать

– Создал директории /mnt/A и /mnt/B и файлы A.img и B.img (размером по 10 Мб), отформатировав их в разные файловые системы (ext2 и minix): Показать

soul@debian:~$ sudo -s
root@debian:/home/soul# fallocate -l 10M A.img
root@debian:/home/soul# fallocate -l 10M B.img
root@debian:/home/soul# ls /mnt
root@debian:/home/soul# mkdir /mnt/A
root@debian:/home/soul# mkdir /mnt/B
root@debian:/home/soul# mkfs.ext2 A.img
mke2fs 1.42.12 (29-Aug-2014)
Discarding device blocks: done
Creating filesystem with 10240 1k blocks and 2560 inodes
Filesystem UUID: 866d1e35-dad7-466a-990a-411601395777
Superblock backups stored on blocks:
        8193

Allocating group tables: done
Writing inode tables: done
Writing superblocks and filesystem accounting information: done

root@debian:/home/soul# mkfs.minix B.img
3424 inodes
10240 blocks
Firstdatazone=112 (112)
Zonesize=1024
Maxsize=268966912

root@debian:/home/soul#

– Смонтировал их в разные директории (A.img в /mnt/A, B.img в /mnt/B): Показать

root@debian:/home/soul# mount -o loop A.img /mnt/A
root@debian:/home/soul# ls /mnt/A
lost+found
root@debian:/home/soul# mount -o loop B.img /mnt/B
root@debian:/home/soul# ls /mnt/B
root@debian:/home/soul#

– Отмонтировал B.img от /mnt/B и примонтировал к /mnt/A, создал каталог /mnt/A/test1: Показать

root@debian:/home/soul# umount /mnt/B
root@debian:/home/soul# mount -o loop B.img /mnt/A
root@debian:/home/soul# mkdir /mnt/A/test1
root@debian:/home/soul# ls /mnt/A
test1
root@debian:/home/soul#

– Перемонтировал A.img и B.img и примонтировал их к разным директориям, посмотрел результат создания каталога: Показать

root@debian:/home/soul# umount /mnt/A
root@debian:/home/soul# umount /mnt/A
root@debian:/home/soul# mount -o loop A.img /mnt/A
root@debian:/home/soul# mount -o loop B.img /mnt/B
root@debian:/home/soul# ls /mnt/A
lost+found
root@debian:/home/soul# ls /mnt/B
test1
root@debian:/home/soul# umount /mnt/A
root@debian:/home/soul# umount /mnt/B
root@debian:/home/soul#

– Повторил эксперимент в другой последовательности: Показать

root@debian:/home/soul# mount -o loop B.img /mnt/A
root@debian:/home/soul# mount -o loop A.img /mnt/A
root@debian:/home/soul# ls /mnt/A
lost+found
root@debian:/home/soul# mkdir /mnt/A/test2
root@debian:/home/soul#

– Отмонтировал оба файла, примонтировал их опять к разным директориям и посмотрел результат второго этапа: Показать

root@debian:/home/soul# umount /mnt/A
root@debian:/home/soul# umount /mnt/A
root@debian:/home/soul# mount -o loop A.img /mnt/A
root@debian:/home/soul# mount -o loop B.img /mnt/B
root@debian:/home/soul# ls /mnt/A
lost+found  test2
root@debian:/home/soul# ls /mnt/B
test1
root@debian:/home/soul#

– Отмонтировал всё, удалил ненужные файлы и каталоги: Показать

root@debian:/home/soul# umount /mnt/A
root@debian:/home/soul# umount /mnt/B
root@debian:/home/soul# rm A.img
root@debian:/home/soul# rm B.img
root@debian:/home/soul# rmdir /mnt/A
root@debian:/home/soul# rmdir /mnt/B
root@debian:/home/soul# ^D
exit
soul@debian:~$

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

P. S. Здесь речь идёт о стандартных решениях, всякие там LVM, ZFS, btrfs и unionfs не рассматриваются.

Информация о системе: Показать

soul@debian:~$ uname -a
Linux debian 3.16.0-6-amd64 #1 SMP Debian 3.16.56-1 (2018-04-28) x86_64 GNU/Linux
soul@debian:~$ cat /etc/issue.net
Debian GNU/Linux 8
soul@debian:~$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 8 (jessie)"
NAME="Debian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=debian
HOME_URL="http://www.debian.org/"
SUPPORT_URL="http://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
soul@debian:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 8.10 (jessie)
Release:        8.10
Codename:       jessie
soul@debian:~$

2018   Debian   Linux   досуг   маленькие хитрости   мну   ОС   сисадминство   софт

Релиз эмулятора QEMU 3.0

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

В качестве эмулятора QEMU позволяет запустить программу, собранную для одной аппаратной платформы, на системе с совершенно иной архитектурой, например, выполнить приложение для ARM на x86-совместимом ПК. В режиме виртуализации в QEMU производительность выполнения кода в изолированном окружении близка к нативной системе за счёт прямого выполнения инструкций на CPU и задействования гипервизора Xen или модуля KVM.

Показать

Изначально проект был создан Фабрисом Белларом (Fabrice Bellard) с целью обеспечения возможности запуска собранных для платформы x86 исполняемых файлов Linux на архитектурах, отличных от x86. За годы разработки была добавлена поддержка полной эмуляции для 14 аппаратных архитектур, число эмулируемых аппаратных устройств превысило 400. При подготовке версии 2.12 внесено более 2300 изменений от 169 разработчиков.

Разработчики напоминают, что в будущем возможно будет прекращена поддержка платформ GNU/kFreeBSD, DragonFly BSD, Solaris и Haiku, из-за отсутствия сопровождающих или инфраструктуры для тестирования.

Источник

2018   в мире   интересное   сисадминство   софт

Напильник для Tiny Tiny RSS

 Как я недавно писал тут, после переезда на VDS’ку на сервере из-за недостатка памяти стала отваливаться сессия screen’а, в которой крутится демон опроса и наполнения БД новостей Tiny Tiny RSS. Для контроля того, что screen-сессия и процесс демона опроса и агрегирования новостей запущены, я написал скриптик на похапе, который опрашивает состояние этих процессов и отображает на WEB-странице. Показать

Возможны 22 вариантов:

  1. Скрин запущен, демон запущен: Показать
  1. Скрин запущен, демон выпал: Показать
  1. Скрин отвалился, демон вместе с ним: Показать
  1. Четвёртый вариант я не привожу, так как демона не в скрине я никогда не запускаю.

Однако мне достаточно быстро надоело открывать новую вкладку со страницей статистики каждый раз, когда у меня возникало подозрение о том, что скрин/демон отвалился. Поэтому я интегрировал индикаторы работы прямо на страницу Tiny Tiny RSS.

Ищу две картинки индикаторов  ON и  OFF, создаю файл скрипта опроса (допустим, readerstates.php) в том каталоге, где развёрнут TT RSS, с таким содержимым:

<?php $screen=exec("ps aux | grep -e 'SCREEN -dmS reade[r]'");
$daemon=exec("ps aux | grep -e 'php <путь к скрипту демона>/update_daemon2.ph[p]'");
$scrn_t=$dmn_t='не запущен';
$scrn=$dmn='off';if($screen){$scrn='on';$scrn_t='запущен';}
if($daemon){$dmn='on';$dmn_t='запущен';}?>
<img src='/... путь к картинке .../<?php echo$dmn;?>.png' title='Демон <?php echo$dmn_t;?>' />
<img src='/... путь к картинке .../<?php echo$scrn;?>.png' title='SCREEN <?php echo$scrn_t;?>' />

Затем прописываю require в файле index.php:

<?php
    foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_TOOLBAR_BUTTON) as $p) {
        echo $p->hook_toolbar_button();
    }
    require_once "readerstates.php";
?>

После этого все вышеописанные ситуации выглядят у меня на странице так:

  1. Скрин запущен, демон работает: Показать
  1. Скрин запущен, демон нет: Показать
  1. Скрин отвалился, демон тоже: Показать
2018   HTML   досуг   маленькие хитрости   мну   сисадминство   скрипт   софт
Ранее Ctrl + ↓
Наверх