<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title>运维 - 分类 - lihuu — 系统工程、AI 工具链与 Rust 开发博客</title>
        <link>https://silentstormic.top/categories/%E8%BF%90%E7%BB%B4/</link>
        <description>运维 - 分类 - lihuu — 系统工程、AI 工具链与 Rust 开发博客</description>
        <generator>Hugo -- gohugo.io</generator><language>zh-CN</language><lastBuildDate>Wed, 11 Jun 2025 20:37:19 &#43;0800</lastBuildDate><atom:link href="https://silentstormic.top/categories/%E8%BF%90%E7%BB%B4/" rel="self" type="application/rss+xml" /><item>
    <title>macOS Tahoe 26 Linux 容器初探</title>
    <link>https://silentstormic.top/post/mac-container-first-step/</link>
    <pubDate>Wed, 11 Jun 2025 20:37:19 &#43;0800</pubDate>
    <author>lihuu</author>
    <guid>https://silentstormic.top/post/mac-container-first-step/</guid>
    <description><![CDATA[<p>苹果在 macOS Tahoe 26 中引入了一项令人瞩目的新功能：原生 Linux 容器支持。这个名为 <code>container</code> 的工具让我们可以在 Mac 上直接运行 Linux 容器，而无需依赖 Docker Desktop 这样的第三方解决方案。</p>
<p>与传统的容器运行方式不同，苹果采用了&quot;一容器一虚拟机&quot;的独特架构，为每个容器提供独立的轻量级虚拟机环境。这种设计在安全性、隐私保护和性能方面都有显著优势。</p>]]></description>
</item>
<item>
    <title>Kubernetes 二进制部署：从零搭建单 Master 集群</title>
    <link>https://silentstormic.top/post/k8s-binary-install/</link>
    <pubDate>Thu, 22 May 2025 13:35:24 &#43;0800</pubDate>
    <author>lihuu</author>
    <guid>https://silentstormic.top/post/k8s-binary-install/</guid>
    <description><![CDATA[<p>使用 kubeadm 部署 Kubernetes 集群很方便，但它隐藏了底层细节。通过二进制方式手动部署，可以深入理解每个组件的作用和协作方式。</p>
<p>本文在 <a href="/post/etcd/" rel="">etcd 集群</a> 已部署的基础上，搭建单 Master 节点的 Kubernetes 集群。</p>
<h2 id="架构概览">架构概览</h2>
<p>单 Master 架构中，Master 节点运行控制平面组件，Worker 节点运行工作负载：</p>
<p></p>
<h3 id="核心组件">核心组件</h3>
<table>
  <thead>
      <tr>
          <th>组件</th>
          <th>运行位置</th>
          <th>作用</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><strong>kube-apiserver</strong></td>
          <td>Master</td>
          <td>集群入口，所有操作的统一接口</td>
      </tr>
      <tr>
          <td><strong>etcd</strong></td>
          <td>Master</td>
          <td>分布式键值存储，保存集群状态</td>
      </tr>
      <tr>
          <td><strong>kube-controller-manager</strong></td>
          <td>Master</td>
          <td>控制循环，确保实际状态匹配期望状态</td>
      </tr>
      <tr>
          <td><strong>kube-scheduler</strong></td>
          <td>Master</td>
          <td>将 Pod 调度到合适的 Node</td>
      </tr>
      <tr>
          <td><strong>kubelet</strong></td>
          <td>Worker</td>
          <td>管理 Pod 生命周期，汇报节点状态</td>
      </tr>
      <tr>
          <td><strong>kube-proxy</strong></td>
          <td>Worker</td>
          <td>实现 Service 网络代理和负载均衡</td>
      </tr>
  </tbody>
</table>
<h3 id="组件协作流程">组件协作流程</h3>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-text">
        <span class="code-title"><i class="arrow fas fa-angle-right fa-fw" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h fa-fw" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy fa-fw" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">kubectl create deployment nginx --image=nginx
</span></span><span class="line"><span class="cl">        │
</span></span><span class="line"><span class="cl">        ▼
</span></span><span class="line"><span class="cl">  kube-apiserver ──→ etcd（存储期望状态）
</span></span><span class="line"><span class="cl">        │
</span></span><span class="line"><span class="cl">        ▼
</span></span><span class="line"><span class="cl">  controller-manager（创建 ReplicaSet → 创建 Pod）
</span></span><span class="line"><span class="cl">        │
</span></span><span class="line"><span class="cl">        ▼
</span></span><span class="line"><span class="cl">  scheduler（选定 Node，写入 Pod.Spec.NodeName）
</span></span><span class="line"><span class="cl">        │
</span></span><span class="line"><span class="cl">        ▼
</span></span><span class="line"><span class="cl">  kubelet（watch 到分配给自己的 Pod，拉起容器）
</span></span><span class="line"><span class="cl">        │
</span></span><span class="line"><span class="cl">        ▼
</span></span><span class="line"><span class="cl">  kube-proxy（配置 iptables/IPVS 规则，实现 Service 访问）</span></span></code></pre></div></div>
<h2 id="前置条件">前置条件</h2>
<table>
  <thead>
      <tr>
          <th>条件</th>
          <th>说明</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>etcd 集群</td>
          <td>已部署，参考 <a href="/post/etcd/" rel="">etcd 集群部署</a></td>
      </tr>
      <tr>
          <td>操作系统</td>
          <td>Linux（本文以 Ubuntu 为例）</td>
      </tr>
      <tr>
          <td>容器运行时</td>
          <td>containerd 或 Docker 已安装，参考 <a href="/post/docker%e5%85%a5%e9%97%a8/" rel="">Docker 入门</a></td>
      </tr>
      <tr>
          <td>网络</td>
          <td>节点间互通，关闭 swap</td>
      </tr>
  </tbody>
</table>
<h3 id="关闭-swap">关闭 swap</h3>
<p>Kubernetes 默认要求关闭 swap：</p>]]></description>
</item>
<item>
    <title>在Windows上快速创建虚拟机</title>
    <link>https://silentstormic.top/post/hyper-v/</link>
    <pubDate>Mon, 19 May 2025 15:19:01 &#43;0800</pubDate>
    <author>lihuu</author>
    <guid>https://silentstormic.top/post/hyper-v/</guid>
    <description><![CDATA[<p><a href="https://silentstormic.top/post/kvm/" target="_blank" rel="noopener noreffer ">上一篇文章</a>，我们实现了在 Linux 中快速创建虚拟机，就是使用 cloud init 初始化虚拟机设置，然后使用脚本快速创建，上面的创建过程在 windows wsl2 中也是完全可行的，毕竟 wsl2 其实本质上也是运行了一台虚拟机，在虚拟机中，再创建虚拟机完全可行的，今天我们来探索一下在 windows 平台上自带的 hyper-v 上创建虚拟机，创建的过程和上一篇文章中的类似，也是使用 cloud init 搭配 脚本。</p>]]></description>
</item>
<item>
    <title>在Linux上快速创建虚拟机</title>
    <link>https://silentstormic.top/post/kvm/</link>
    <pubDate>Thu, 15 May 2025 23:02:22 &#43;0800</pubDate>
    <author>lihuu</author>
    <guid>https://silentstormic.top/post/kvm/</guid>
    <description><![CDATA[<p>今天我们来聊一聊，怎么在 KVM 上快速创建虚拟机，首先什么是 KVM 呢？</p>
<p>KVM 的全称是 <strong>Kernel-based Virtual Machine</strong>，即基于内核的虚拟机。它是一种内建于 Linux 内核的开源虚拟化技术。不过 KVM 只是一个内核模块，单独的 KVM 不能看作一个完整的虚拟机软件。好在 Linux 中还有另一个强大的工具 <strong>QEMU</strong>。QEMU 提供了完整的虚拟化能力，但原始的 QEMU 只提供软件模拟，性能不是很高。而当我们在 QEMU 中集成 KVM 后，就能获得接近裸机的性能，这正是我们想要的。</p>]]></description>
</item>
<item>
    <title>Kubernetes集群安装</title>
    <link>https://silentstormic.top/post/kubenertas/</link>
    <pubDate>Sun, 30 Jul 2023 21:51:01 &#43;0800</pubDate>
    <author>lihuu</author>
    <guid>https://silentstormic.top/post/kubenertas/</guid>
    <description><![CDATA[<h2 id="安装">安装</h2>
<p>我们只是搭建一个 mini 的类似于真实的 kubernetes 环境，用来自己学习，我们也可以选择安装 minikube</p>
<h4 id="安装前的准备工作">安装前的准备工作</h4>
<ol>
<li>
<p>修改 hostname，因为 kubernetes 使用 hostname 来区分集群</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right fa-fw" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h fa-fw" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy fa-fw" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sudo vim /etc/hostname</span></span></code></pre></div></div>
</li>
<li>
<p>使用 docker 作为容器运行时，kubernetes 支持多种容器运行时，使用 docker 比较方便。</p>
<div class="code-block code-line-numbers" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right fa-fw" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h fa-fw" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy fa-fw" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cat <span class="s">&lt;&lt;EOF | sudo tee /etc/docker/daemon.json
</span></span></span><span class="line"><span class="cl"><span class="s">{
</span></span></span><span class="line"><span class="cl"><span class="s">  &#34;exec-opts&#34;: [&#34;native.cgroupdriver=systemd&#34;],
</span></span></span><span class="line"><span class="cl"><span class="s">  &#34;log-driver&#34;: &#34;json-file&#34;,
</span></span></span><span class="line"><span class="cl"><span class="s">  &#34;log-opts&#34;: {
</span></span></span><span class="line"><span class="cl"><span class="s">    &#34;max-size&#34;: &#34;100m&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">  },
</span></span></span><span class="line"><span class="cl"><span class="s">  &#34;storage-driver&#34;: &#34;overlay2&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">}
</span></span></span><span class="line"><span class="cl"><span class="s">EOF</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">sudo systemctl <span class="nb">enable</span> docker
</span></span><span class="line"><span class="cl">sudo systemctl daemon-reload
</span></span><span class="line"><span class="cl">sudo systemctl restart docker</span></span></code></pre></div></div>
</li>
<li>
<p>修改 iptables 的配置，启用&quot;br_netfilter&quot;</p>]]></description>
</item>
<item>
    <title>Zabbix 入门</title>
    <link>https://silentstormic.top/post/head-first-zabbix/</link>
    <pubDate>Tue, 11 Apr 2023 17:21:04 &#43;0800</pubDate>
    <author>lihuu</author>
    <guid>https://silentstormic.top/post/head-first-zabbix/</guid>
    <description><![CDATA[<h3 id="安装">安装</h3>
<p></p>
<p>这里选用了如上的配置</p>
<h4 id="1-安装-zabbix-repository">1. 安装 Zabbix repository</h4>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right fa-fw" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h fa-fw" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy fa-fw" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-1+ubuntu20.04_all.deb
</span></span><span class="line"><span class="cl">sudo dpkg -i zabbix-release_6.0-1+ubuntu20.04_all.deb
</span></span><span class="line"><span class="cl">sudo apt update</span></span></code></pre></div></div>
<h4 id="2-安装-zabbix-serverweb-前端agent">2. 安装 Zabbix server，Web 前端，agent</h4>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right fa-fw" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h fa-fw" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy fa-fw" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent</span></span></code></pre></div></div>
<h4 id="3-创建初始数据库">3. 创建初始数据库</h4>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-sql">
        <span class="code-title"><i class="arrow fas fa-angle-right fa-fw" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h fa-fw" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy fa-fw" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sql" data-lang="sql"><span class="line"><span class="cl"><span class="k">create</span><span class="w"> </span><span class="k">database</span><span class="w"> </span><span class="n">zabbix</span><span class="w"> </span><span class="nb">character</span><span class="w"> </span><span class="k">set</span><span class="w"> </span><span class="n">utf8mb4</span><span class="w"> </span><span class="k">collate</span><span class="w"> </span><span class="n">utf8mb4_bin</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="k">create</span><span class="w"> </span><span class="k">user</span><span class="w"> </span><span class="n">zabbix</span><span class="o">@</span><span class="n">localhost</span><span class="w"> </span><span class="n">identified</span><span class="w"> </span><span class="k">by</span><span class="w"> </span><span class="s1">&#39;password&#39;</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="k">grant</span><span class="w"> </span><span class="k">all</span><span class="w"> </span><span class="k">privileges</span><span class="w"> </span><span class="k">on</span><span class="w"> </span><span class="n">zabbix</span><span class="p">.</span><span class="o">*</span><span class="w"> </span><span class="k">to</span><span class="w"> </span><span class="n">zabbix</span><span class="o">@</span><span class="n">localhost</span><span class="p">;</span></span></span></code></pre></div></div>
<h4 id="4-导入初始架构和数据">4. 导入初始架构和数据</h4>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right fa-fw" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h fa-fw" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy fa-fw" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">zcat /usr/share/doc/zabbix-sql-scripts/mysql/server.sql.gz <span class="p">|</span> mysql -uzabbix -p zabbix</span></span></code></pre></div></div>
<h4 id="5-配置数据库">5. 配置数据库</h4>
<p>编辑配置文件 /etc/zabbix/zabbix_server.conf</p>]]></description>
</item>
<item>
    <title>Docker 入门：从安装到实战的完整指南</title>
    <link>https://silentstormic.top/post/docker-getting-started/</link>
    <pubDate>Sun, 06 Jun 2021 21:32:21 &#43;0800</pubDate>
    <author>lihuu</author>
    <guid>https://silentstormic.top/post/docker-getting-started/</guid>
    <description><![CDATA[<p>Docker 是目前最主流的容器化工具，它将应用及其依赖打包成一个轻量级、可移植的容器，解决&quot;在我机器上能跑&quot;的经典问题。相比传统虚拟机，Docker 容器共享宿主机内核，启动速度从分钟级降到秒级，资源占用也大幅降低。</p>
<h2 id="核心概念">核心概念</h2>
<p>在使用 Docker 之前，需要理解三个核心概念：</p>
<table>
  <thead>
      <tr>
          <th>概念</th>
          <th>说明</th>
          <th>类比</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><strong>镜像（Image）</strong></td>
          <td>只读的应用模板，包含代码、运行时、依赖</td>
          <td>Java 的 <code>.class</code> 文件</td>
      </tr>
      <tr>
          <td><strong>容器（Container）</strong></td>
          <td>镜像的运行实例，可读写</td>
          <td>JVM 中运行的进程</td>
      </tr>
      <tr>
          <td><strong>仓库（Registry）</strong></td>
          <td>存储和分发镜像的服务</td>
          <td>Maven Central</td>
      </tr>
  </tbody>
</table>
<p>它们的关系：从<strong>仓库</strong>拉取<strong>镜像</strong>，用镜像创建<strong>容器</strong>运行。</p>]]></description>
</item>
<item>
    <title>Percona XtraBackup</title>
    <link>https://silentstormic.top/post/XtraBackup/</link>
    <pubDate>Tue, 24 Nov 2020 22:36:04 &#43;0800</pubDate>
    <author>lihuu</author>
    <guid>https://silentstormic.top/post/XtraBackup/</guid>
    <description><![CDATA[<h4 id="介绍">介绍</h4>
<p>Persona Xtrabackup 是 MySQL 中的一个免费的热备份工具。它针对 InnoDB 和 XtraDB 提供了无锁的热备份。它有如下几个特点：</p>
<ul>
<li>可靠的快速备份。</li>
<li>备份时不中断事务处理。</li>
<li>节省硬盘空间和网络带宽。</li>
<li>自动的备份校验。</li>
<li>快速的数据恢复。</li>
<li>支持 InnoDB no-blocking 热备份。</li>
<li>支持增量备份。</li>
<li>支持压缩流式备份到另一台服务器</li>
<li>在不同的服务器中在线迁移表。</li>
</ul>
<h4 id="前提">前提</h4>
<h5 id="需要账号和密码连接服务器">需要账号和密码连接服务器</h5>
<p><code>xtrabackup --user=user --password=password --backup --target-dir=/data/backup</code>
除此之外,<code>--port</code>可以指定端口，<code>--socket</code>指定使用 localhost 本地连接的 socket 文件的位置，<code>--host</code>指定 tcp/ip 链接的时候的地址。</p>]]></description>
</item>
<item>
    <title>MySQL备份方案</title>
    <link>https://silentstormic.top/post/MySQL%E5%A4%87%E4%BB%BD%E6%96%B9%E6%A1%88/</link>
    <pubDate>Tue, 04 Aug 2020 16:24:35 &#43;0800</pubDate>
    <author>lihuu</author>
    <guid>https://silentstormic.top/post/MySQL%E5%A4%87%E4%BB%BD%E6%96%B9%E6%A1%88/</guid>
    <description><![CDATA[<h4 id="备份前准备">备份前准备</h4>
<p>创建单独用于备份的用户，并授予相应的权限</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-sql">
        <span class="code-title"><i class="arrow fas fa-angle-right fa-fw" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h fa-fw" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy fa-fw" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sql" data-lang="sql"><span class="line"><span class="cl"><span class="k">create</span><span class="w"> </span><span class="k">user</span><span class="w"> </span><span class="n">db_backup</span><span class="o">@</span><span class="s1">&#39;localhost&#39;</span><span class="w"> </span><span class="n">identified</span><span class="w"> </span><span class="k">by</span><span class="w"> </span><span class="s1">&#39;backup123&#39;</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="k">grant</span><span class="w"> </span><span class="k">select</span><span class="p">,</span><span class="k">lock</span><span class="w"> </span><span class="n">tables</span><span class="p">,</span><span class="k">show</span><span class="w"> </span><span class="k">view</span><span class="p">,</span><span class="k">trigger</span><span class="p">,</span><span class="n">event</span><span class="w"> </span><span class="k">on</span><span class="w"> </span><span class="n">backup_database</span><span class="p">.</span><span class="o">*</span><span class="w"> </span><span class="k">to</span><span class="w"> </span><span class="n">db_backup</span><span class="o">@</span><span class="s1">&#39;localhost&#39;</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="k">grant</span><span class="w"> </span><span class="n">reload</span><span class="p">,</span><span class="n">Replication</span><span class="w"> </span><span class="n">client</span><span class="w"> </span><span class="k">on</span><span class="w"> </span><span class="o">*</span><span class="p">.</span><span class="o">*</span><span class="w"> </span><span class="k">to</span><span class="w"> </span><span class="n">db_backup</span><span class="o">@</span><span class="s1">&#39;localhost&#39;</span><span class="p">;</span></span></span></code></pre></div></div>
<h4 id="方案-1全量逻辑备份使用-mysqldump方案-1">方案 1：全量逻辑备份(使用 mysqldump,方案 1)</h4>
<p>备份</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right fa-fw" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h fa-fw" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy fa-fw" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/bash
</span></span></span><span class="line"><span class="cl"><span class="nv">backup_file_name</span><span class="o">=</span>db_backup_<span class="sb">`</span>date <span class="s1">&#39;+%Y-%m-%d&#39;</span><span class="sb">`</span>.sql.gz
</span></span><span class="line"><span class="cl">mysqldump -udb_backup -pbackup123 --single-transaction --flush-logs --master-data<span class="o">=</span><span class="m">2</span> backup_database <span class="p">|</span> gzip &gt; <span class="nv">$backup_file_name</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="o">[</span> -e <span class="nv">$backup_file_name</span> <span class="o">]</span> <span class="p">;</span><span class="k">then</span>
</span></span><span class="line"><span class="cl">   <span class="nb">echo</span> <span class="s2">&#34;Start to copy files&#34;</span>
</span></span><span class="line"><span class="cl"><span class="c1">#   scp $backup_file_name  lihu@ubuntu-vm-02:/home/lihu</span>
</span></span><span class="line"><span class="cl"><span class="k">else</span>
</span></span><span class="line"><span class="cl">   <span class="nb">echo</span> <span class="s2">&#34;No file to copy&#34;</span>
</span></span><span class="line"><span class="cl"><span class="k">fi</span></span></span></code></pre></div></div>
<blockquote>
<p>额外的参数
<code>--skip-add-drop-table</code>：生成的备份文件中不要有 drop table 的语句，默认是有的。
<code>--no-data</code>：不导出数据，仅导出表结构
<code>--no-create-info</code>：不导出建表语句，仅导出数据</p>]]></description>
</item>
<item>
    <title>Linux使用</title>
    <link>https://silentstormic.top/post/Linux%E4%BD%BF%E7%94%A8%E8%AE%B0%E5%BD%95/</link>
    <pubDate>Thu, 30 May 2019 22:18:47 &#43;0800</pubDate>
    <author>lihuu</author>
    <guid>https://silentstormic.top/post/Linux%E4%BD%BF%E7%94%A8%E8%AE%B0%E5%BD%95/</guid>
    <description><![CDATA[<h4 id="一ssh-服务">一、ssh 服务</h4>
<h5 id="安装">安装</h5>
<ul>
<li>查看 ssh 是否安装
输入命令：<code>rpm -qa|grep ssh</code>
如果没有安装 SSH 则可以输入：<code>yum install openssh-server</code></li>
<li>启动 SSH 服 n 务
<code>service sshd start</code></li>
<li>设置 ssh 为开机启动
输入命令<code>chkconfig sshd on</code> 即可。
注：若是<code>chkconfig sshd off</code>则禁止 SSH 开机启动。
也可以使用<code>systemctl</code>来开启自启动，
<code>systemctl enable sshd</code></li>
</ul>
<h5 id="配置">配置</h5>
<ul>
<li>修改端口号：修改<code>/etc/ssh/sshd_config</code>文件，找到 port 修改即可</li>
</ul>
<h5 id="简单的使用">简单的使用</h5>
<ul>
<li>连接服务器<code>ssh -p [port] user@host</code></li>
<li>使用 scp <code>scp -P port src des(user@host:path)</code></li>
</ul>
<h4 id="三让程序在后台启动">三、让程序在后台启动</h4>
<p>思路：当用户注销或者断开网络的时候，终端会收到 HU（hangup）信号从而关闭其所有的子进程。因此解决方案就有两种，要么让进程忽略 HUP 信号，要么让进程运行在新的会话里面从而成为不属于此终端的子进程。</p>]]></description>
</item>
</channel>
</rss>
