<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Telegram on Linux Security</title><link>https://linuxtransfer.com/tags/telegram/</link><description>Recent content in Telegram on Linux Security</description><generator>Hugo</generator><language>en</language><lastBuildDate>Fri, 16 Oct 2026 09:17:10 +0200</lastBuildDate><atom:link href="https://linuxtransfer.com/tags/telegram/index.xml" rel="self" type="application/rss+xml"/><item><title>Send a Telegram Alert When Your Home Server’s /home Reaches 90% Usage With a Tiny systemd Service and curl</title><link>https://linuxtransfer.com/post/2026-10-16-send-a-telegram-alert-when-your-home-serversh/</link><pubDate>Fri, 16 Oct 2026 09:17:10 +0200</pubDate><guid>https://linuxtransfer.com/post/2026-10-16-send-a-telegram-alert-when-your-home-serversh/</guid><description>&lt;h2 id="monitoring-home-usage-with-a-systemd-timer">Monitoring /home Usage with a Systemd Timer&lt;/h2>
&lt;p>A home server rarely needs a full‑blown monitoring stack.&lt;br>
If you just want a quick alert when &lt;code>/home&lt;/code> fills up, a tiny systemd service plus &lt;code>curl&lt;/code> will do the trick. The example below keeps the footprint minimal, respects security best practices, and uses the official Telegram Bot API.&lt;/p>
&lt;h3 id="1-create-a-bot-and-grab-credentials">1. Create a Bot and Grab Credentials&lt;/h3>
&lt;ol>
&lt;li>Talk to BotFather on Telegram and create a bot.&lt;/li>
&lt;li>Note the &lt;strong>bot token&lt;/strong> (e.g. &lt;code>123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11&lt;/code>).&lt;/li>
&lt;li>Find your &lt;strong>chat ID&lt;/strong> by sending a message to the bot and querying &lt;code>https://api.telegram.org/bot&amp;lt;token&amp;gt;/getUpdates&lt;/code>.&lt;/li>
&lt;li>Store both values in a read‑only file:&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">sudo mkdir -p /etc/telegram-alert
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo tee /etc/telegram-alert/credentials &lt;span class="s">&amp;lt;&amp;lt;EOF
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s">TOKEN=123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s">CHAT_ID=987654321
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s">EOF&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo chmod &lt;span class="m">600&lt;/span> /etc/telegram-alert/credentials
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="2-service-unit--home-usage-alertservice">2. Service Unit – &lt;code>home-usage-alert.service&lt;/code>&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-ini" data-lang="ini">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># /etc/systemd/system/home-usage-alert.service&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">[Unit]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="na">Description&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">Send Telegram alert when /home exceeds 90%% usage&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="na">After&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">network.target&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">[Service]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="na">Type&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">oneshot&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="na">EnvironmentFile&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">/etc/telegram-alert/credentials&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="na">ExecStart&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">/usr/bin/bash -c &amp;#39;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s"> USAGE=$(df --output=pcent /home | tail -1 | tr -d &amp;#34;%&amp;#34;)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s"> if [ &amp;#34;$USAGE&amp;#34; -ge 90 ]; then
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s"> curl -s -X POST https://api.telegram.org/bot$TOKEN/sendMessage \
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s"> -d chat_id=$CHAT_ID \
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s"> -d text=&amp;#34;⚠️ /home is at ${USAGE}%% capacity. Free space needed.&amp;#34; \
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s"> -H &amp;#34;Content-Type: application/x-www-form-urlencoded&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s"> fi&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="na">&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="na">PrivateTmp&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">yes&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="na">ProtectSystem&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">full&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="na">RestrictAddressFamilies&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">AF_INET AF_INET6&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="na">Restart&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">no&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">[Install]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="na">WantedBy&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">multi-user.target&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Security notes&lt;/strong>&lt;/p></description></item></channel></rss>