<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>muninn (Muninn)</title>
    <link>https://w2solo.com/muninn</link>
    <description>golang</description>
    <language>en-us</language>
    <item>
      <title>Server 饭 - 用 API 发微信通知或用微信控制你的服务器</title>
      <description>&lt;p&gt;大家好，这是又一个向微信发通知的服务。这样的服务其实不少，一定是有新的特色我才好意思来介绍。
&lt;a href="https://letserver.run" rel="nofollow" target="_blank" title=""&gt;Server 饭&lt;/a&gt;不仅可以给微信发通知，还能反过来用微信和服务器产生交互。大概像下面这样：&lt;/p&gt;

&lt;p&gt;&lt;img src="https://static.crandom.com/hackfan/intro.png" title="" alt="Intro"&gt;&lt;/p&gt;

&lt;p&gt;好了，还是先介绍基础功能吧。&lt;/p&gt;
&lt;h2 id="主动发送通知"&gt;主动发送通知&lt;/h2&gt;
&lt;p&gt;给自己发消息是最常用的功能。&lt;br&gt;
拉到文末扫码关注服务号，或者在微信搜索 "LetServerRun" 这个服务号关注。&lt;br&gt;
在服务号发送 &lt;code&gt;token&lt;/code&gt; 命令查看自己的用户 token 。&lt;br&gt;
使用用户 token，您就可以用 API 向公众号发警告消息了：&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="s2"&gt;"https://api.letserver.run/message/info?token=YOUR-TOKEN&amp;amp;msg=hello"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这个 GET 接口是为了调试和轻量使用场景的，在程序中使用的话有&lt;a href="https://letserver.run/ref/" rel="nofollow" target="_blank" title=""&gt;一系列接口&lt;/a&gt;和 SDK。&lt;/p&gt;
&lt;h2 id="反向控制服务器"&gt;反向控制服务器&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Server 饭&lt;/strong&gt;的特色功能是用微信控制服务器做简单的事情。就像一开始的图里那样。
放心，不需要你提供 ssh 密钥，为了安全，命令能做什么完全由你定义。&lt;/p&gt;

&lt;p&gt;实现的原理是在服务号中你发的命令会被存储在云端，
Agent 每分钟向云端发起请求检查一次，如果有命令则拉回来执行它。
执行完成之后可以返回成功或者失败的结果，你就会在微信服务号上看到。&lt;/p&gt;

&lt;p&gt;Agent 哪里来呢？有这么几种选择：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;最自由：调用我们的 API 自己写&lt;/li&gt;
&lt;li&gt;省事点：调用 SDK 自己写&lt;/li&gt;
&lt;li&gt;够用就好：直接用我们几个开源的方案&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;这里我们先使用一个&lt;a href="https://github.com/hack-fan/skadi-agent-shell" rel="nofollow" target="_blank" title=""&gt;开源的通用 Agent&lt;/a&gt;来上手。&lt;br&gt;
它可以帮你在服务器执行特定的命令。后面我们可以根据需求，自己通过 API 或 SDK，集成 Agent 或自己编写。&lt;/p&gt;

&lt;p&gt;假设你的服务器是 Debian/Ubuntu ,如果是别的请参考 &lt;a href="/docs/basic/common-agent/" title=""&gt;安装通用 Agent&lt;/a&gt;&lt;br&gt;
如果您本身就是 root 用户，麻烦去掉所有命令中的 &lt;code&gt;sudo&lt;/code&gt;&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 注册仓库&lt;/span&gt;
curl &lt;span class="nt"&gt;-1sLf&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="s1"&gt;'https://dl.cloudsmith.io/public/hackfan/skadi/setup.deb.sh'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  | &lt;span class="nb"&gt;sudo&lt;/span&gt; &lt;span class="nt"&gt;-E&lt;/span&gt; bash
&lt;span class="c"&gt;# 更新&lt;/span&gt;
apt update
&lt;span class="c"&gt;# 安装&lt;/span&gt;
apt &lt;span class="nb"&gt;install &lt;/span&gt;skadi
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在安装后，因为还没有 Token，所以并没有自动启动。&lt;br&gt;
Token 哪来的呢？在服务号输入命令: &lt;code&gt;agent add 名字&lt;/code&gt; (名字是要你给它取个简单的名字，以后每次都要用它发命令)&lt;br&gt;
然后将得到的 Token 写入配置文件，像下面这样。
你也可以编辑 &lt;code&gt;/etc/skadi/skadi.yml&lt;/code&gt; 这个文件自己写入。&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 写入 Token&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;skadi AGENT-TOKEN
&lt;span class="c"&gt;# 启动服务&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl start
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;只有第一次需要配置 Token 后手动启动服务，服务器重启它是会依靠 systemd 自己启动的。&lt;/p&gt;

&lt;p&gt;然后就可以试用这个 Agent 了。&lt;/p&gt;

&lt;p&gt;在公众号输入 &lt;code&gt;名字 help&lt;/code&gt; ，看看 Agent 自己的帮助。&lt;br&gt;
这个官方的通用 Agent 功能由你部署它的服务器上的 &lt;code&gt;/etc/skadi/skadi.yml&lt;/code&gt; 这个配置文件定义。&lt;/p&gt;

&lt;p&gt;然后你可以顺次输入&lt;code&gt;名字 date&lt;/code&gt;,&lt;code&gt;名字 lsroot&lt;/code&gt;,&lt;code&gt;名字 free -m&lt;/code&gt;,&lt;code&gt;名字 Hi Fool&lt;/code&gt;,
去试用，接下来，更改配置文件就可以完成重启服务，查看状态等简单的动作了。&lt;/p&gt;

&lt;p&gt;只是想现在看看的话，也可以看看&lt;a href="https://github.com/hack-fan/skadi-agent-shell/blob/main/example.skadi.yml" rel="nofollow" target="_blank" title=""&gt;代码仓库的版本&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="更多功能"&gt;更多功能&lt;/h2&gt;
&lt;p&gt;因为目前只是提供了一个舞台，更多的功能在持续的发掘中，我们会陆续更新文档中的 cookbook：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;在 CI 服务中通知微信，甚至直接给 Agent 发任务进行持续部署&lt;/li&gt;
&lt;li&gt;Agent 之间链式发送任务配合完成工作&lt;/li&gt;
&lt;li&gt;集成在业务系统中当作一个简单的控制台，比如清除缓存，封禁用户等操作，微信上就搞定了。&lt;/li&gt;
&lt;li&gt;当成一个&lt;a href="https://letserver.run/docs/basic/delayed-queue/" rel="nofollow" target="_blank" title=""&gt;延迟队列&lt;/a&gt;使用&lt;/li&gt;
&lt;li&gt;控制家里的电脑&lt;/li&gt;
&lt;li&gt;控制路由器或者 NAS&lt;/li&gt;
&lt;li&gt;更多用法等待你开发脑洞~&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;最后，二维码在这里哦，暂时用不到也可以扫扫留着备用，只有重大更新才会推送通知，平时 0 骚扰哦。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://static.crandom.com/hackfan/letserverrun.jpg" title="" alt="LetServerRun"&gt;&lt;/p&gt;</description>
      <author>muninn</author>
      <pubDate>Fri, 07 May 2021 11:41:04 +0800</pubDate>
      <link>https://w2solo.com/topics/2611</link>
      <guid>https://w2solo.com/topics/2611</guid>
    </item>
  </channel>
</rss>
