{
    "version": "https:\/\/jsonfeed.org\/version\/1",
    "title": "SOREX.ORG: заметки с тегом linux",
    "_rss_description": "Exchange, esx, AD, GPO, veeam, adaptec,lsi megaraid",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/sorex.org\/?go=tags\/linux\/",
    "feed_url": "https:\/\/sorex.org\/?go=tags%2Flinux%2Fjson%2F",
    "icon": "https:\/\/sorex.org\/user\/userpic@2x.jpg?1618299116",
    "author": {
        "name": "sorex",
        "url": "https:\/\/sorex.org\/",
        "avatar": "https:\/\/sorex.org\/user\/userpic@2x.jpg?1618299116"
    },
    "items": [
        {
            "id": "71",
            "url": "https:\/\/sorex.org\/?go=all\/ne-rabotaet-dns-v-resolv-conf-v-centos\/",
            "title": "Не работает DNS в resolv.conf в CENTOS",
            "content_html": "<p>Если не добавляется DNS сервер из network scripts то нужно добавить в настройки dhcp службы:<br \/>\nvi \/etc\/dhcp\/dhclient.conf добавить fqdn.fqdn = gethostname();<br \/>\nПосле этого запускаем dhclient -r; dhclient<\/p>\n",
            "date_published": "2025-04-11T05:29:37+00:00",
            "date_modified": "2025-04-11T05:29:35+00:00",
            "_date_published_rfc2822": "Fri, 11 Apr 2025 05:29:37 +0000",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "71",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "66",
            "url": "https:\/\/sorex.org\/?go=all\/lsi-megaraid-uvelichenie-skorosti-diskov-disk-cache-policy\/",
            "title": "LSI Megaraid увеличение скорости дисков Disk Cache Policy",
            "content_html": "<p>Проверяем статус кеша:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">megacli -LDInfo -LAll -a0<\/code><\/pre><p>Получаем:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">Virtual Drive: 1 (Target Id: 1)\r\nName                :\r\nRAID Level          : Primary-1, Secondary-0, RAID Level Qualifier-0\r\nSize                : 2.728 TB\r\nSector Size         : 512\r\nIs VD emulated      : Yes\r\nMirror Data         : 2.728 TB\r\nState               : Degraded\r\nStrip Size          : 256 KB\r\nNumber Of Drives    : 2\r\nSpan Depth          : 1\r\nDefault Cache Policy: WriteThrough, ReadAhead, Direct, No Write Cache if Bad BBU\r\nCurrent Cache Policy: WriteThrough, ReadAhead, Direct, No Write Cache if Bad BBU\r\nDefault Access Policy: Read\/Write\r\nCurrent Access Policy: Read\/Write\r\nDisk Cache Policy   : Disk's Default\r\nEncryption Type     : None\r\nBad Blocks Exist: No\r\nIs VD Cached: No<\/code><\/pre><p>Включаем принудительно кэш на горячую:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">megacli -LDSetProp EnDskCache -L0:0 -aAll\r\n\r\nSet Disk Cache Policy to Enabled on Adapter 0, VD 0 (target id: 0) success\r\nSet Disk Cache Policy to Enabled on Adapter 0, VD 0 (target id: 0) success<\/code><\/pre><p>В итоге получаем:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">Virtual Drive: 1 (Target Id: 1)\r\nName                :\r\nRAID Level          : Primary-1, Secondary-0, RAID Level Qualifier-0\r\nSize                : 2.728 TB\r\nSector Size         : 512\r\nIs VD emulated      : Yes\r\nMirror Data         : 2.728 TB\r\nState               : Degraded\r\nStrip Size          : 256 KB\r\nNumber Of Drives    : 2\r\nSpan Depth          : 1\r\nDefault Cache Policy: WriteThrough, ReadAhead, Direct, No Write Cache if Bad BBU\r\nCurrent Cache Policy: WriteThrough, ReadAhead, Direct, No Write Cache if Bad BBU\r\nDefault Access Policy: Read\/Write\r\nCurrent Access Policy: Read\/Write\r\nDisk Cache Policy   : Enabled\r\nEncryption Type     : None\r\nBad Blocks Exist: No\r\nIs VD Cached: No<\/code><\/pre>",
            "date_published": "2021-09-16T10:42:12+00:00",
            "date_modified": "2021-09-16T10:42:00+00:00",
            "_date_published_rfc2822": "Thu, 16 Sep 2021 10:42:12 +0000",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "66",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "64",
            "url": "https:\/\/sorex.org\/?go=all\/perenos-qcow-diska-iz-libvirt-v-esxi\/",
            "title": "Перенос qcow диска из libvirt в ESXi",
            "content_html": "<p>qemu-img convert -f qcow2 myImage.qcow2 -O vmdk myNewImage.vmdk<br \/>\nпотом переносим на esxi и в консоли хоста делаем:<br \/>\nvmkfstools -i myImage.vmdk outputName.vmdk -d thin<br \/>\nна выходе получаем 2 файла один заголовок диска и второй flat диск<\/p>\n",
            "date_published": "2021-09-06T11:19:24+00:00",
            "date_modified": "2021-09-06T11:19:20+00:00",
            "_date_published_rfc2822": "Mon, 06 Sep 2021 11:19:24 +0000",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "64",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "63",
            "url": "https:\/\/sorex.org\/?go=all\/komandy-dlya-lsi-reyd-kontrollera\/",
            "title": "Команды для LSI рейд контроллера",
            "content_html": "<p>Диск исправен — запуск перестроения массива<br \/>\nЕсли диск исправен, можно попробовать перестроить массив. Для этого находим значения полей Enclosure Device ID и Slot Number у неисправного диска и выполняем для него команду запуска перестроения массива. В примере ниже используются значения 252 и 3:<\/p>\n<\/code><h2>megacli -PdRbld -Start -PhysDrv[252:3] -a0<\/h2>\n<\/code><p>Наблюдать за состоянием перестроения массива можно при помощи команды:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># megacli -PdRbld -ShowProg -PhysDrv [252:3] -a0<\/code><\/pre><p>Диск неисправен — замена диска<br \/>\nЕсли диск неисправен, его нужно заменить. Помечаем его как отключенный:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># megacli -PdOffline -PhysDrv [252:3] -a0<\/code><\/pre><p>Затем — как отсутствующий в массиве:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># megacli -PdMarkMissing -PhysDrv [252:3] -a0<\/code><\/pre><p>И теперь — как подготовленный к удалению из системы:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># megacli -PdPrpRmv -PhysDrv [252:3] -a0<\/code><\/pre><p>Неисправный диск можно подсветить светодиодом:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># megacli -PdLocate -start -PhysDrv [252:3] -a0<\/code><\/pre><p>Если индикация не заработала, можно попробовать починить её при помощи следующей команды:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># megacli -AdpSetProp \\{UseDiskActivityforLocate -1\\} -aALL<\/code><\/pre><p>Заменяем диск (в случае SAS это можно сделать на горячую, если по светодиодным индикаторам видно, какой из дисков неактивен).<\/p>\n<p>Когда новый диск вставлен, убираем подсветку светодиодом:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># megacli -PdLocate -stop -PhysDrv [252:3] -a0<\/code><\/pre><p>После замены диска смотрим, каких дисков не хватает в RAID-массиве:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># megacli -PdGetMissing -a0\r\n                                     \r\n    Adapter 0 - Missing Physical drives\r\n\r\n    No.   Array   Row   Size Expected\r\n    0     1       1     428199 MB\r\n\r\nExit Code: 0x00<\/code><\/pre><p>Вставляем новый диск в пустующее место в массиве:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># megacli -PdReplaceMissing -PhysDrv [252:3] -array1 -row1 -a0<\/code><\/pre><p>Если диск не вставляется и выводится ошибка следующего вида:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">Adapter: 0: Failed to replace Missing PD at Array 1, Row 1.\r\n\r\nFW error description: \r\n The specified device is in a state that doesn't support the requested command.  \r\n\r\nExit Code: 0x32<\/code><\/pre><p>То можно проверить текущее состояние прошивки диска:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># megacli -PdInfo -PhysDrv [252:3] -a0<\/code><\/pre><p>Если в строке Firmware state отображается состояние JBOD, то исправить это состояние можно следующим образом:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># megacli -PdMakeGood -PhysDrv[252:3] -Force -a0<\/code><\/pre><p>Если же в строке Firmware state отображается состояние Unconfigured(good), Spun Up, но в строке Foreign State отображается состояние Foreign, то надо просканировать наличие дисков, переставленных из других RAID-контроллеров и снять у таких дисков отметку о других контроллерах:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># megacli -CfgForeign -Scan -aALL\r\n# megacli -CfgForeign -Сlear -aALL<\/code><\/pre><p>Включаем новый диск в работу массива:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># megacli -PdRbld -Start -PhysDrv [252:3] -a0<\/code><\/pre><p>Посмотреть продвижение процесса перестроения можно так:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\"># megacli -PdRbld -ShowProg -PhysDrv [252:3] -a0<\/code><\/pre>",
            "date_published": "2021-08-30T10:34:32+00:00",
            "date_modified": "2021-08-30T10:34:19+00:00",
            "_date_published_rfc2822": "Mon, 30 Aug 2021 10:34:32 +0000",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "63",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "62",
            "url": "https:\/\/sorex.org\/?go=all\/pereklyuchenie-rezhima-keshirovaniya-kontrolerov-lsi-na-hodu\/",
            "title": "Переключение режима кеширования контролеров lsi на ходу",
            "content_html": "<p>При мертвой батарее<br \/>\nmegacli -LDSetProp CachedBadBBU -L0 -a0<\/p>\n<p>вернуть обратно<br \/>\nmegacli -LDSetProp NoCachedBadBBU -L0 -a0<\/p>\n",
            "date_published": "2021-08-27T16:28:14+00:00",
            "date_modified": "2021-08-27T16:28:08+00:00",
            "_date_published_rfc2822": "Fri, 27 Aug 2021 16:28:14 +0000",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "62",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "57",
            "url": "https:\/\/sorex.org\/?go=all\/mysql-error-cant-create-new-tempfile-pri-vosstanovlenii-tablicy\/",
            "title": "MySQL error «Can’t create new tempfile» при восстановлении таблицы.",
            "content_html": "<p>В логах mysql много ошибок подобного рода.<br \/>\n<i>120920  9:25:28 [ERROR] \/usr\/sbin\/mysqld: Table ’.\/old_sm\/phones’ is marked as crashed and last (automatic?) repair failed<\/i><br \/>\nПоскольку автоматическое исправление не сработало, то будем исправлять вручную.<br \/>\nПеред любым таким действием настоятельно рекомендуется сделать резервное копирование данных.<br \/>\nЗаходим в командную строку mysql.<br \/>\nЗапускаем проверку таблицы.<\/p>\n<pre class=\"\">mysql -u root -p stalker_db<\/pre>\n<p><i>mysql&gt; check table phones;<\/i><br \/>\n<i>+——————————-<s>+<\/s>—-<s>+<\/s>———<s>+<\/s>—————————————————————+<\/i><br \/>\n<i>|           Table                 | Op      | Msg_type | Msg_text                                          |<\/i><br \/>\n<i>+——————————-<s>+<\/s>—-<s>+<\/s>———<s>+<\/s>—————————————————————+<\/i><br \/>\n<i>|             old_sm.phones | check | warning     | Table is marked as crashed and last repair failed |<\/i><br \/>\n<i>|             old_sm.phones | check | error         | Found 6833 keys of 3930951                        |<\/i><br \/>\n<i>|             old_sm.phones | check | error         | Corrupt                                           |<\/i><br \/>\n<i>+——————————-<s>+<\/s>—-<s>+<\/s>———<s>+<\/s>—————————————————————+<\/i><br \/>\n<i>3 rows in set (0.37 sec<\/i>)<\/p>\n<p>Запускаю восстановление таблицы.<\/p>\n<p><i>mysql&gt; repair table phones;<\/i><br \/>\n<i>+——————————-<s>+<\/s>——<s>+<\/s>———<s>+<\/s>————————————————————-+<\/i><br \/>\n<i>|           Table                 | Op        | Msg_type | Msg_text                                                 |<\/i><br \/>\n<i>+——————————-<s>+<\/s>——<s>+<\/s>———<s>+<\/s>————————————————————-+<\/i><br \/>\n<i>|             old_sm.phones | repair    | error        | Can’t create new tempfile: ’.\/old_sm\/phones.TMD’ |<\/i><br \/>\n<i>|             old_sm.phones | repair    | status       | Operation failed                                         |<\/i><br \/>\n<i>+——————————-<s>+<\/s>——<s>+<\/s>———<s>+<\/s>————————————————————-+<\/i><br \/>\n<i>2 rows in set (0.01 sec)<\/i><\/p>\n<p>Т. е. при запущенном mysql-сервере восстановлению не подлежит. Останавливаю mysql<br \/>\n<i>service mysql stop<\/i><br \/>\nЗапускаю восстановление с помощью myisamchk. Данный метод будем работать с таблицами на движке MyISAM. Если у вас таблицы на движке InnoDB может помочь пересоздание таблицы с заливкой старых данных.<br \/>\n<i>root@112-1:\/var\/lib\/mysql\/old_sm# myisamchk -r -f phones.MYI <\/i><br \/>\n<i>— recovering (with sort) MyISAM-table ’phones.MYI’<\/i><br \/>\n<i>Data records: 3930951<\/i><br \/>\n<i>— Fixing index 1<\/i><br \/>\n<i>— Fixing index 2<\/i><br \/>\n<i>— Fixing index 3<\/i><br \/>\n<i>— Fixing index 4<\/i><br \/>\n<i>— Fixing index 5<\/i><\/p>\n<p>Запускаю mysql сервер<br \/>\n<i>service mysql start<\/i><br \/>\nОшибка пропала, что и требовалось.<\/p>\n",
            "date_published": "2021-04-13T10:29:15+00:00",
            "date_modified": "2021-04-13T10:29:13+00:00",
            "_date_published_rfc2822": "Tue, 13 Apr 2021 10:29:15 +0000",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "57",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "53",
            "url": "https:\/\/sorex.org\/?go=all\/montirovanie-arhivov-v-linux-debian-lenny\/",
            "title": "Монтирование архивов в Linux (Debian Lenny)",
            "content_html": "<p>Исходная ситуация: на сетевом диске лежит архив backup.tgz размером &gt;50GB, надо внутри найти некие файлы и скопировать на новый сервер. Распаковать все это не представляется возможным, какие файлы из архива необходимы тоже известно достаточно приблизительно. В таком случае лучше архив смонтировать как виртуальную файловую систему и работать уже с ней. Основная система Debian Lenny 5.0 (x64).<\/p>\n<p>Во-первых, нам понадобится <a title=\"AVFS Overview\" href=\"http:\/\/www.boomerangsworld.de\/cms\/avfs\/\" target=\"_blank\">AVFS<\/a>:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">$ sudo apt-get update\r\n$ sudo apt-get install avfs<\/code><\/pre><p>Во-вторых, просто заходим в нужный архив и работаем с ним как с любой файловой системой в режиме [read only].<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">$ cd \/home\/rat\/.avfs\/mnt\/backup\/server.domain.lv\/backup.tgz#<\/code><\/pre><p>Внутри архива прекрасно работает find, любители могут воспользоваться Midnight Commander.<\/p>\n<p>Вообще, AVFS поддерживает множество типов архивов, подключения по ftp. Есть возможность автоматически запускать AVFS в режиме демона (avfsd) при старте компьютера.<\/p>\n<p>P.S. Если возникает проблема с fuse, например такая:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">fuse: failed to open \/dev\/fuse: Permission denied<\/code><\/pre><p>Проверьте, что ваш пользователь в группе fuse.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">$ groups\r\nrat adm dialout cdrom floppy audio video plugdev<\/code><\/pre><p>Тогда делаем так:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">$ sudo usermod -a -G fuse rat\r\n$ groups\r\nrat adm dialout cdrom floppy audio video fuse plugdev<\/code><\/pre>",
            "date_published": "2021-04-13T10:27:02+00:00",
            "date_modified": "2021-04-13T10:27:00+00:00",
            "_date_published_rfc2822": "Tue, 13 Apr 2021 10:27:02 +0000",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "53",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "52",
            "url": "https:\/\/sorex.org\/?go=all\/mounting-raw-and-qcow2-vm-disk-images\/",
            "title": "Mounting raw and qcow2 VM disk images",
            "content_html": "<pre class=\"language-bash\"><code class=\"bash\"><span class=\"comment\"># Загружаем модуль ядра Network Block Device<\/span>\r\nmodprobe nbd\r\n\r\n<span class=\"comment\"># \"Подключаем\" образ к устройству \/dev\/nbd0.<\/span>\r\nqemu-nbd --connect \/dev\/nbd0 --read-only \/путь\/к\/образу.qcow2\r\n\r\n<span class=\"comment\"># Ищем разделы на устройстве.<\/span>\r\nkpartx -arvs \/dev\/nbd0\r\n\r\n<span class=\"comment\"># Здесь ты можешь делать с разделами \/dev\/mapper\/ndb0p* что угодно: монтировать, форматировать и т.п.<\/span>\r\n\r\n<span class=\"comment\"># Убираем девайсы разделов.<\/span>\r\nkpartx -dvs \/dev\/nbd0\r\n\r\n<span class=\"comment\"># Выключаем qemu-nbd.<\/span>\r\nqemu-nbd --disconnect \/dev\/nbd0<\/code>\n<\/pre>\n<p> <\/p>\n<p>Mounting a partition from raw image is pretty simple:<\/p>\n<pre>losetup \/dev\/loop0 image.img\r\nkpartx -a \/dev\/loop0\r\nmount \/dev\/mapper\/loop0p1 \/mnt\/image<\/pre>\n<p>If kernel parameter (as loop in compiled into Fedora’s kernel) like<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">loop.max_part=63<\/code><\/pre><p>added it is even simplier:<\/p>\n<pre>losetup \/dev\/loop0 image.img\r\nmount \/dev\/loop0p1 \/mnt\/image<\/pre>\n<p>Alternative way is to specify direct offset to partition:<\/p>\n<pre>mount image.img \/mnt\/image -o loop,offset=32256<\/pre>\n<p>To mount qcow2 images there is (at least in F-11 qemu) very useful <b>qemu-nbd<\/b> util. It shares image through kernel <a href=\"http:\/\/en.wikipedia.org\/wiki\/Network_block_device\">network block device<\/a> protocol and this allows to mount it:<\/p>\n<pre>modprobe nbd max_part=63\r\nqemu-nbd -c \/dev\/nbd0 image.img\r\nmount \/dev\/nbd0p1 \/mnt\/image<\/pre>\n<p>If LVM is present on image it could be initialized with:<\/p>\n<pre>vgscan\r\nvgchange -ay\r\nmount \/dev\/VolGroupName\/LogVolName \/mnt\/image<\/pre>\n<p>Finishing is done with (depending on how it was initalized):<\/p>\n<pre class=\"\">umount \/mnt\/image\r\nvgchange -an VolGroupName\r\nkillall qemu-nbd\r\nkpartx -d \/dev\/loop0\r\nlosetup -d \/dev\/loop0<\/pre>\n",
            "date_published": "2021-04-13T10:26:19+00:00",
            "date_modified": "2021-04-13T10:26:14+00:00",
            "_date_published_rfc2822": "Tue, 13 Apr 2021 10:26:19 +0000",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "52",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "51",
            "url": "https:\/\/sorex.org\/?go=all\/montirovanie-fleshki-v-debian-iz-obraza-dd\/",
            "title": "Монтирование флешки в debian из образа dd",
            "content_html": "<p>Как смонтировать образ флешки, снятый командой<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">dd if=\/dev\/sde of=~\/disk.img<\/code><\/pre><p>:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">$ sudo fdisk -C 592 -l -u ~\/disk.img<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">Disk \/home\/rat\/disk.img: 0 MB, 0 bytes\r\n255 heads, 63 sectors\/track, 592 cylinders, total 0 sectors\r\nUnits = sectors of 1 * 512 = 512 bytes\r\nDisk identifier: 0xc6aafc6c\r\nDevice Boot Start End Blocks Id System\r\n\/home\/rat\/disk.img1 44 15679439 7839698 b W95 FAT32<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">$ sudo mount -o loop,offset=22528 -t vfat ~\/disk.img \/mnt\/disk<\/code><\/pre><p>Смещение 22528 байтов вычисляется как 44 сектора * 512 байтов = 22528 байтов.<\/p>\n",
            "date_published": "2021-04-13T10:25:37+00:00",
            "date_modified": "2021-04-13T10:25:35+00:00",
            "_date_published_rfc2822": "Tue, 13 Apr 2021 10:25:37 +0000",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "51",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "49",
            "url": "https:\/\/sorex.org\/?go=all\/l2tp-ipsec-dlya-iphone-ipad\/",
            "title": "L2TP IpSEC для IPHONE IPAD",
            "content_html": "<p>Порты которые необходимо открыть на шлюзе:<\/p>\n<p>L2TP traffic — UDP 1701<br \/>\nInternet Key Exchange (IKE) — UDP 500<br \/>\nIPSec Network Address Translation (NAT-T) — UDP 4500<br \/>\nAllows IPsec Encapsulating Security Payload (ESP) traffic to the VPN server — UDP 50<\/p>\n<p>Установим необходимые приложения:<\/p>\n<pre class=\"lang:default decode:true\">apt-get install openswan xl2tpd ppp<\/pre>\n<p>При установке инсталлятор задаст вопрос о генерации ключей. Откажемся от автоматической генерации ключей (выберем “No” в диалоге).<\/p>\n<p>С помощью любимого текстового редактора (vi или nano) отредактируем файл <strong>\/etc\/ipsec.conf<\/strong>:<\/p>\n<div id=\"crayon-566dd3699695f063365947\" class=\"crayon-syntax crayon-theme-familiar crayon-font-monaco crayon-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\"><div class=\"crayon-plain-wrap\"><pre class=\"lang:default decode:true \">version 2.0\r\n \r\nconfig setup\r\n    nat_traversal=yes\r\n    oe=off\r\n    protostack=netkey\r\n \r\nconn L2TP-PSK\r\n    authby=secret\r\n    pfs=no\r\n    rekey=no\r\n    type=tunnel\r\n    esp=aes128-sha1\r\n    ike=aes128-sha-modp1024\r\n    ikelifetime=8h\r\n    keylife=1h\r\n    left=185.14.XX.XX\r\n    leftnexthop=%defaultroute\r\n    leftprotoport=17\/1701\r\n    right=%any\r\n    rightprotoport=17\/%any\r\n    rightsubnetwithin=0.0.0.0\/0\r\n    auto=add\r\n    dpddelay=30\r\n    dpdtimeout=120\r\n    dpdaction=clear<\/pre>\n<p> <\/p>\n<\/div><\/div><p>Обратите внимание на параметр <strong>left=<\/strong>, в нем нужно указать IP-адрес VDS.<\/p>\n<p>Следующим шагом — добавим ключ шифрования. Для этого в укажем в файле <strong>\/etc\/ipsec.secrets<\/strong> желаемый ключ (смените его значение на какое-то более секретное):<\/p>\n<div id=\"crayon-566dd36996965388025306\" class=\"crayon-syntax crayon-theme-familiar crayon-font-monaco crayon-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\"><div class=\"crayon-plain-wrap\"><pre class=\"lang:default decode:true \">%any %any: PSK «TestSecret»<\/pre>\n<p> <\/p>\n<\/div><\/div><p>Перейдем к настройке L2TP. Откроем в редакторе файл <strong>\/etc\/xl2tpd\/xl2tpd.conf<\/strong> и приведем его содержимое к следующему виду:<\/p>\n<div id=\"crayon-566dd3699696a081778318\" class=\"crayon-syntax crayon-theme-familiar crayon-font-monaco crayon-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\"><div class=\"crayon-plain-wrap\"><pre class=\"lang:default decode:true \">[global]\r\nipsec saref = yes\r\n[lns default]\r\nip range = 192.168.1.231-192.168.1.239\r\nlocal ip = 192.168.1.230\r\nrefuse chap = yes\r\nrefuse pap = yes\r\nrequire authentication = yes\r\nppp debug = no\r\npppoptfile = \/etc\/ppp\/options.xl2tpd\r\nlength bit = yes<\/pre>\n<p> <\/p>\n<\/div><\/div><p>Теперь займемся настройкой PPP. Наша следующая цель — файл конфигурации <strong>\/etc\/ppp\/options.xl2tpd<\/strong>:<\/p>\n<div id=\"crayon-566dd3699696f835786555\" class=\"crayon-syntax crayon-theme-familiar crayon-font-monaco crayon-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\"><div class=\"crayon-plain-wrap\"><pre class=\"lang:default decode:true \">require-mschap-v2\r\nms-dns 8.8.8.8\r\nasyncmap 0\r\nauth\r\ncrtscts\r\nlock\r\nhide-password\r\nmodem\r\ndebug\r\nname l2tpd\r\nproxyarp\r\nlcp-echo-interval 30\r\nlcp-echo-failure 4<\/pre>\n<p> <\/p>\n<\/div><\/div><p>Наше соединение использует авторизацию по паролю, поэтому укажем его в соответствующем файле —<strong>\/etc\/ppp\/chap-secrets<\/strong>:<\/p>\n<div id=\"crayon-566dd36996973120052196\" class=\"crayon-syntax crayon-theme-familiar crayon-font-monaco crayon-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\"><div class=\"crayon-plain-wrap\"><pre class=\"lang:default decode:true \">* * TestPassword *<\/pre>\n<p> <\/p>\n<\/div><\/div><p>С настройками VPN мы закончили, но нам нужно включить NAT (трансляцию адресов) в сетевых настройках операционной системы. Откроем файл <strong>\/etc\/rc.local<\/strong> и в его самом начале укажем следующие команды:<\/p>\n<div id=\"crayon-566dd36996978984485853\" class=\"crayon-syntax crayon-theme-familiar crayon-font-monaco crayon-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\"><div class=\"crayon-plain-wrap\"><pre class=\"lang:default decode:true \">echo 1 &gt; \/proc\/sys\/net\/ipv4\/ip_forward\r\niptables -t nat -A POSTROUTING -s 192.168.1.0\/24 -o eth0 -j MASQUERADE<\/pre>\n<p> <\/p>\n<\/div><\/div><p>На этом настройка нашего VPN-сервера окончена. Перезагрузим VDS командой <strong>reboot<\/strong> и через минуту можно начинать пользоваться нашим шифрованным каналом доступа в Интернет. А пока давайте произведем настройку нашего iPhone. Перейдем в “Настройки” — “VPN”, затем выберем “Добавить конфигурацию VPN…”. Заполним поля:<\/p>\n<p><img class=\"alignright wp-image-1209 size-medium\" src=\"https:\/\/sorex.org\/wp-content\/uploads\/2015\/12\/iphone-vpn-ssd-vds-200x300-2.jpg\" alt=\"Настройки L2TP\/IPSec VPN в iPhone\" width=\"200\" height=\"300\"><\/p>\n<ul>\r\n \t<li>Тип VPN — L2TP<\/li>\r\n \t<li>Описание — выберите любое удобное название, например My VPN или ITLDC VPN<\/li>\r\n \t<li>Сервер — указываем IP-адрес нашей VDS<\/li>\r\n \t<li>Учетная запись — любое имя<\/li>\r\n \t<li>RSA SecurID — выключен<\/li>\r\n \t<li>Пароль — выбранный пароль (в нашем примере — TestPassword)<\/li>\r\n \t<li>Общий ключ — ключ шифрования (TestSecret)<\/li>\r\n<\/ul>\n<p>На этом настройка клиентской части окончена, выбираем “Сохранить”. Чтобы подключиться к VPN, необходимо в “Настройках” нашего iPhone или iPad включить слайдером соответствующий режим. Подключение производится достаточно быстро и через несколько секунд можно пользоваться всеми благами Интернет — без каких либо ограничений.<\/p>\n",
            "date_published": "2021-04-13T10:20:40+00:00",
            "date_modified": "2021-04-13T10:20:33+00:00",
            "_date_published_rfc2822": "Tue, 13 Apr 2021 10:20:40 +0000",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "49",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "46",
            "url": "https:\/\/sorex.org\/?go=all\/proxmox-nastroyka-seti-trunk-i-management-vlan\/",
            "title": "Proxmox настройка сети trunk и management vlan",
            "content_html": "<p>Конфиг на cisco для порта сервера<\/p>\n<p>interface GigabitEthernet1\/0\/38<br \/>\nswitchport access vlan 50<br \/>\nswitchport trunk allowed vlan 1,50,124<br \/>\nswitchport mode trunk<br \/>\nswitchport nonegotiate<br \/>\nswitchport port-security maximum 3<br \/>\nload-interval 60<br \/>\nno cdp enable<br \/>\nno cdp tlv server-location<br \/>\nno cdp tlv app<\/p>\n<p>Конфиг сети на proxmox<br \/>\nauto lo<br \/>\niface lo inet loopback<\/p>\n<p>iface eth0 inet manual<\/p>\n<p>iface eth1 inet manual<\/p>\n<p>iface eth2 inet manual<\/p>\n<p>iface eth3 inet manual<\/p>\n<p>auto bond0<br \/>\niface bond0 inet manual<br \/>\nslaves eth0 eth1 eth2 eth3<br \/>\nbond_miimon 100<br \/>\nbond_mode active-backup<\/p>\n<p>auto vlan50<br \/>\niface vlan50 inet manual<br \/>\nvlan_raw_device bond0<\/p>\n<p>auto vlan124<br \/>\niface vlan124 inet manual<br \/>\nvlan_raw_device bond0<\/p>\n<p>auto vmbr0<br \/>\niface vmbr0 inet static<br \/>\naddress 10.101.50.10<br \/>\nnetmask 255.255.255.0<br \/>\ngateway 10.101.50.1<br \/>\nbridge_ports vlan50<br \/>\nbridge_stp off<br \/>\nbridge_fd 0<\/p>\n<p>auto vmbr50<br \/>\niface vmbr50 inet static<br \/>\naddress 0.0.0.0<br \/>\nnetmask 255.255.255.255<br \/>\nbridge_ports vlan50<br \/>\nbridge_stp off<br \/>\nbridge_fd 0<\/p>\n<p>auto vmbr124<br \/>\niface vmbr124 inet static<br \/>\naddress 0.0.0.0<br \/>\nnetmask 255.255.255.255<br \/>\nbridge_ports vlan124<br \/>\nbridge_stp off<br \/>\nbridge_fd 0<\/p>\n",
            "date_published": "2021-04-13T10:17:44+00:00",
            "date_modified": "2021-04-13T10:17:38+00:00",
            "_date_published_rfc2822": "Tue, 13 Apr 2021 10:17:44 +0000",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "46",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "41",
            "url": "https:\/\/sorex.org\/?go=all\/lets-encrypt-zaschischaem-korporativny-exchange-2016-trehmesyach\/",
            "title": "Let’s Encrypt защищаем корпоративный Exchange 2016 трехмесячными сертификатами",
            "content_html": "<p>Вот такой конфиг полностью работает с 2016 Exchange причем позволяет переключить текущую конфигурацию незаметно для директорских Iphone и Ipad без запросов на смену сертификата:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">server {\r\nlisten 80;\r\nserver_name mail.company.com autodiscover.company.com;\r\nroot \/var\/www\/html;\r\nlocation ~ \/.well-known { allow all; }\r\nreturn 301 https:\/\/$host$request_uri;\r\n}\r\n\r\nserver {\r\ntcp_nodelay on;\r\n#keepalive_timeout 3h;\r\n#proxy_read_timeout 3h;\r\nlisten 443;\r\n#listen [::]:443 ipv6only=on;\r\nssl on;\r\nssl_certificate \/etc\/letsencrypt\/live\/mail.company.com\/fullchain.pem;\r\nssl_certificate_key \/etc\/letsencrypt\/live\/mail.company.com\/privkey.pem;\r\n\r\nssl_session_timeout 5m;\r\nserver_name mail.company.com;\r\n\r\nlocation \/ {\r\nreturn 301 https:\/\/mail.company.com\/owa;\r\n}\r\n\r\nproxy_http_version 1.1;\r\nproxy_read_timeout 360;\r\nproxy_pass_header Date;\r\nproxy_pass_header Server;\r\nproxy_pass_header Authorization;\r\nproxy_set_header Host $host;\r\nproxy_set_header X-Real-IP $remote_addr;\r\nproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\r\nproxy_pass_request_headers on;\r\n#more_set_input_headers 'Authorization: $http_authorization';\r\nproxy_set_header Accept-Encoding &quot;&quot;;\r\n#more_set_headers -s 401 'WWW-Authenticate: Basic realm=&quot;http:\/\/10.0.0.2&quot;';\r\n# proxy_request_buffering off;\r\nproxy_buffering off;\r\nproxy_set_header Connection &quot;Keep-Alive&quot;;\r\n\r\nlocation ~ \/.well-known { allow all; }\r\nlocation ~* ^\/owa { proxy_pass https:\/\/10.0.0.2; }\r\nlocation ~* ^\/Microsoft-Server-ActiveSync { proxy_pass https:\/\/10.0.0.2; }\r\nlocation ~* ^\/ecp { proxy_pass https:\/\/10.0.0.2; }\r\nlocation ~* ^\/rpc { proxy_pass https:\/\/10.0.0.2; }\r\n#location ~* ^\/mailarchiver { proxy_pass https:\/\/mailarchiver.local; }\r\n\r\nerror_log \/var\/log\/nginx\/owa-ssl-company-error.log;\r\naccess_log \/var\/log\/nginx\/owa-ssl-company-access.log;\r\n}<\/code><\/pre><p> <\/p>\n",
            "date_published": "2021-04-13T10:10:50+00:00",
            "date_modified": "2021-04-13T10:10:46+00:00",
            "_date_published_rfc2822": "Tue, 13 Apr 2021 10:10:50 +0000",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "41",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "40",
            "url": "https:\/\/sorex.org\/?go=all\/rekursivnoe-izmenenie-daty-modifikacii-faylov-i-papok-v-linux\/",
            "title": "Рекурсивное изменение даты модификации файлов и папок в linux",
            "content_html": "<p>После анализа взлома сайта потребовалось выставить для всех файлов и папок определенную дату и время, выполняем:<\/p>\n<pre class=\"lang:default decode:true\">cd \/var\/www\/\r\nfind .\/ -type f -exec touch -t 201611211300 {} + \r\nfind .\/ -type d -exec touch -t 201611211300 {} +<\/pre>\n<p>Получаем дату модификации 2016г. 21 ноября 13-00<\/p>\n",
            "date_published": "2021-04-13T10:09:09+00:00",
            "date_modified": "2021-04-13T10:09:05+00:00",
            "_date_published_rfc2822": "Tue, 13 Apr 2021 10:09:09 +0000",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "40",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "37",
            "url": "https:\/\/sorex.org\/?go=all\/zametki-po-okonnomu-menedzheru-tmux\/",
            "title": "Заметки по оконному менеджеру tmux",
            "content_html": "<pre class=\"e2-text-code\"><code class=\"\">tmux<\/code><\/pre><p>— это менеджер терминалов, к которому удобно подключаться и отключаться, не теряя при этом процессы и историю. Как<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">screen<\/code><\/pre><p>, только лучше (в первую очередь потому, что использует модель клиент—сервер).<\/p>\n<p><img src=\"https:\/\/sorex.org\/wp-content\/uploads\/2017\/02\/7b49e404f2c1a98a7d8978b7fca8db34.png\" alt=\"image\"><\/p>\n<p>Очень хороший способ запустить tmux:<br \/>\n<b><\/p>\n<pre class=\"e2-text-code\"><code class=\"\">tmux attach || tmux new<\/code><\/pre><p><\/b> — делая так, вы сперва пытаетесь подключиться к уже существующему серверу tmux, если он существует; если такого ещё нет — создаёте новый.<\/p>\n<p>После этого вы попадаете в полноценную консоль.<br \/>\n<b>Ctrl+b d<\/b> — отключиться. (Точно так же вы отключитесь, если прервётся соединение. Как подключиться обратно и продолжить работу — см. выше.)<\/p>\n<p>В одной сессии может быть сколько угодно окошек:<br \/>\n<b>Ctrl+b c<\/b> — создать окошко;<br \/>\n<b>Ctrl+b 0...9<\/b> — перейти в такое-то окошко;<br \/>\nCtrl+b p — перейти в предыдущее окошко;<br \/>\nCtrl+b n — перейти в следующее окошко;<br \/>\nCtrl+b l — перейти в предыдущее активное окошко (из которого вы переключились в текущее);<br \/>\nCtrl+b &amp; — закрыть окошко (а можно просто набрать <b><\/p>\n<pre class=\"e2-text-code\"><code class=\"\">exit<\/code><\/pre><p><\/b> в терминале).<\/p>\n<p>В одном окошке может быть много панелей:<br \/>\n<b>Ctrl+b %<\/b> — разделить текущую панель на две, по вертикали;<br \/>\n<b>Ctrl+b «<\/b> — разделить текущую панель на две, по горизонтали (это кавычка, которая около Enter, а не Shift+2);<br \/>\n<b>Ctrl+b<\/b> →←↑↓ — переходить между панелями;<br \/>\nCtrl+b x — закрыть панель (а можно просто набрать <b><\/p>\n<pre class=\"e2-text-code\"><code class=\"\">exit<\/code><\/pre><p><\/b> в терминале).<\/p>\n<p>Недостаток — непривычным становится скроллинг:<br \/>\n<b>Ctrl+b PgUp<\/b> — вход в «режим копирования», после чего:<br \/>\nPgUp, PgDown — скроллинг;<br \/>\nq — выход из «режима копирования».<\/p>\n",
            "date_published": "2021-04-13T10:04:55+00:00",
            "date_modified": "2021-04-13T10:04:52+00:00",
            "_date_published_rfc2822": "Tue, 13 Apr 2021 10:04:55 +0000",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "37",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "28",
            "url": "https:\/\/sorex.org\/?go=all\/tempcontrol-dobavlenie-svoih-datchikov-ds18b20-besplatno-bez-reg\/",
            "title": "Tempcontrol добавление своих датчиков DS18B20 бесплатно без регистрации и смс",
            "content_html": "<p>Сайт tempcontrol.ru не пашет 2 месяц, всем насрать даже тех поддержка номер которой был вытащен из гугла сказала пишите на support@visteh.ru там этим генеральный директор занимается может быть он вам ответит.<\/p>\n<p><img class=\"size-full wp-image-718 aligncenter\" src=\"https:\/\/sorex.org\/wp-content\/uploads\/2017\/06\/Screenshot_22.png\" alt=\"\" width=\"682\" height=\"359\"><\/p>\n<p>я охерел от такого при цене этой дерьмо коробки в 15000р должна быть и поддержка нормальная а не эта шляпа. Вообщем всем кто потерял датчики или хочет добавить новые описываю способ бесплатного добавления чтоб не платить хитрожопым из tempcontrol<\/p>\n<p>Вот такой процессор там<\/p>\n<p>root [ ~ ]# cat \/proc\/cpuinfo<br \/>\nProcessor : ARM926EJ-S rev 4 (v5l)<br \/>\nBogoMIPS : 133.01<br \/>\nFeatures : swp half thumb fastmult vfp edsp java<br \/>\nCPU implementer : 0x41<br \/>\nCPU architecture: 5TEJ<br \/>\nCPU variant : 0x0<br \/>\nCPU part : 0x926<br \/>\nCPU revision : 4<\/p>\n<p>Hardware : tc3250 board with the LPC3250 Microcontroller<br \/>\nRevision : 0000<br \/>\nSerial : 0000000000000000<\/p>\n<p>Вот лог прогрузки dmesg<\/p>\n<pre class=\"lang:default decode:true \">root [ ~ ]# dmesg\r\nLinux version 2.6.39.2-g7fda40b (yakor@amd64) (gcc version 4.6.3 (Gentoo 4.6.3 p1.3, pie-0.5.1) ) #32 PREEMPT Wed Jun 20 14:11:15 MSK 2012\r\nCPU: ARM926EJ-S [41069264] revision 4 (ARMv5TEJ), cr=00053177\r\nCPU: VIVT data cache, VIVT instruction cache\r\nMachine: tc3250 board with the LPC3250 Microcontroller\r\nMemory policy: ECC disabled, Data cache writeback\r\nOn node 0 totalpages: 16384\r\nfree_area_init_node: node 0, pgdat c0294da4, node_mem_map c02a4000\r\n  Normal zone: 128 pages used for memmap\r\n  Normal zone: 0 pages reserved\r\n  Normal zone: 16256 pages, LIFO batch:3\r\npcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768\r\npcpu-alloc: [0] 0\r\nBuilt 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256\r\nKernel command line: console=ttyS0,115200 ubi.mtd=3 ubi.mtd=5 ubi.mtd=6 root=ubi1:rootfs rootfstype=ubifs ethaddr=02:74:66:fa:99:40\r\nPID hash table entries: 256 (order: -2, 1024 bytes)\r\nDentry cache hash table entries: 8192 (order: 3, 32768 bytes)\r\nInode-cache hash table entries: 4096 (order: 2, 16384 bytes)\r\nMemory: 64MB = 64MB total\r\nMemory: 62216k\/62216k available, 3320k reserved, 0K highmem\r\nVirtual kernel memory layout:\r\n    vector  : 0xffff0000 — 0xffff1000   (   4 kB)\r\n    fixmap  : 0xfff00000 — 0xfffe0000   ( 896 kB)\r\n    DMA     : 0xffc00000 — 0xffe00000   (   2 MB)\r\n    vmalloc : 0xc4800000 — 0xf0000000   ( 696 MB)\r\n    lowmem  : 0xc0000000 — 0xc4000000   (  64 MB)\r\n    modules : 0xbf000000 — 0xc0000000   (  16 MB)\r\n      .init : 0xc0008000 — 0xc0023000   ( 108 kB)\r\n      .text : 0xc0023000 — 0xc027c000   (2404 kB)\r\n      .data : 0xc027c000 — 0xc0295440   ( 102 kB)\r\nPreemptable hierarchical RCU implementation.\r\n        RCU-based detection of stalled CPUs is disabled.\r\n        Verbose stalled-CPUs detection is disabled.\r\nNR_IRQS:96\r\nConsole: colour dummy device 80x30\r\nCalibrating delay loop... 133.01 BogoMIPS (lpj=665088)\r\npid_max: default: 32768 minimum: 301\r\nMount-cache hash table entries: 512\r\nCPU: Testing write buffer coherency: ok\r\nNET: Registered protocol family 16\r\nLPC32XX unique ID: 0005b6dd75701b6e591c8cb710831800\r\nbio: create slab &lt;bio-0&gt; at 0\r\nSwitching to clocksource lpc32xx_clksrc\r\nSwitched to NOHz mode on CPU #0\r\nNET: Registered protocol family 2\r\nIP route cache hash table entries: 1024 (order: 0, 4096 bytes)\r\nTCP established hash table entries: 2048 (order: 2, 16384 bytes)\r\nTCP bind hash table entries: 2048 (order: 1, 8192 bytes)\r\nTCP: Hash tables configured (established 2048 bind 2048)\r\nTCP reno registered\r\nUDP hash table entries: 256 (order: 0, 4096 bytes)\r\nUDP-Lite hash table entries: 256 (order: 0, 4096 bytes)\r\nNET: Registered protocol family 1\r\nNetWinder Floating Point Emulator V0.97 (double precision)\r\nmsgmni has been set to 121\r\nio scheduler noop registered (default)\r\nSerial: 8250\/16550 driver, 4 ports, IRQ sharing disabled\r\nserial8250.0: ttyS0 at MMIO 0x40090000 (irq = 9) is a 16550A\r\nconsole [ttyS0] enabled\r\nserial8250.0: ttyS1 at MMIO 0x40080000 (irq = 7) is a U6_16550A\r\nserial8250.0: ttyS2 at MMIO 0x40088000 (irq = 8) is a 16550A\r\nserial8250.0: ttyS3 at MMIO 0x40098000 (irq = 10) is a 16550A\r\nlpc32xx_hsuart.0: ttyTX0 at MMIO 0x40014000 (irq = 26) is a lpc32xx_hsuart\r\nlpc32xx_hsuart.0: ttyTX1 at MMIO 0x4001c000 (irq = 24) is a lpc32xx_hsuart\r\nbrd: module loaded\r\nNAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bit)\r\nBad block table found at page 131008, version 0x01\r\nBad block table found at page 130944, version 0x01\r\nnand_read_bbt: Bad block at 0x000000000000\r\nnand_read_bbt: Bad block at 0x000006520000\r\nnand_read_bbt: Bad block at 0x00000a260000\r\nnand_read_bbt: Bad block at 0x00000ea80000\r\nnand_read_bbt: Bad block at 0x00000f8c0000\r\nCreating 7 MTD partitions on «lpc32xx-nand»:\r\n0x000000000000-0x000000020000 : «boot»\r\n0x000000020000-0x000000180000 : «uboot»\r\n0x000000180000-0x000000580000 : «safe-kernel»\r\n0x000000580000-0x000003780000 : «safe-rootfs»\r\n0x000003780000-0x000003b80000 : «kernel»\r\n0x000003b80000-0x000006d80000 : «rootfs»\r\n0x000006d80000-0x000010000000 : «work»\r\nUBI: attaching mtd3 to ubi0\r\nUBI: physical eraseblock size:   131072 bytes (128 KiB)\r\nUBI: logical eraseblock size:    129024 bytes\r\nUBI: smallest flash I\/O unit:    2048\r\nUBI: sub-page size:              512\r\nUBI: VID header offset:          512 (aligned 512)\r\nUBI: data offset:                2048\r\nUBI: max. sequence number:       2\r\nUBI: attached mtd3 to ubi0\r\nUBI: MTD device name:            «safe-rootfs»\r\nUBI: MTD device size:            50 MiB\r\nUBI: number of good PEBs:        400\r\nUBI: number of bad PEBs:         0\r\nUBI: number of corrupted PEBs:   0\r\nUBI: max. allowed volumes:       128\r\nUBI: wear-leveling threshold:    4096\r\nUBI: number of internal volumes: 1\r\nUBI: number of user volumes:     1\r\nUBI: available PEBs:             0\r\nUBI: total number of reserved PEBs: 400\r\nUBI: number of PEBs reserved for bad PEB handling: 4\r\nUBI: max\/mean erase counter: 1\/0\r\nUBI: image sequence number:  1424920104\r\nUBI: background thread «ubi_bgt0d» started, PID 270\r\nUBI: attaching mtd5 to ubi1\r\nUBI: physical eraseblock size:   131072 bytes (128 KiB)\r\nUBI: logical eraseblock size:    129024 bytes\r\nUBI: smallest flash I\/O unit:    2048\r\nUBI: sub-page size:              512\r\nUBI: VID header offset:          512 (aligned 512)\r\nUBI: data offset:                2048\r\nUBI: max. sequence number:       269\r\nUBI: attached mtd5 to ubi1\r\nUBI: MTD device name:            «rootfs»\r\nUBI: MTD device size:            50 MiB\r\nUBI: number of good PEBs:        399\r\nUBI: number of bad PEBs:         1\r\nUBI: number of corrupted PEBs:   0\r\nUBI: max. allowed volumes:       128\r\nUBI: wear-leveling threshold:    4096\r\nUBI: number of internal volumes: 1\r\nUBI: number of user volumes:     1\r\nUBI: available PEBs:             0\r\nUBI: total number of reserved PEBs: 399\r\nUBI: number of PEBs reserved for bad PEB handling: 3\r\nUBI: max\/mean erase counter: 3\/0\r\nUBI: image sequence number:  438166388\r\nUBI: background thread «ubi_bgt1d» started, PID 273\r\nUBI: attaching mtd6 to ubi2\r\nUBI: physical eraseblock size:   131072 bytes (128 KiB)\r\nUBI: logical eraseblock size:    129024 bytes\r\nUBI: smallest flash I\/O unit:    2048\r\nUBI: sub-page size:              512\r\nUBI: VID header offset:          512 (aligned 512)\r\nUBI: data offset:                2048\r\nUBI: max. sequence number:       88\r\nUBI: attached mtd6 to ubi2\r\nUBI: MTD device name:            «work»\r\nUBI: MTD device size:            146 MiB\r\nUBI: number of good PEBs:        1165\r\nUBI: number of bad PEBs:         7\r\nUBI: number of corrupted PEBs:   0\r\nUBI: max. allowed volumes:       128\r\nUBI: wear-leveling threshold:    4096\r\nUBI: number of internal volumes: 1\r\nUBI: number of user volumes:     1\r\nUBI: available PEBs:             0\r\nUBI: total number of reserved PEBs: 1165\r\nUBI: number of PEBs reserved for bad PEB handling: 11\r\nUBI: max\/mean erase counter: 2\/1\r\nUBI: image sequence number:  1323325530\r\nUBI: background thread «ubi_bgt2d» started, PID 276\r\nlpc_mii_bus: probed\r\neth0: using RMII interface\r\neth0: LPC mac at 0x31060000 irq 29\r\neth0: attached PHY driver [SMSC LAN8710\/LAN8720] (mii_bus:phy_addr=0:00, irq=-1)\r\nrtc-lpc32xx rtc-lpc32xx: rtc core: registered rtc-lpc32xx as rtc0\r\nPNX4008-WDT: PNX4008 Watchdog Timer: heartbeat 19 sec\r\ncpuidle: using governor ladder\r\ncpuidle: using governor menu\r\nRegistered led device: 1-wire_port2\r\nRegistered led device: 1-wire_port1\r\nRegistered led device: 1-wire_port4\r\nRegistered led device: 1-wire_port3\r\nRegistered led device: power\r\nRegistered led device: nand-io\r\nTCP cubic registered\r\nNET: Registered protocol family 17\r\nVFP support v0.3: implementor 41 architecture 1 part 10 variant 9 rev 1\r\nrtc-lpc32xx rtc-lpc32xx: setting system clock to 1970-01-01 00:00:08 UTC (8)\r\nUBIFS: recovery needed\r\nUBIFS: recovery completed\r\nUBIFS: mounted UBI device 1, volume 0, name «rootfs»\r\nUBIFS: file system size:   49029120 bytes (47880 KiB, 46 MiB, 380 LEBs)\r\nUBIFS: journal size:       6580224 bytes (6426 KiB, 6 MiB, 51 LEBs)\r\nUBIFS: media format:       w4\/r0 (latest is w4\/r0)\r\nUBIFS: default compressor: lzo\r\nUBIFS: reserved for root:  0 bytes (0 KiB)\r\nVFS: Mounted root (ubifs filesystem) on device 0:10.\r\nFreeing init memory: 108K\r\nUBIFS: recovery needed\r\nUBIFS: recovery completed\r\nUBIFS: mounted UBI device 2, volume 0, name «work»\r\nUBIFS: file system size:   140507136 bytes (137214 KiB, 133 MiB, 1089 LEBs)\r\nUBIFS: journal size:       9033728 bytes (8822 KiB, 8 MiB, 71 LEBs)\r\nUBIFS: media format:       w4\/r0 (latest is w4\/r0)\r\nUBIFS: default compressor: lzo\r\nUBIFS: reserved for root:  0 bytes (0 KiB)\r\n<\/pre>\n<p> <\/p>\n<p>Берете список датчиков из панели или из консоли<\/p>\n<p><img class=\"size-full wp-image-719 aligncenter\" src=\"https:\/\/sorex.org\/wp-content\/uploads\/2017\/06\/Screenshot_92.png\" alt=\"\" width=\"1185\" height=\"613\"><\/p>\n<p>далее берем ардуино и пишем код который будет брать ваш новый датчик ds18b20 и изменять его id на тот что есть в вашей коробке и отправлять его коробке<\/p>\n<pre class=\"lang:default decode:true \">\/*\r\n *    Example-Code that emulates a DS18B20\r\n *\r\n *    Tested with:\r\n *    — <a href=\"https:\/\/github.com\/PaulStoffregen\/OneWire\">https:\/\/github.com\/PaulStoffregen\/OneWire<\/a> —&gt; DS18x20-Example, atmega328@16MHz as Slave\r\n *    — DS9490R-Master, atmega328@16MHz and teensy3.2@96MHz as Slave\r\n *\/\r\n\r\n#include «OneWireHub.h»\r\n#include «DS18B20.h»  \/\/ Digital Thermometer, 12bit\r\n#include &lt;OneWire.h&gt;\r\nOneWire  ds(11);  \/\/ on pin 10 (a 4.7K resistor is necessary)\r\n\r\nconstexpr uint8_t pin_led       { 13 };\r\nconstexpr uint8_t pin_onewire   { 12 };\r\nfloat celsius, fahrenheit;\r\nauto hub    = OneWireHub(pin_onewire);\r\n\r\nauto ds18b20 = DS18B20(0x28, 0xA0, 0x36, 0x14, 0x03, 0x00, 0x00); \/\/ DS18B20: 9-12bit, -55 —  +85 degC\r\n\/\/28A0361403000088\r\nauto ds18s20 = DS18B20(0x10, 0x00, 0x00, 0xA2, 0x18, 0xDA, 0x00);                 \/\/ DS18S20: 9   bit, -55 —  +85 degC\r\nauto ds1822  = DS18B20(0x22, 0x00, 0x00, 0x22, 0x18, 0xDA, 0x00);                 \/\/ DS1822:  9-12bit, -55 — +125 degC\r\n\r\nbool blinking(void);\r\n\r\nvoid setup()\r\n{\r\n    Serial.begin(9600);\r\n    Serial.println(«OneWire-Hub DS18B20 Temperature-Sensor»);\r\n    Serial.flush();\r\n\r\n    pinMode(pin_led, OUTPUT);\r\n\r\n    \/\/ Setup OneWire\r\n    hub.attach(ds18b20);\r\n   \/\/ hub.attach(ds18s20);\r\n   \/\/ hub.attach(ds1822);\r\n\r\n\r\n    ds18b20.setTemperature(int8_t(85));\r\n\r\n};\r\n\r\nvoid loop()\r\n{\r\n    \/\/ following function must be called periodically\r\n    hub.poll();\r\n    \/\/ this part is just for debugging (USE_SERIAL_DEBUG in OneWire.h must be enabled for output)\r\n    if (hub.hasError()) hub.printError();\r\n\r\n\r\n\r\n\r\n    \/\/ Blink triggers the state-change\r\n    if (blinking())\r\n    {\r\n\r\n        \/\/ Set temp\r\n        static float temperature = celsius;\r\n        \/\/temperature += 0.1;\r\n        if (temperature &gt; 30.0) temperature = 20.0;\r\n        ds18b20.setTemperature(celsius);\r\n        \/\/ds18s20.setTemperature(temperature);\r\n        \/\/ds1822.setTemperature(temperature);\r\n        Serial.println(celsius);\r\n\r\n              \/\/—————————————————————————\r\n  byte i;\r\n  byte present = 0;\r\n  byte type_s;\r\n  byte data[12];\r\n  \/\/byte addr[8];\r\n  \/\/28 FF 7 DD 61 15 1 C6\r\nunsigned char addr[8] = {0x28, 0xFF, 0x07, 0xDD, 0x61, 0x15, 0x01, 0xC6};\r\n  \/\/float celsius, fahrenheit;\r\n  \r\n\r\n  ds.reset();\r\n  ds.select(addr);\r\n  ds.write(0x44, 1);        \/\/ start conversion, with parasite power on at the end\r\n  \r\n\r\n  present = ds.reset();\r\n  ds.select(addr);    \r\n  ds.write(0xBE);         \/\/ Read Scratchpad\r\n\r\n  for ( i = 0; i &lt; 9; i++) {           \/\/ we need 9 bytes\r\n    data[i] = ds.read();\r\n    \/\/Serial.print(data[i], HEX);\r\n   \/\/ Serial.print(» «);\r\n  }\r\n\r\n\r\n  int16_t raw = (data[1] &lt;&lt; 8) | data[0];\r\n  if (type_s) {\r\n    raw = raw &lt;&lt; 3; \/\/ 9 bit resolution default\r\n    if (data[7] == 0x10) {\r\n      \/\/ «count remain» gives full 12 bit resolution\r\n      raw = (raw &amp; 0xFFF0) + 12 — data[6];\r\n    }\r\n  } else {\r\n    byte cfg = (data[4] &amp; 0x60);\r\n    \/\/ at lower res, the low bits are undefined, so let’s zero them\r\n    if (cfg == 0x00) raw = raw &amp; ~7;  \/\/ 9 bit resolution, 93.75 ms\r\n    else if (cfg == 0x20) raw = raw &amp; ~3; \/\/ 10 bit res, 187.5 ms\r\n    else if (cfg == 0x40) raw = raw &amp; ~1; \/\/ 11 bit res, 375 ms\r\n    \/\/\/\/ default is 12 bit resolution, 750 ms conversion time\r\n  }\r\n  celsius = (float)raw \/ 16.0;\r\n  \/\/fahrenheit = celsius * 1.8 + 32.0;\r\n  Serial.print(»  Temperature = «);\r\n  Serial.print(celsius);\r\n  Serial.print(» Celsius, «);\r\n  \/\/Serial.print(fahrenheit);\r\n  \/\/Serial.println(» Fahrenheit»);\r\n\/\/—————————————————————————\r\n    }\r\n}\r\n\r\nbool blinking(void)\r\n{\r\n    constexpr  uint32_t interval    = 1000;          \/\/ interval at which to blink (milliseconds)\r\n    static uint32_t nextMillis  = millis();     \/\/ will store next time LED will updated\r\n\r\n    if (millis() &gt; nextMillis)\r\n    {\r\n        nextMillis += interval;             \/\/ save the next time you blinked the LED\r\n        static uint8_t ledState = LOW;      \/\/ ledState used to set the LED\r\n        if (ledState == LOW)    ledState = HIGH;\r\n        else                    ledState = LOW;\r\n        digitalWrite(pin_led, ledState);\r\n        return 1;\r\n    }\r\n    return 0;\r\n}\r\n\r\n<\/pre>\n<p>Пин 12 это выход на разьем в коробку, пин 11 это дата пин вашего нового датчика ds18b20, так же не забываем подтягивать новый датчик резистором на 4,7ком на шину +5В<\/p>\n<p>После этого заходим в консоль коробки и проверяем как она видит ваш датчик<\/p>\n<p>root [ ~ ]# tempcontrol<br \/>\nFound sensors:<br \/>\n0: 28 A0 36 14 03 00 00 88<br \/>\nRomCode: 28A0361403000088 Port: 0 Order :0 Time: 1496909700 Temp: 335<br \/>\nRomCode: 28A0361403000088 Port: 0 Order :0 Time: 1496909702 Temp: 335<br \/>\nRomCode: 28A0361403000088 Port: 0 Order :0 Time: 1496909703 Temp: 340<br \/>\nRomCode: 28A0361403000088 Port: 0 Order :0 Time: 1496909704 Temp: 340<br \/>\nRomCode: 28A0361403000088 Port: 0 Order :0 Time: 1496909705 Temp: 335<\/p>\n<p> <\/p>\n",
            "date_published": "2021-04-13T09:58:09+00:00",
            "date_modified": "2021-04-13T09:57:20+00:00",
            "_date_published_rfc2822": "Tue, 13 Apr 2021 09:58:09 +0000",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "28",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "24",
            "url": "https:\/\/sorex.org\/?go=all\/klyuch-dlya-avreg-na-100-kanalov\/",
            "title": "Ключ для avreg на 100 каналов",
            "content_html": "<pre class=\"e2-text-code\"><code class=\"\">exec(&quot;ifconfig -a &gt;eth.out&quot;);\r\n\r\n$str1='';\r\n$str2=&quot;HWaddr&quot;;\r\n\r\n$ff=fopen(&quot;eth.out&quot;,'r');\r\n$str1=fgets($ff);\r\nfclose($ff);\r\n\r\n$mac=substr(str_replace(' ','',str_replace($str2,'',strstr($str1,$str2))),0,17);\r\n$mac=$mac . '-64:64:64:64';\r\n$salt='$1$e4_Z3G-x\r\n\r\n\r\n';\r\n$key2 = crypt($mac,$salt);\r\n\r\n$key2=str_replace($salt,&quot;&quot;,$key2);\r\n\r\n$ff=fopen('avreg-v5',&quot;w&quot;);\r\nfputs($ff,&quot;key_ver5_part1=&quot;.$mac.&quot;\\n&quot;);\r\nfputs($ff,&quot;key_ver5_part2=&quot;.$key2.&quot;\\n&quot;);\r\n\r\nfclose($ff);\r\n?&gt;<\/code><\/pre>",
            "date_published": "2021-04-13T09:48:20+00:00",
            "date_modified": "2025-11-10T07:54:38+00:00",
            "_date_published_rfc2822": "Tue, 13 Apr 2021 09:48:20 +0000",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "24",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "15",
            "url": "https:\/\/sorex.org\/?go=all\/sbros-nastroek-ipmi-supermicro-cherez-ubuntu-ili-esxi-5-5\/",
            "title": "Сброс настроек IPMI Supermicro через Ubuntu или Esxi 5.5",
            "content_html": "<!-- wp:paragraph --><p>Для сброса закидывает всю папку linux\\x64 и выполняем <\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p>chmod +x IPMICFG-Linux.x86_64; .\/IPMICFG-Linux.x86_64 -fd<\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p>Ждем рестарта SMC и после этого входим по DHCP с логином паролем ADMIN ADMIN<\/p>\n<!-- \/wp:paragraph --><!-- wp:file {\"id\":1552,\"href\":\"https:\/\/sorex.org\/wp-content\/uploads\/2019\/12\/IPMICFG_1.30.0_build.190710.zip\"} --><div class=\"wp-block-file\"><p><a href=\"https:\/\/sorex.org\/wp-content\/uploads\/2019\/12\/IPMICFG_1.30.0_build.190710.zip\">IPMICFG_1.30.0_build.190710<\/a><a href=\"https:\/\/sorex.org\/wp-content\/uploads\/2019\/12\/IPMICFG_1.30.0_build.190710.zip\" class=\"wp-block-file__button\" download>Скачать<\/a><\/p>\n<\/div><!-- \/wp:file -->",
            "date_published": "2021-04-13T09:36:36+00:00",
            "date_modified": "2021-04-13T09:36:35+00:00",
            "_date_published_rfc2822": "Tue, 13 Apr 2021 09:36:36 +0000",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "15",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "14",
            "url": "https:\/\/sorex.org\/?go=all\/flashcache-munin-na-ubunt-16-04\/",
            "title": "Flashcache + munin на Ubunt 16.04",
            "content_html": "<!-- wp:paragraph --><p>Устанавливаем пакеты и компилим с исходников<\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p><pre class=\"e2-text-code\"><code class=\"\">sudo apt-get install dkms build-essential linux-headers-$(uname -r) git<\/code><\/pre><\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p><pre class=\"e2-text-code\"><code class=\"\">git clone git:\/\/github.com\/facebook\/flashcache; cd flashcache<\/code><\/pre><\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p><pre class=\"e2-text-code\"><code class=\"\">make -f Makefile.dkms<\/code><\/pre><\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p><pre class=\"e2-text-code\"><code class=\"\">make install<\/code><\/pre><\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p>После этого подгружаем модуль <\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p>modprobe flashcache<\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p>Дальше добавлем кеш к диску sdaX в режиме writeback<\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p> sudo flashcache_create -p back fcache \/dev\/sdbX \/dev\/sdaX <\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p>Для проверки попаданий в кеш вводим<\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p> dmsetup status cachedev <\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p>Для размонтирования кеша с выгрузкой грязных данных используем <\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p> <em>dmsetup remove cachedev<\/em> <\/p>\n<!-- \/wp:paragraph --><!-- wp:image {\"id\":1563,\"sizeSlug\":\"large\"} --><p><figure class=\"wp-block-image size-large\"><img src=\"https:\/\/sorex.org\/wp-content\/uploads\/2019\/12\/image.png\" alt=\"\" class=\"wp-image-1563\"\/><\/figure><\/p>\n<!-- \/wp:image --><!-- wp:paragraph --><p>Файл \/etc\/fstab не менялся, т. к. кеширование делается на уровне md-устройтва, поєтому домашний каталог доступен без бубнов и танцев сразу после загрузки системы.<\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p>Твики в sysctl.conf:<br>\r\ndev.flashcache.sda+md2.fallow_delay = 240<br>\r\ndev.flashcache.sda+md2.fast_remove = 1<br>\r\ndev.flashcache.sda+md2.reclaim_policy = 1<br>\r\ndev.flashcache.sda+md2.skip_seq_thresh_kb = 1024<\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p><strong>Убрать кеширование<\/strong>.<br>1. umount \/home<br>2. sysctl -w dev.flashcache.sda+md2.do_sync=1<br>(может занять продолжительное время для записи данных на медленный диск)<br>3. vgchange -an vg1<br>3. dmsetup remove ssd<br>4. flashcache_destroy \/dev\/sda<\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p>Теперь логический раздел vg1-home можно примонтировать без SSD кеша<br>5. vgchange -ay vg1<br>6. mount \/dev\/mapper\/vg1-home \/home<\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p><\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p><\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p>Ставим munin<\/p>\n<!-- \/wp:paragraph --><!-- wp:heading --><p><h2>Шаг 1. Установка Munin-master и Munin-node<\/h2><\/p>\n<!-- \/wp:heading --><!-- wp:paragraph --><p>Установить Munin можно из стандартных репозиториев операционной системы :<\/p>\n<!-- \/wp:paragraph --><!-- wp:preformatted --><pre class=\"wp-block-preformatted\">sudo apt-get update<br>sudo apt-get install munin<br>sudo apt-get install munin-node<\/pre>\n<!-- \/wp:preformatted --><!-- wp:heading --><p><h2>Шаг 2. Настройка Munin-master<\/h2><\/p>\n<!-- \/wp:heading --><!-- wp:paragraph --><p>Откроем конфигурационный файл Munin:<\/p>\n<!-- \/wp:paragraph --><!-- wp:preformatted --><pre class=\"wp-block-preformatted\">nano \/etc\/munin\/munin.conf<\/pre>\n<!-- \/wp:preformatted --><!-- wp:paragraph --><p>Для начальной настройки необходимо изменить только имя хоста, которое будет выводиться в графиках. Для этого в секции конфигурационного файла «# a simple host tree» отредактируем строку<\/p>\n<!-- \/wp:paragraph --><!-- wp:preformatted --><pre class=\"wp-block-preformatted\">[localhost.localdomain]<\/pre>\n<!-- \/wp:preformatted --><!-- wp:paragraph --><p>Имя хоста можно указать, например, так:<\/p>\n<!-- \/wp:paragraph --><!-- wp:preformatted --><pre class=\"wp-block-preformatted\">[srv-01.example.com]<\/pre>\n<!-- \/wp:preformatted --><!-- wp:paragraph --><p> Вот и всё.  Сохраняем внесённые изменения и выходим из текстового редактора.<\/p>\n<!-- \/wp:paragraph --><!-- wp:heading --><p><h2>Шаг 3. Настройка Munin-node<\/h2><\/p>\n<!-- \/wp:heading --><!-- wp:paragraph --><p>Как и при настройке Munin-master, для начала необходимо открыть конфигурационный файл :<\/p>\n<!-- \/wp:paragraph --><!-- wp:preformatted --><pre class=\"wp-block-preformatted\">nano \/etc\/munin\/munin-node.conf<\/pre>\n<!-- \/wp:preformatted --><!-- wp:paragraph --><p>В файле нужно найти строку<\/p>\n<!-- \/wp:paragraph --><!-- wp:preformatted --><pre class=\"wp-block-preformatted\">#host_name localhost.localdomain<\/pre>\n<!-- \/wp:preformatted --><!-- wp:paragraph --><p>Она нужна для того, чтобы изменить имя хоста. Именно её потребуется отредактировать — например, так:<\/p>\n<!-- \/wp:paragraph --><!-- wp:preformatted --><pre class=\"wp-block-preformatted\">host_name srv-01.example.com<\/pre>\n<!-- \/wp:preformatted --><!-- wp:paragraph --><p>Обратите внимание, что строку нужно раскомментировать (удалить символ # в начале).<\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p><strong>Управление плагинами<\/strong><\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p>Чтобы посмотреть список доступных плагинов, необходимо сделать листинг директории \/etc\/munin\/plugins<\/p>\n<!-- \/wp:paragraph --><!-- wp:preformatted --><pre class=\"wp-block-preformatted\">ls -l \/usr\/share\/munin\/plugins\/<\/pre>\n<!-- \/wp:preformatted --><!-- wp:paragraph --><p>Для установки плагина нужно создать на него символическую ссылку.<\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p>Перейдём в директорию для установленных плагинов.<\/p>\n<!-- \/wp:paragraph --><!-- wp:preformatted --><pre class=\"wp-block-preformatted\">cd \/etc\/munin\/plugins\/<\/pre>\n<!-- \/wp:preformatted --><!-- wp:paragraph --><p>Установим какой-нибудь плагин (в нашем примере это плагин для DNS-сервера Bind):<\/p>\n<!-- \/wp:paragraph --><!-- wp:preformatted --><pre class=\"wp-block-preformatted\">ln -s \/usr\/share\/munin\/plugins\/bind9<\/pre>\n<!-- \/wp:preformatted --><!-- wp:paragraph --><p>После добавления всех необходимых плагинов перезапустим Munin-node для примерения изменений:<\/p>\n<!-- \/wp:paragraph --><!-- wp:preformatted --><pre class=\"wp-block-preformatted\">service munin-node restart<\/pre>\n<!-- \/wp:preformatted --><!-- wp:heading --><p><h2>Шаг 4. Настройка доступа к Munin через Apache и Nginx<\/h2><\/p>\n<!-- \/wp:heading --><!-- wp:paragraph --><p>Результаты мониторинга Munin отображает в виде графиков. Для этого потребуется HTTP-сервер  —  например, Apache или Nginx.<\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p><strong>Настройка доступа к Munin через Apache<\/strong><\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p>Для настройки доступа к Munin через Apache необходимо в конфигурацию любого виртуального хоста (в то числе стандартного) внести директиву &lt;Location \/munin&gt;<\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p>Для этого в файл виртуального хоста потребуется вставить следующие строки<\/p>\n<!-- \/wp:paragraph --><!-- wp:preformatted --><pre class=\"wp-block-preformatted\">&lt;Location \/munin&gt;<br>    AuthType Basic<br>    AuthName «Munin Statistics»<br>    AuthUserFile \/etc\/munin\/.passwd<br>    Require valid-user<br>&lt;\/Location&gt;<\/pre>\n<!-- \/wp:preformatted --><!-- wp:paragraph --><p>После внесения изменений Apache нужно будет перезапустить:<\/p>\n<!-- \/wp:paragraph --><!-- wp:preformatted --><pre class=\"wp-block-preformatted\">service apache2 restart<\/pre>\n<!-- \/wp:preformatted --><!-- wp:paragraph --><p><strong>Настройка доступа к Munin через Nginx<\/strong><\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p>Для настройки доступа к Munin через Nginx также понадобится внести изменения в конфигурацию любого виртуального хоста:<\/p>\n<!-- \/wp:paragraph --><!-- wp:preformatted --><pre class=\"wp-block-preformatted\">location \/munin {<br>    alias \/var\/www\/munin;<br>    autoindex on;<br>    auth_basic «Munin Statistics»;<br>    auth_basic_user_file \/etc\/munin\/.passwd;<br>}<\/pre>\n<!-- \/wp:preformatted --><!-- wp:paragraph --><p>Чтобы настройки вступили в силу, Nginx нужно будет перезагрузить.<\/p>\n<!-- \/wp:paragraph --><!-- wp:preformatted --><pre class=\"wp-block-preformatted\">service nginx restart<\/pre>\n<!-- \/wp:preformatted --><!-- wp:heading --><p><h2>Шаг 5. Создание файла паролей<\/h2><\/p>\n<!-- \/wp:heading --><!-- wp:paragraph --><p>По завершении настройки создадим файл с паролями пользователей, имеющих доступ к Munin.<\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p>Для этого выполним следующую команду:<\/p>\n<!-- \/wp:paragraph --><!-- wp:preformatted --><pre class=\"wp-block-preformatted\">htpasswd -c \/etc\/munin\/.passwd user<\/pre>\n<!-- \/wp:preformatted --><!-- wp:paragraph --><p>После выполнения данной команды будет предложено два раза ввести пароль от пользователя, после чего файл будет записан. В этой команде можно заменить user на любое удобное имя пользователя.<\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p>В конфиге для Nginx ставим<\/p>\n<!-- \/wp:paragraph --><!-- wp:preformatted --><pre class=\"wp-block-preformatted\">alias \/var\/cache\/munin\/www;\r\n<\/pre>\n<!-- \/wp:preformatted --><!-- wp:paragraph --><p>После этого добавляем модуль flashcache<\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p>wget  <a href=\"https:\/\/raw.github.com\/pkhamre\/flashcache-munin\/master\/flashcache_stats\">https:\/\/raw.github.com\/pkhamre\/flashcache-munin\/master\/flashcache_stats<\/a> <\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p>chmod +x flashcache_stats;mv flashcache_stats \/usr\/share\/munin\/plugins\/; ln -s   \/usr\/share\/munin\/plugins\/flashcache_stats \/etc\/munin\/plugins\/<\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p>Установка для дебиан <\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p> aptitude install flashcache-dkms flashcache-utils<br>modprobe flashcache <\/p>\n<!-- \/wp:paragraph -->",
            "date_published": "2021-04-13T09:35:40+00:00",
            "date_modified": "2021-04-13T09:35:35+00:00",
            "_date_published_rfc2822": "Tue, 13 Apr 2021 09:35:40 +0000",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "14",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "12",
            "url": "https:\/\/sorex.org\/?go=all\/flashcache-centos\/",
            "title": "flashcache Centos",
            "content_html": "<!-- wp:heading --><p><h2>Разбивка в installimage<\/h2><\/p>\n<!-- \/wp:heading --><!-- wp:paragraph --><p><strong>SSD<\/strong>: так как он первый, то закомментирован. Остальные секции<br><strong>DRIVE: <\/strong>переименованы по номерами на 1 и 2.<\/p>\n<!-- \/wp:paragraph --><!-- wp:preformatted --><pre class=\"wp-block-preformatted\">SWRAIDLEVEL = 1<\/pre>\n<!-- \/wp:preformatted --><!-- wp:paragraph --><p>( по умолчанию на 3-х пытается создать 5-й RAID)<\/p>\n<!-- \/wp:paragraph --><!-- wp:preformatted --><pre class=\"wp-block-preformatted\">PART swap swap 32G\r\nPART \/boot ext3 512M\r\nPART lvm vg0 all\r\nLV vg0 vz \/vz ext4 600G\r\nLV vg0 root \/ ext4 all\r\n<\/pre>\n<!-- \/wp:preformatted --><!-- wp:paragraph --><p>Далее, в соответствии с установщиком. Нажимаем f10 и enter.<\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p>После загрузки сервера в обычном режиме с установленным чистым Centos, ставим OpenVZ. Установка описана <a href=\"https:\/\/adminvps.ru\/blog\/ustanovka-i-nastrojka-openvz-na-centos-6\/\">здесь<\/a>.<\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p>Теперь начинается самое интересное.<\/p>\n<!-- \/wp:paragraph --><!-- wp:heading --><p><h2>Установка flashcache<\/h2><\/p>\n<!-- \/wp:heading --><!-- wp:paragraph --><p>К сожалению, это не быстрый способ установки. Возможно, это из-за OpenVZ ядра. Мануал всего из двух строчек:<\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p>1) Подключаем репозиторий<\/p>\n<!-- \/wp:paragraph --><!-- wp:preformatted --><pre class=\"wp-block-preformatted\">rpm -Uvh <a href=\"http:\/\/elrepo.reloumirrors.net\/elrepo\/el6\/x86_64\/RPMS\/elrepo-release-6-4.el6.elrepo.noarch.rpm\">http:\/\/elrepo.reloumirrors.net\/elrepo\/el6\/x86_64\/RPMS\/elrepo-release-6-4.el6.elrepo.noarch.rpm<\/a><\/pre>\n<!-- \/wp:preformatted --><!-- wp:paragraph --><p>2) И устанавливаем<\/p>\n<!-- \/wp:paragraph --><!-- wp:preformatted --><pre class=\"wp-block-preformatted\">yum -y install kmod-flashcache flashcache-utils<\/pre>\n<!-- \/wp:preformatted --><!-- wp:paragraph --><p>На момент написания статьи было ядро OpenVZ rhel6-2.6.32 версии 042stab074.10.<\/p>\n<!-- \/wp:paragraph --><!-- wp:paragraph --><p>Так как для сборки FlashCache требуются некоторые внутренние заголовочные файлы, которые не входят в состав пакета kernel-headers\/devel, требуется загрузить и установить полный код ядра. Нам же не хватало vzkernel-headers.<\/p>\n<!-- \/wp:paragraph --><!-- wp:preformatted --><pre class=\"wp-block-preformatted\">yumdownloader —source kernel-`uname -r`\r\nrpm -ivh kernel-`uname -r`.src.rpm\r\n<\/pre>\n<!-- \/wp:preformatted --><!-- wp:paragraph --><p>Далее скачиваем и устанавливаем:<\/p>\n<!-- \/wp:paragraph --><!-- wp:preformatted --><pre class=\"wp-block-preformatted\">git clone <a href=\"https:\/\/github.com\/facebook\/flashcache.git\">https:\/\/github.com\/facebook\/flashcache.git<\/a>\r\n\r\ncd flashcache\r\n\r\nmake -f Makefile.dkms<\/pre>\n<!-- \/wp:preformatted -->",
            "date_published": "2021-04-13T09:31:15+00:00",
            "date_modified": "2021-04-13T09:31:10+00:00",
            "_date_published_rfc2822": "Tue, 13 Apr 2021 09:31:15 +0000",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "12",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        }
    ],
    "_e2_version": 3820,
    "_e2_ua_string": "E2 (v3820;)"
}