<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Бібліотека скриптів для серверів on WiKi DIEG</title><link>https://dieg.net/uk/scripts/</link><description>Recent content in Бібліотека скриптів для серверів on WiKi DIEG</description><generator>Hugo</generator><language>uk</language><lastBuildDate>Thu, 10 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://dieg.net/uk/scripts/index.xml" rel="self" type="application/rss+xml"/><item><title>PHP-скрипт перевірки підтримки UDP у SOCKS5 проксі (UDP ASSOCIATE)</title><link>https://dieg.net/uk/scripts/socks5-udp-check/</link><pubDate>Thu, 10 Sep 2026 00:00:00 +0000</pubDate><guid>https://dieg.net/uk/scripts/socks5-udp-check/</guid><description>&lt;h1 id="php-скрипт-для-перевірки-udp-через-socks5-проксі"&gt;PHP-скрипт для перевірки UDP через SOCKS5 проксі&lt;a class="anchor" href="#php-%d1%81%d0%ba%d1%80%d0%b8%d0%bf%d1%82-%d0%b4%d0%bb%d1%8f-%d0%bf%d0%b5%d1%80%d0%b5%d0%b2%d1%96%d1%80%d0%ba%d0%b8-udp-%d1%87%d0%b5%d1%80%d0%b5%d0%b7-socks5-%d0%bf%d1%80%d0%be%d0%ba%d1%81%d1%96"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;Звичайні веб-тести або підключення браузера через SOCKS5 проксі перевіряють лише TCP-з&amp;rsquo;єднання. Сам факт підтримки SOCKS5 провайдером не гарантує можливість роботи з UDP-трафіком, який є критично важливим для голосових дзвінків (Telegram, Discord), стрімінгу та онлайн-ігор.&lt;/p&gt;&#10;&lt;p&gt;Цей консольний PHP-скрипт перевіряє не лише узгодження команди &lt;code&gt;UDP ASSOCIATE&lt;/code&gt;, а й &lt;strong&gt;фактичну пропускну здатність UDP-пакетів&lt;/strong&gt;: він встановлює з&amp;rsquo;єднання з проксі, проходить автентифікацію, отримує адресу UDP-relay і надсилає через нього реальний DNS-запит до &lt;code&gt;1.1.1.1:53&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Bash-скрипт перевірки VPS для локальних AI-моделей (AVX512, FMA)</title><link>https://dieg.net/uk/scripts/ai-vps.md/</link><pubDate>Mon, 07 Sep 2026 00:00:00 +0000</pubDate><guid>https://dieg.net/uk/scripts/ai-vps.md/</guid><description>&lt;h1 id="bash-скрипт-перевірки-обладнання-vps-для-ai"&gt;Bash-скрипт перевірки обладнання VPS для AI&lt;a class="anchor" href="#bash-%d1%81%d0%ba%d1%80%d0%b8%d0%bf%d1%82-%d0%bf%d0%b5%d1%80%d0%b5%d0%b2%d1%96%d1%80%d0%ba%d0%b8-%d0%be%d0%b1%d0%bb%d0%b0%d0%b4%d0%bd%d0%b0%d0%bd%d0%bd%d1%8f-vps-%d0%b4%d0%bb%d1%8f-ai"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;Цей скрипт призначений для швидкої діагностики орендованого сервера перед розгортанням локальних ШІ-моделей. Його головне завдання — за одну секунду визначити, чи підтримує процесор критично важливі векторні інструкції (AVX, AVX512, FMA), відсутність яких призводить до суттєвого падіння швидкості інференсу.&lt;/p&gt;&#10;&lt;p&gt;Окрім прапорів процесора, утиліта виводить тип віртуалізації, доступний обсяг оперативної пам&amp;rsquo;яті та поточне навантаження на ядра.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Запуск скрипту на сервері:&lt;/strong&gt;&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;wget -qO- https://dieg.net/scripts/ai-vps-check.sh | bash&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&#10;&#10;&#10;&#10;&lt;div class="local-gist" style="margin-bottom: 1.5rem;"&gt;&#10; &lt;div style="background: var(--gray-200, #f8f9fa); padding: 0.5rem 1rem; font-family: monospace; font-size: 0.85em; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; border-radius: 4px 4px 0 0; border: 1px solid var(--gray-300, #e5e7eb); border-bottom: none;"&gt;&#10; &lt;strong&gt;ai-vps-check.sh&lt;/strong&gt;&#10; &lt;a href="https://dieg.net/scripts/ai-vps-check.sh" download style="margin-left: auto; "&gt;[ Raw / Download ]&lt;/a&gt;&#10; &lt;/div&gt;&#10; &lt;div style="margin-top: 0;"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#!/bin/bash&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;========================================&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34; AI VPS Hardware Check&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;========================================&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;=== SYSTEM ===&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;grep -E &lt;span style="color:#e6db74"&gt;&amp;#39;^(PRETTY_NAME|VERSION_ID)=&amp;#39;&lt;/span&gt; /etc/os-release&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;Kernel: &lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;uname -r&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;Architecture: &lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;uname -m&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;Virtualization: &lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;systemd-detect-virt 2&amp;gt;/dev/null&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;=== CPU ===&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;lscpu | grep -E &lt;span style="color:#e6db74"&gt;&amp;#39;^(CPU\(s\)|Model name|Thread\(s\)|Core\(s\)|Socket\(s\)|CPU max MHz|CPU min MHz):&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;=== AI-RELEVANT CPU FLAGS ===&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;FLAGS&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;grep -m1 &lt;span style="color:#e6db74"&gt;&amp;#39;^flags&amp;#39;&lt;/span&gt; /proc/cpuinfo&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; flag in sse4_1 sse4_2 avx avx2 fma f16c avx512f avx512bw avx512vl avx512_vnni; &lt;span style="color:#66d9ef"&gt;do&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; echo &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$FLAGS&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; | grep -qw &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$flag&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;; &lt;span style="color:#66d9ef"&gt;then&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; printf &lt;span style="color:#e6db74"&gt;&amp;#34;%-12s YES\n&amp;#34;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$flag&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;else&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; printf &lt;span style="color:#e6db74"&gt;&amp;#34;%-12s NO\n&amp;#34;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$flag&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;fi&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;done&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;=== MEMORY ===&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;free -h&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;grep -E &lt;span style="color:#e6db74"&gt;&amp;#39;MemTotal|MemAvailable|SwapTotal|SwapFree&amp;#39;&lt;/span&gt; /proc/meminfo&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;=== DISK ===&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;df -hT /&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;=== LOAD ===&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;uptime&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;=== CPU LOAD / STEAL ===&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;top -bn1 | head -n &lt;span style="color:#ae81ff"&gt;5&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;========================================&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34; Check complete&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;========================================&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;</description></item></channel></rss>