<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Копытов Иван: заметки с тегом создание</title>
<link>https://kini24.ru/tags/sozdanie/</link>
<description>Блог ленивого сисадмина</description>
<author></author>
<language>ru</language>
<generator>Aegea 11.3 (v4134)</generator>

<itunes:subtitle>Блог ленивого сисадмина</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Создание зеркала Nod32 на Synology</title>
<guid isPermaLink="false">255</guid>
<link>https://kini24.ru/all/sozdanie-zerkala-nod32-na-synology/</link>
<pubDate>Fri, 21 Oct 2022 10:21:07 +0700</pubDate>
<author></author>
<comments>https://kini24.ru/all/sozdanie-zerkala-nod32-na-synology/</comments>
<description>
&lt;h2&gt;Заметка на память&lt;/h2&gt;
&lt;ol start="1"&gt;
&lt;li&gt;Распаковываем архив со скриптом в /volume1/web/nod&lt;/li&gt;
&lt;li&gt;В Web Station создаем виртуальный хост с именем nod. Открываем порты 443 и 80.&lt;/li&gt;
&lt;li&gt;Корневым каталогом указываем /web/nod/www&lt;/li&gt;
&lt;li&gt;В планировщике задач создаем новую с произвольным именем. В качестве команды для выполнения указываем&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;/usr/local/bin/php74 -f /volume1/web/nod/update.php &amp;amp;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Пользователь root.&lt;/p&gt;
&lt;ol start="5"&gt;
&lt;li&gt;Подключаемся к NAS по SSH, создаем файл /etc/nginx/sites-enabled/nod.conf:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;touch /etc/nginx/sites-enabled/nod.conf&lt;/code&gt;&lt;/pre&gt;&lt;ol start="6"&gt;
&lt;li&gt;Открываем файл на редактирование:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;vi /etc/nginx/sites-enabled/nod.conf&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Для начала редактирования нужно нажать английскую клавишу «i». Затем вставляем из буфера обмена текст из пункта 7.&lt;/p&gt;
&lt;ol start="7"&gt;
&lt;li&gt;Правим этот файл и приводим к виду:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;map $http_user_agent $ver {
        &amp;quot;~^.*(EEA|EES|EFSW)+\s+Update.*BPC\s+(\d+)\..*$&amp;quot; &amp;quot;ep$2&amp;quot;;
        &amp;quot;~^.*Update.*BPC\s+(\d+)\..*$&amp;quot; &amp;quot;v$1&amp;quot;;
}

server {
                listen 80;
                listen 2221;
                server_name nod.home.mikhailov.by;

                # Optional: Charset
                charset utf-8;

                # Path to the root of your installation
                root /volume1/web/nod/www;

                # Index file
                index index.html;

                # Доп. заголовки
                add_header X-Robots-Tag &amp;quot;noindex, nofollow, nosnippet, noarchive&amp;quot;;
                add_header Cache-Control &amp;quot;no-cache, public, must-revalidate&amp;quot;;

                ################# Nginx Rewrite #################

                location ~* \.ver$ {
                        auth_basic &amp;quot;Restricted&amp;quot;;
                        auth_basic_user_file /volume1/web/nod/htpasswd;

                        if ($ver ~ &amp;quot;^ep[6-9]$&amp;quot;) {
                                rewrite ^/(dll/)?update.ver$ /eset_upd/$ver/$1update.ver break;
                        }

                        if ($ver ~ &amp;quot;^v(5|9)$&amp;quot;) {
                                rewrite ^(.*) /eset_upd/$ver/update.ver break;
                        }

                        if ($ver ~ &amp;quot;^v[3-8]$&amp;quot;) {
                                rewrite ^(.*) /eset_upd/v3/update.ver break;
                        }

                        if ($ver ~ &amp;quot;^v1[0-1]$&amp;quot;) {
                                rewrite ^(.*) /eset_upd/v10/dll/update.ver break;
                        }
                        if ($ver ~ &amp;quot;^v1[2-9]$&amp;quot;) {
                                rewrite ^(.*) /eset_upd/$ver/dll/update.ver break;
                        }
                }

                ################################################
}&lt;/code&gt;&lt;/pre&gt;&lt;ol start="8"&gt;
&lt;li&gt;Завершаем редактирование нажатием клавиши Esc. Затем нужно ввести двоеточие и следом за ним буквы wq. Внизу слева должно получиться следующее:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;:wq&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Теперь нажимаем Enter. Буква w означает запись, буква q — выход из программы. Если возникнут вопросы по редактору, гуглим vi.&lt;/p&gt;
&lt;ol start="9"&gt;
&lt;li&gt;В папке /volume1/web/nod создаем файл htpasswd.&lt;/li&gt;
&lt;li&gt;Добавляем в него пользователя:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;htpasswd -b /volume1/web/nod/htpasswd username password&lt;/code&gt;&lt;/pre&gt;&lt;ol start="11"&gt;
&lt;li&gt;Перезапускаем nginx:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;nginx -s reload&lt;/code&gt;&lt;/pre&gt;&lt;ol start="12"&gt;
&lt;li&gt;Проверяем доступность зеркала и запрос пароля&lt;/li&gt;
&lt;/ol&gt;
</description>
</item>

<item>
<title>Влажность в квартире</title>
<guid isPermaLink="false">233</guid>
<link>https://kini24.ru/all/vlazhnost-v-kvartire/</link>
<pubDate>Tue, 23 Apr 2019 12:45:58 +0700</pubDate>
<author></author>
<comments>https://kini24.ru/all/vlazhnost-v-kvartire/</comments>
<description>
&lt;p&gt;Собрал мини-метеостанцию для зала (планирую установить подобные во все комнаты квартиры), подключил её к Domoticz. Получилось отлично — сама станция размером со спичечный коробок, нужно только подобрать ей корпус.&lt;br /&gt;
Показания поначалу ввели в ступор: давление около 1000 и влажность около 20%. Залез в документацию, оказалось что давление датчик измеряет в гПа. Пришлось в прошивке ESP8266 создавать еще один виртуальный датчик и пересчитывать для него показания в мм ртутного столба. Всё таки в России используется такая единица измерений. А вот с влажностью непонятно до сих пор. Текущие показания — 17%, хотя норма составляет 40-50%. Поначалу думал, что что-то с датчиком. Распаковал новый, установил — картина не изменилась. Сейчас на работе вспомнил об этом, подключил AM2302 — тоже около 18%. Хоть на улицу выноси! Пришлось пойти на сайт &lt;a href="https://narodmon.ru"&gt;narodmon.ru&lt;/a&gt;. Там картина поинтересней — показания колеблются от 14% до 24%. Хм, ладно, допустим, что все используют одно и то же оборудование. В таком случае нужно обратиться к более официальному источнику. Но «официалы» показали примерно ту же картину — от 20% до 30%.&lt;br /&gt;
В общем, пока что можно успокоиться и провести несколько экспериментов по её повышению, вроде кипящего рядом чайника.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://kini24.ru/pictures/baro.jpg" width="381" height="133" alt="Показания барометра" /&gt;
&lt;div class="e2-text-caption"&gt;Показания барометра&lt;/div&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://kini24.ru/pictures/pressure.jpg" width="383" height="131" alt="Виртуальный датчик" /&gt;
&lt;div class="e2-text-caption"&gt;Виртуальный датчик&lt;/div&gt;
&lt;/div&gt;
</description>
</item>

<item>
<title>Создание бота Telegram</title>
<guid isPermaLink="false">58</guid>
<link>https://kini24.ru/all/sozdanie-bota-telegram/</link>
<pubDate>Fri, 02 Jun 2017 11:17:53 +0700</pubDate>
<author></author>
<comments>https://kini24.ru/all/sozdanie-bota-telegram/</comments>
<description>
&lt;p&gt;Для чего мне это понадобилось? Как писал ранее, телефон не всегда почему-то проверяет почту, несмотря на заданный минимальный интервал проверки. Более удобным показалось использовать telegram для срочных оповещений. Задавшись этой целью, установил на сервер telegram-cli, который, как оказалось позднее, не понадобился. Снесу, однако :-)&lt;br /&gt;
Для начала создаем бота при помощи @BotFather. Задаем ему имя и описание. Я также задал и юзерпик для красоты. Открываем чат с этим ботом, набрав в браузере ссылку &lt;a href="https://t.me/"&gt;https://t.me/&lt;/a&gt;&lt;имя_вашего_бота&gt;. Затем нужно узнать ваш идентификатор. Для этого я воспользовался ботом @userinfobot, вы можете использовать другие методы. В принципе, вся нужная информация у нас есть.&lt;br /&gt;
Следующей задачей стала отправка сообщений из скрипта linux. Здесь нам поможет стандартный curl. После серии опытов обрисовалось примерно вот такое тело скрипта:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;ChatID=*****
BotToken=******
Text=&amp;quot;Hello, world!&amp;quot;

curl -s -X POST &amp;quot;https://api.telegram.org/bot$BotToken/sendMessage&amp;quot; -F chat_id=&amp;quot;$ChatID&amp;quot; -F text=&amp;quot;$Text&amp;quot;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Здесь ChatID, BotToken и Text — ваш идентификатор в telegram, токен бота, который вам выдали при его создании, и текст сообщения, соответственно. Хочу обратить внимание на то, что переменные в строке curl взяты в двойные кавычки. Это сделано для того, чтобы избежать утери части текста, если в нем присутствуют пробелы.&lt;br /&gt;
С текстом разобрались, остается отправка фотографии. Здесь все чуть-чуть сложней:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;curl -s -X POST &amp;quot;https://api.telegram.org/bot$BotToken/sendPhoto&amp;quot; -F chat_id=&amp;quot;$ChatID&amp;quot; -F photo=&amp;quot;@$1&amp;quot; -F caption=&amp;quot;$Text&amp;quot;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Добавился еще один параметр &lt;b&gt;photo&lt;/b&gt;, в который передается имя файла. Полный путь к файлу у меня передается самому скрипту, поэтому просто используем его. Также параметр &lt;b&gt;text&lt;/b&gt; из предыдущего примера я заменил на необязательный &lt;b&gt;caption&lt;/b&gt; — название фото.&lt;br /&gt;
На текущий момент motion оповещает меня об обнаружении движения, чуть позже присылает фото и ссылку на файл с записью. В планах еще добавить обнаружение лиц на фото, чтобы было видно кто пришел или ушел. Следующим шагом может стать, например, автоматическое включение моего компьютера когда прихожу домой.&lt;/p&gt;
</description>
</item>


</channel>
</rss>