<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Linux on Thinking</title>
    <link>https://varkai.com/tags/linux/</link>
    <description>Recent content in Linux on Thinking</description>
    <generator>Hugo</generator>
    <language>zh</language>
    <copyright>2026</copyright>
    <lastBuildDate>Thu, 28 May 2020 08:47:43 +0800</lastBuildDate>
    <atom:link href="https://varkai.com/tags/linux/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Linux 下使用 NUT 实现断电自动关机</title>
      <link>https://varkai.com/posts/f5bf0730/</link>
      <pubDate>Thu, 28 May 2020 08:47:43 +0800</pubDate>
      <guid>https://varkai.com/posts/f5bf0730/</guid>
      <description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;
&lt;p&gt;在前面 &lt;a href=&#34;https://varkai.com/posts/0e7551f9&#34;&gt;《群晖和UPS的联姻》&lt;/a&gt; 中，我们完成了群晖连接 UPS 并实现了断电自动关机，同时也启用了网络 UPS 服务器，但这也只限于和 UPS 直接连接的群晖，其他局域网中的服务器还无法监控 UPS 的状态，前面提到，服务器上安装 NUT 客户端软件就能实现，所以这一回主要讲解如何在 Linux 系统下安装 NUT 客户端软件并实现断电自动关机。&lt;/p&gt;
&lt;p&gt;我这里使用的 Linux 发行版是 Ubuntu server 20.04 LTS，所以 Debian 系的发行版安装配置都是一样的，其他的发行版操作大同小异。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;准备工作&#34;&gt;准备工作&lt;/h2&gt;
&lt;p&gt;首先我们需要先进到群晖 WEB 后台，依次打开 &lt;code&gt;控制面板&lt;/code&gt; - &lt;code&gt;硬件和电源&lt;/code&gt;，切换到 &lt;code&gt;不断电系统&lt;/code&gt; 选项卡，找到 &lt;code&gt;启用网络 UPS 服务器&lt;/code&gt;，确保已经勾选，接着点击下方的 &lt;code&gt;允许的 DiskStation 设备&lt;/code&gt;， 这时会弹出一个输入 IP 的对话框，这里填写的 IP 地址是局域网其他需要网络监控 UPS 状态的服务器 IP 地址，只有在这里列出的 IP 地址所对应的服务器才能实现网络监控，这里最多支持5台服务器，我这里 Ubuntu server 的 IP 是 192.168.98.210，我们把它填进去后点击确认就行了。&lt;/p&gt;
&lt;figure class=&#34;align-center &#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;https://varkai.com/images/f5bf0730/1.png#center&#34;/&gt; 
&lt;/figure&gt;

&lt;hr&gt;
&lt;h2 id=&#34;安装-nut-客户端&#34;&gt;安装 NUT 客户端&lt;/h2&gt;
&lt;p&gt;NUT 提供了源码，我们可以直接源码编译安装，但太麻烦了，而且基本上各大发行版的软件仓库都有现成的包，所以我们直接用 apt 安装就行了。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo apt install nut-client
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;安装好后，我们可以检查下是否安装成功，在终端执行 &lt;code&gt;upsc ups@192.168.99.10&lt;/code&gt; 后，如果能够显示网络 UPS 的详细信息则代表安装成功了，其中 &lt;code&gt;192.168.99.10&lt;/code&gt; 是网络 UPS 服务器的 IP 地址，在这里也就是群晖的 IP 地址。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Oracle Linux 7 安装 Oracle Database 12c</title>
      <link>https://varkai.com/posts/9095ce34/</link>
      <pubDate>Sat, 08 Jun 2019 14:43:31 +0800</pubDate>
      <guid>https://varkai.com/posts/9095ce34/</guid>
      <description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;
&lt;p&gt;之前工作数据库一直使用的 Oracle Database 11g，所使用的系统是 Oracle Linux 6，鉴于两者都比较老旧，而且都停止维护支持了，所以今后再部署数据库，肯定会使用较新的系统和数据库，于是这一阵先在虚拟机里折腾折腾，把安装文档整理出来，方便以后安装部署，下面是我的安装环境：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;虚拟机软件：VMware Workstation 15 Pro&lt;!-- raw HTML omitted --&gt;
虚拟机：Oracle Linux 7.8&lt;!-- raw HTML omitted --&gt;
数据库：Oracle Database 12c Release 2&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;下面是安装 Oracle 12c 数据库对系统的一些关键要求：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;分类&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;要求&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;内存&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;至少1GB&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;/tmp&lt;/code&gt; 目录&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;至少1GB&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;swap&lt;/code&gt; 分区&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;内存在1GB到2GB之间：大小为内存的1.5倍&lt;!-- raw HTML omitted --&gt;内存在2GB到16GB之间：大小和内存大小一致&lt;!-- raw HTML omitted --&gt;内存大于16GB：大小为16GB&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id=&#34;安装环境配置&#34;&gt;安装环境配置&lt;/h2&gt;
&lt;p&gt;首先通过 SSH 连接或者本地登入到 Oracle Linux 系统，以下命令执行用户除非特别指出，默认为 root 用户。&lt;/p&gt;
&lt;h3 id=&#34;配置-hosts-和-network&#34;&gt;配置 hosts 和 network&lt;/h3&gt;
&lt;p&gt;这里需要在 &lt;code&gt;/etc/hosts&lt;/code&gt; 文件中添加一行主机 IP 指向 HOSTNAME 的一行记录，另外需要在 &lt;code&gt;/etc/sysconfig/network&lt;/code&gt; 文件中添加一行 &lt;code&gt;HOSTNAME&lt;/code&gt; 的变量，如果这里不设置，数据库安装过程中的网络配置会报错。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux 系统释放 Cached 内存</title>
      <link>https://varkai.com/posts/4badafaa/</link>
      <pubDate>Sat, 25 Aug 2018 21:22:52 +0800</pubDate>
      <guid>https://varkai.com/posts/4badafaa/</guid>
      <description>&lt;h2 id=&#34;查看内存使用情况&#34;&gt;查看内存使用情况&lt;/h2&gt;
&lt;p&gt;在终端执行 &lt;code&gt;free -h&lt;/code&gt;，可以查询系统内存的具体使用情况，可以看到我这里 &lt;code&gt;cached&lt;/code&gt; 占用了17G的内存。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ free -h
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;             total       used       free     shared    buffers     cached
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Mem:           62G        18G        43G        14G       284M        17G
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-/+ buffers/cache:       1.1G        61G
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Swap:          31G         0B        31G
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;hr&gt;
&lt;h2 id=&#34;释放-cached&#34;&gt;释放 cached&lt;/h2&gt;
&lt;p&gt;为了安全起见，首先使用 &lt;code&gt;sync&lt;/code&gt; 命令将系统 &lt;code&gt;buffer&lt;/code&gt; 中的数据强制写入硬盘中，然后再执行内存释放命令，其中有3种释放方式，可以根据下方备注选择相应的方式。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 释放 pagecache&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sync
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &amp;gt; /proc/sys/vm/drop_caches
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 释放 dentries and inodes&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sync
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;2&lt;/span&gt; &amp;gt; /proc/sys/vm/drop_caches
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 释放 pagecache, dentries and inodes&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sync
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;3&lt;/span&gt; &amp;gt; /proc/sys/vm/drop_caches
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;hr&gt;
&lt;h2 id=&#34;还原系统默认配置&#34;&gt;还原系统默认配置&lt;/h2&gt;
&lt;p&gt;释放内存后，再将内存释放方式还原成默认。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
