<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>🏰linlink~个人笔记🏰</title>
  
  <subtitle>笔记笔记什么都想记</subtitle>
  <link href="https://www.linlink.xyz/atom.xml" rel="self"/>
  
  <link href="https://www.linlink.xyz/"/>
  <updated>2024-01-26T09:52:07.240Z</updated>
  <id>https://www.linlink.xyz/</id>
  
  <author>
    <name>linlink</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>4.0私服搭建</title>
    <link href="https://www.linlink.xyz/posts/8876d3a1.html"/>
    <id>https://www.linlink.xyz/posts/8876d3a1.html</id>
    <published>2024-01-25T07:00:35.000Z</published>
    <updated>2024-01-26T09:52:07.240Z</updated>
    
    <content type="html"><![CDATA[<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">此篇教会你如何在Linux系统,CentOS 7发行版本上搭建私服<br>建议操作前先在虚拟机上执行一遍                                                                 <br></code></pre></td></tr></table></figure><h1 id="基本环境安装"><a href="#基本环境安装" class="headerlink" title="基本环境安装"></a>基本环境安装</h1><h2 id="CentOS-7安装jdk17环境"><a href="#CentOS-7安装jdk17环境" class="headerlink" title="CentOS 7安装jdk17环境"></a>CentOS 7安装jdk17环境</h2><p>进入一个比较干净的目录</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">cd /opt<br></code></pre></td></tr></table></figure><p>安装一些基本工具</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">yum -y install wget unzip vim git<br></code></pre></td></tr></table></figure><p>下载jdk17安装包</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm<br></code></pre></td></tr></table></figure><p>利用yum工具安装jdk17</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">yum -y install ./jdk-17_linux-x64_bin.rpm<br></code></pre></td></tr></table></figure><p>查看版本并检验安装是否成功</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">java -version<br></code></pre></td></tr></table></figure><h2 id="安装Mongodb-7-0-5"><a href="#安装Mongodb-7-0-5" class="headerlink" title="安装Mongodb 7.0.5"></a>安装Mongodb 7.0.5</h2><p>配置mongodb下载仓库</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">echo &quot;[mongodb-org-7.0]<br>name=MongoDB Repository<br>baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/7.0/x86_64/<br>gpgcheck=1<br>enabled=1<br>gpgkey=https://pgp.mongodb.com/server-7.0.asc&quot; &gt; /etc/yum.repos.d/mongodb-org-7.0.repo<br></code></pre></td></tr></table></figure><p>清理repo仓库缓存，并安装mongodb，如果你是国内的网速，那么很大可能会下载失败，有必要还是上代理</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">yum clean all &amp;&amp; yum makecache<br>yum install -y mongodb-org<br></code></pre></td></tr></table></figure><p>启动数据库，并设置开机自启动</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">systemctl enable mongod &amp;&amp; systemctl start mongod<br></code></pre></td></tr></table></figure><p>查看启动状态，必须处于running状态</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">systemctl status mongod<br></code></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;figure class=&quot;highlight plaintext&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;1&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;2&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;</summary>
      
    
    
    
    <category term="Yuanshen" scheme="https://www.linlink.xyz/categories/Yuanshen/"/>
    
    
    <category term="Yuanshen" scheme="https://www.linlink.xyz/tags/Yuanshen/"/>
    
  </entry>
  
  <entry>
    <title>Linux Install</title>
    <link href="https://www.linlink.xyz/posts/406c93a9.html"/>
    <id>https://www.linlink.xyz/posts/406c93a9.html</id>
    <published>2023-05-02T07:00:34.000Z</published>
    <updated>2023-05-02T07:51:16.664Z</updated>
    
    <content type="html"><![CDATA[<h1 id="JDK"><a href="#JDK" class="headerlink" title="JDK"></a>JDK</h1><details class="toggle" ><summary class="toggle-button" style="">点击查看</summary><div class="toggle-content"><h2 id="安装wget"><a href="#安装wget" class="headerlink" title="安装wget"></a>安装wget</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">yum -y install wget<br></code></pre></td></tr></table></figure><h2 id="wget下载jdk11的包"><a href="#wget下载jdk11的包" class="headerlink" title="wget下载jdk11的包"></a>wget下载jdk11的包</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">wget https://llwp.linlink.xyz/d/%E8%BD%AF%E4%BB%B6%E7%B3%BB%E5%88%97/Linux_x64%20java/jdk-11.0.16_linux-x64_bin.tar.gz<br></code></pre></td></tr></table></figure><h2 id="解压"><a href="#解压" class="headerlink" title="解压"></a>解压</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">tar -zxvf jdk-11.0.16_linux-x64_bin.tar.gz<br></code></pre></td></tr></table></figure><h2 id="移到-x2F-usr-x2F-local-x2F-目录下"><a href="#移到-x2F-usr-x2F-local-x2F-目录下" class="headerlink" title="移到&#x2F;usr&#x2F;local&#x2F;目录下"></a>移到&#x2F;usr&#x2F;local&#x2F;目录下</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">mv jdk-11.0.16 jdk-11<br>mv jdk-11 /usr/local/<br></code></pre></td></tr></table></figure><h2 id="配置环境变量"><a href="#配置环境变量" class="headerlink" title="配置环境变量"></a>配置环境变量</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">echo &#x27;export JAVA_HOME=/usr/local/jdk-11<br>export PATH=$PATH:$JAVA_HOME/bin<br>export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar<br>&#x27; &gt;&gt; /etc/profile<br></code></pre></td></tr></table></figure><h2 id="检查"><a href="#检查" class="headerlink" title="检查"></a>检查</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">source /etc/profile<br>java -version<br></code></pre></td></tr></table></figure></div></details><h1 id="Tomcat"><a href="#Tomcat" class="headerlink" title="Tomcat"></a>Tomcat</h1><details class="toggle" ><summary class="toggle-button" style="">点击查看</summary><div class="toggle-content"><h2 id="下载tomcat9-0版本"><a href="#下载tomcat9-0版本" class="headerlink" title="下载tomcat9.0版本"></a>下载tomcat9.0版本</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">yum install -y wget &amp;&amp; wget https://llwp.linlink.xyz/d/cloudcompute/test/apache-tomcat-9.0.74.tar.gz<br></code></pre></td></tr></table></figure><h2 id="解压"><a href="#解压" class="headerlink" title="解压"></a>解压</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">tar -zxvf apache-tomcat-9.0.74.tar.gz<br></code></pre></td></tr></table></figure><h2 id="移到-x2F-usr-x2F-local-x2F-目录下"><a href="#移到-x2F-usr-x2F-local-x2F-目录下" class="headerlink" title="移到&#x2F;usr&#x2F;local&#x2F;目录下"></a>移到&#x2F;usr&#x2F;local&#x2F;目录下</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">mv apache-tomcat-9.0.74 tomcat-9.0<br>mv tomcat-9.0 /usr/local/<br></code></pre></td></tr></table></figure><h2 id="启动tomcat"><a href="#启动tomcat" class="headerlink" title="启动tomcat"></a>启动tomcat</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">sh /usr/local/tomcat-9.0/bin/startup.sh<br></code></pre></td></tr></table></figure><h2 id="修改默认端口"><a href="#修改默认端口" class="headerlink" title="修改默认端口"></a>修改默认端口</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">vi /usr/local/tomcat-9.0/conf/server.xml<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">&lt;Connector port=&quot;8080&quot; protocol=&quot;HTTP/1.1&quot;<br>              connectionTimeout=&quot;20000&quot;<br>              redirectPort=&quot;8443&quot;<br>              maxParameterCount=&quot;1000&quot;<br>              /&gt;<br></code></pre></td></tr></table></figure></div></details><h1 id="MySQL-5-7"><a href="#MySQL-5-7" class="headerlink" title="MySQL_5.7"></a>MySQL_5.7</h1><details class="toggle" ><summary class="toggle-button" style="">点击查看</summary><div class="toggle-content"><h2 id="下载wget、wget下载MySQL的tar包"><a href="#下载wget、wget下载MySQL的tar包" class="headerlink" title="下载wget、wget下载MySQL的tar包"></a>下载wget、wget下载MySQL的tar包</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">yum -y install wget &amp;&amp; wget  https://llwp.linlink.xyz/d/%E8%BD%AF%E4%BB%B6%E7%B3%BB%E5%88%97/Linux_x64%20mysql/mysql-5.7.38-1.el7.x86_64.rpm-bundle.tar<br></code></pre></td></tr></table></figure><h2 id="解压MySQL包"><a href="#解压MySQL包" class="headerlink" title="解压MySQL包"></a>解压MySQL包</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">tar -xvf mysql-5.7.38-1.el7.x86_64.rpm-bundle.tar<br></code></pre></td></tr></table></figure><h2 id="安装MySQL"><a href="#安装MySQL" class="headerlink" title="安装MySQL"></a>安装MySQL</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">yum -y localinstall *.rpm<br></code></pre></td></tr></table></figure><h2 id="启动MySQL"><a href="#启动MySQL" class="headerlink" title="启动MySQL"></a>启动MySQL</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">systemctl start mysqld &amp;&amp; systemctl enable mysqld<br></code></pre></td></tr></table></figure><h2 id="获取MySQL初始密码"><a href="#获取MySQL初始密码" class="headerlink" title="获取MySQL初始密码"></a>获取MySQL初始密码</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">grep &#x27;temporary password&#x27; /var/log/mysqld.log<br></code></pre></td></tr></table></figure><h2 id="本地登录MySQL"><a href="#本地登录MySQL" class="headerlink" title="本地登录MySQL"></a>本地登录MySQL</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">mysql -u root -p<br></code></pre></td></tr></table></figure><h2 id="必须先修改为强密码"><a href="#必须先修改为强密码" class="headerlink" title="必须先修改为强密码"></a>必须先修改为强密码</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">ALTER USER &#x27;root&#x27;@&#x27;localhost&#x27; IDENTIFIED WITH mysql_native_password BY &#x27;000Plinlink%&#x27;;<br></code></pre></td></tr></table></figure><h2 id="修改密码规则"><a href="#修改密码规则" class="headerlink" title="修改密码规则"></a>修改密码规则</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">set global validate_password_policy=0;<br>set global validate_password_length=0;<br></code></pre></td></tr></table></figure><h2 id="修改你需要的密码"><a href="#修改你需要的密码" class="headerlink" title="修改你需要的密码"></a>修改你需要的密码</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">ALTER USER &#x27;root&#x27;@&#x27;localhost&#x27; IDENTIFIED WITH mysql_native_password BY &#x27;linlink&#x27;;<br></code></pre></td></tr></table></figure><h2 id="进入MySQL数据库"><a href="#进入MySQL数据库" class="headerlink" title="进入MySQL数据库"></a>进入MySQL数据库</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">use mysql;<br></code></pre></td></tr></table></figure><h2 id="修改权限、允许远程登陆"><a href="#修改权限、允许远程登陆" class="headerlink" title="修改权限、允许远程登陆"></a>修改权限、允许远程登陆</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">update user set host = &#x27;%&#x27; where user = &#x27;root&#x27;;<br>flush privileges;<br>select host, user from user;<br>quit<br></code></pre></td></tr></table></figure></div></details><h1 id="Nginx"><a href="#Nginx" class="headerlink" title="Nginx"></a>Nginx</h1><details class="toggle" ><summary class="toggle-button" style="">点击查看</summary><div class="toggle-content"><h2 id="下载rpm包"><a href="#下载rpm包" class="headerlink" title="下载rpm包"></a>下载rpm包</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">wget https://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.20.2-1.el7.ngx.x86_64.rpm<br></code></pre></td></tr></table></figure><h2 id="安装，默认安装路径-x2F-etc-x2F-nginx"><a href="#安装，默认安装路径-x2F-etc-x2F-nginx" class="headerlink" title="安装，默认安装路径&#x2F;etc&#x2F;nginx"></a>安装，默认安装路径&#x2F;etc&#x2F;nginx</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">rpm -ivh nginx-1.20.2-1.el7.ngx.x86_64.rpm<br></code></pre></td></tr></table></figure><h2 id="启动"><a href="#启动" class="headerlink" title="启动"></a>启动</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">systemctl start nginx<br></code></pre></td></tr></table></figure><h2 id="开机自启-记得先关selinux"><a href="#开机自启-记得先关selinux" class="headerlink" title="开机自启(记得先关selinux)"></a>开机自启(记得先关selinux)</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">systemctl enable nginx<br></code></pre></td></tr></table></figure></div></details><h1 id="Mongdb6-0-5"><a href="#Mongdb6-0-5" class="headerlink" title="Mongdb6.0.5"></a>Mongdb6.0.5</h1><details class="toggle" ><summary class="toggle-button" style="">点击查看</summary><div class="toggle-content"><h2 id="下载"><a href="#下载" class="headerlink" title="下载"></a>下载</h2><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs shell">yum -y install wget &amp;&amp; wget https://llwp.linlink.xyz/d/cloudcompute/Mongdb/mongodb-linux-x86_64-rhel70-6.0.5.tgz<br></code></pre></td></tr></table></figure><h2 id="解压"><a href="#解压" class="headerlink" title="解压"></a>解压</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">tar -zxvf mongodb-linux-x86_64-rhel70-6.0.5.tgz<br></code></pre></td></tr></table></figure><h2 id="移到-x2F-usr-x2F-local-x2F-目录下"><a href="#移到-x2F-usr-x2F-local-x2F-目录下" class="headerlink" title="移到&#x2F;usr&#x2F;local&#x2F;目录下"></a>移到&#x2F;usr&#x2F;local&#x2F;目录下</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">mv mongodb-linux-x86_64-rhel70-6.0.5 mongodb<br>mv mongodb /usr/local/<br></code></pre></td></tr></table></figure><h2 id="创建mongo需要的目录"><a href="#创建mongo需要的目录" class="headerlink" title="创建mongo需要的目录"></a>创建mongo需要的目录</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">cd /usr/local/mongodb<br>mkdir data etc log<br></code></pre></td></tr></table></figure><h2 id="vi-x2F-usr-x2F-local-x2F-mongodb-x2F-etc-x2F-mongodb-conf添加内容如下："><a href="#vi-x2F-usr-x2F-local-x2F-mongodb-x2F-etc-x2F-mongodb-conf添加内容如下：" class="headerlink" title="vi &#x2F;usr&#x2F;local&#x2F;mongodb&#x2F;etc&#x2F;mongodb.conf添加内容如下："></a>vi &#x2F;usr&#x2F;local&#x2F;mongodb&#x2F;etc&#x2F;mongodb.conf添加内容如下：</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><code class="hljs plaintext"># db存放的目录<br>dbpath=/usr/local/mongodb/data<br><br># 后台启动需要配置日志输出<br>logpath=/usr/local/mongodb/log/mongodb.log<br><br># 端口<br>port=27017<br>#bind_ip = 127.0.0.1   只能本地登录<br># 外网访问，这个可以远程访问<br>bind_ip = 0.0.0.0     <br><br># 设置成后台启动<br>fork=true<br>journal=false<br><br># 登录验证<br>auth=true<br></code></pre></td></tr></table></figure><h2 id="配置环境变量"><a href="#配置环境变量" class="headerlink" title="配置环境变量"></a>配置环境变量</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">echo &quot;export PATH=$PATH:/usr/local/mongodb/bin&quot; &gt;&gt; /etc/profile<br>source /etc/profile<br></code></pre></td></tr></table></figure><h2 id="启动-amp-amp-关闭"><a href="#启动-amp-amp-关闭" class="headerlink" title="启动&amp;&amp;关闭"></a>启动&amp;&amp;关闭</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">#启动 <br>mongod --config /usr/local/mongodb/etc/mongodb.conf<br>#关闭<br>mongod --config /usr/local/mongodb/etc/mongodb.conf --shutdown<br></code></pre></td></tr></table></figure><h2 id="使用"><a href="#使用" class="headerlink" title="使用"></a>使用</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">--登录<br>mongo 或者是  mongo -u admin -p 123456<br><br>--切换数据库(数据库如果不存在就会创建)<br>use  数据库名<br><br>--用户角色<br>read：允许用户读取指定数据库。<br>readWrite：允许用户读写指定数据库。<br>dbAdmin：允许用户在指定数据库中执行管理函数，例如索引创建与删除，查看统计或访问 system.profile。<br>userAdmin：允许用户向 system.users 集合写入，可以在指定数据库里创建、删除和管理用户。<br>clusterAdmin：只能在 admin 数据库中创建此角色用户，赋予用户所有分片和复制集相关函数的管理权限。<br>readAnyDatabase：只能在 admin 数据库中创建此角色用户，赋予用户所有数据库的读权限。<br>readWriteAnyDatabase：只能在 admin 数据库中创建此角色用户，赋予用户所有数据库的读写权限。<br>userAdminAnyDatabase：只能在 admin 数据库中创建此角色用户，赋予用户所有数据库的 userAdmin 权限。<br>dbAdminAnyDatabase：只能在 admin 数据库中创建此角色用户，赋予用户所有数据库的 dbAdmin 权限。<br>root：只能在 admin 数据库中创建此角色用户，超级账号，超级所有权限。其实 dbOwner 、userAdmin、userAdminAnyDatabase 角色间接或直接提供了系统超级用户的权限。<br> <br>数据库用户角色有：<br>read<br>readWrite<br> <br>数据库管理员角色有：<br>dbAdmin<br>dbOwner (包含 dbAdmin,readWrite,userAdmin)<br>userAdmin<br> <br>群集管理员角色有：<br>clusterAdmin (包含 clusterManager,clusterMonitor,hostManager)<br>clusterManager<br>clusterMonitor<br>hostManager<br> <br>所有的数据库角色有：<br>readAnyDatabase<br>readWriterAnyDatabase<br>userAdminAnyDatabase<br>dbAdminAnyDatabase<br> <br>超级用户角色<br>root(包含 readWriteAnyDatabase,dbAdminAnyDatabase,userAdminAnyDatabase,clusterAdmin)<br><br>--创建超级管理员用户<br>use admin<br>db.createUser(&#123;user: &quot;root&quot;,pwd: &quot;123456&quot;,roles: [ &#123; role: &quot;root&quot;, db: &quot;admin&quot; &#125; ]&#125;);<br><br>--创建admin库的管理员，只用来作为用户权限的管理<br>use admin<br>db.createUser(&#123;user: &quot;admin&quot;,pwd: &quot;123456&quot;,roles: [ &#123; role: &quot;userAdminAnyDatabase&quot;, db: &quot;admin&quot; &#125; ]&#125;);<br><br>--创建普通数据库的用户(需要先切换到该数据库再来创建用户)<br>use test<br>db.createUser(&#123;user: &quot;test&quot;,pwd: &quot;123456&quot;,roles: [ &#123; role: &quot;dbOwner&quot;, db: &quot;test&quot; &#125; ]&#125;);<br><br>--对于用户的操作需要切换到admin库下才可以<br>--删除用户<br>use admin<br>db.dropUser(&quot;test&quot;)<br><br>--查看系统用户<br>use admin<br>db.system.users.find()<br><br>--修改用户密码<br>use admin<br>db.changeUserPassword(&quot;test&quot;, &quot;12345&quot;)<br><br>--认真测试，用于测试用户是否正确，需要切换到用户所属的数据库才可以测试<br>use test<br>db.auth(&quot;test&quot;, &quot;123456&quot;)<br><br>--数据库列表<br>show dbs   或者是  show  database<br><br>--显示当前数据库<br>db<br><br>--删除数据库<br>db.dropDatabase()<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">--数据库列表<br>show dbs   或者是  show  database<br><br>--显示当前数据库<br>db<br><br>--删除数据库<br>db.dropDatabase()<br><br>--创建集合<br>显示创建<br>db.createCollection(&quot;user&quot;)<br><br>--查询当前库中的集合（或者说是表）<br>show collections 或者是show tables<br><br>--集合删除<br>db.collection.drop()<br>或者是<br>db.集合.drop()<br>插入数据<br>db.jamy.insert(&#123;&quot;name&quot;:&quot;jamysong&quot;,&quot;age&quot;:30,&quot;sex&quot;:&quot;男&quot;&#125;);<br>--查询<br>db.jamy.find();<br></code></pre></td></tr></table></figure></div></details><h2 id="Php7-0"><a href="#Php7-0" class="headerlink" title="Php7.0"></a>Php7.0</h2><details class="toggle" ><summary class="toggle-button" style="">点击查看</summary><div class="toggle-content"><h2 id="添加epel第三方依赖库，安装YUM源"><a href="#添加epel第三方依赖库，安装YUM源" class="headerlink" title="添加epel第三方依赖库，安装YUM源"></a>添加epel第三方依赖库，安装YUM源</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">yum -y install epel-release yum-utils<br>rpm -Uvh http://mirror.webtatic.com/yum/el7/epel-release.rpm<br>rpm -ivh http://mirror.webtatic.com/yum/el7/webtatic-release.rpm<br>yum clean all &amp;&amp; yum makecache<br></code></pre></td></tr></table></figure><h2 id="安装PHP相关依赖库和模块"><a href="#安装PHP相关依赖库和模块" class="headerlink" title="安装PHP相关依赖库和模块"></a>安装PHP相关依赖库和模块</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">yum install -y php70w-tidy php70w-common php70w-devel php70w-pdo php70w-mysql php70w-gd php70w-ldap php70w-mbstring php70w-mcrypt php70w-fpm<br></code></pre></td></tr></table></figure><h2 id="启动php-fpm服务"><a href="#启动php-fpm服务" class="headerlink" title="启动php-fpm服务"></a>启动php-fpm服务</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">systemctl start php-fpm &amp;&amp; systemctl status php-fpm<br></code></pre></td></tr></table></figure></div></details>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;JDK&quot;&gt;&lt;a href=&quot;#JDK&quot; class=&quot;headerlink&quot; title=&quot;JDK&quot;&gt;&lt;/a&gt;JDK&lt;/h1&gt;&lt;details class=&quot;toggle&quot; &gt;&lt;summary class=&quot;toggle-button&quot; style=&quot;&quot;&gt;点击查看</summary>
      
    
    
    
    <category term="Install" scheme="https://www.linlink.xyz/categories/Install/"/>
    
    
    <category term="Install" scheme="https://www.linlink.xyz/tags/Install/"/>
    
  </entry>
  
  <entry>
    <title>Linux 存储相关</title>
    <link href="https://www.linlink.xyz/posts/2425c3ad.html"/>
    <id>https://www.linlink.xyz/posts/2425c3ad.html</id>
    <published>2023-03-06T07:00:34.000Z</published>
    <updated>2023-04-13T03:06:08.190Z</updated>
    
    <content type="html"><![CDATA[<h1 id="磁盘分区"><a href="#磁盘分区" class="headerlink" title="磁盘分区"></a>磁盘分区</h1><details class="toggle" ><summary class="toggle-button" style="">点击查看</summary><div class="toggle-content"><h2 id="初步了解磁盘分区"><a href="#初步了解磁盘分区" class="headerlink" title="初步了解磁盘分区"></a>初步了解磁盘分区</h2><p>硬盘的分区主要分为基本分区（Primary Partition）和扩展分区（Extension Partition）两种，基本分区和扩展分区的数目之和不能大于4个。且基本分区可以马上被使用但不能再分区。扩展分区必须在进行分区后才能使用，也就是说它必须还要进行二次分区。那么由扩展分区再分下去的是什么呢？那就是逻辑分区（Logical Partition），并且逻辑分区没有数量上的限制<br><img src="/pic/linux/disk.png" alt="img"><br>在Linux中，每一个硬件设备都映射到一个系统的文件，对于硬盘、光驱等IDE或SCSI设备也不例外。Linux对各种IDE设备分配了一个由hd前缀组成的文件；而对于各种SCSI设备，则分配了一个由sd前缀组成的文件。对于IDE硬盘，驱动器标识符为hdx～，其中hd表明分区所在设备的类型，这里是指IDE硬盘。x为盘号（a为基本盘，b为基本从属盘，c为辅助主盘，d为辅助从属盘）, ～代表分区，前4个分区用数字1～4表示，它们是主分区或扩展分区，从5开始就是逻辑分区。例，hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区，hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。对于SCSI硬盘则标识为sdx～, SCSI硬盘是用sd来表示分区所在设备的类型的，其余则和IDE硬盘的表示方法一样，这里不再多说。例如，第一个IDE设备，Linux就定义为hda；第二个IDE设备就定义为hdb；下面以此类推。而SCSI设备就应该是sda、sdb、sdc等</p><h3 id="分区数量"><a href="#分区数量" class="headerlink" title="分区数量"></a>分区数量</h3><p>要进行分区就必须针对每一个硬件设备进行操作，这就有可能是一块IDE硬盘或是一块SCSI硬盘。对于每一个硬盘（IDE或SCSI）设备，Linux分配了一个1～16的序列号码，这就代表了这块硬盘上面的分区号码。例如，第一个IDE硬盘的第一个分区，在Linux下面映射的就是hda1，第二个分区就称作hda2。对于SCSI硬盘则是sda1、sdb1等，<br>在Linux中规定，每一个硬盘设备最多能由4个主分区（其中包含扩展分区）构成，任何一个扩展分区都要占用一个主分区号码，也就是在一个硬盘中，主分区和扩展分区一共最多是4个。主分区的作用就是供计算机进行操作系统启动，因此每一个操作系统的启动，或者称作引导程序，都应该存放在主分区上。这就是主分区和扩展分区及逻辑分区的最大区别。在指定安装引导Linux的Bootloader的时候，都要指定在主分区上，这就是最好的例证。Linux规定了主分区（或者扩展分区）占用1～16号码中的前4个号码。以第一个IDE硬盘为例说明，主分区（或者扩展分区）占用了hda1、hda2、hda3、hda4，而逻辑分区占用了hda5到hda16等12个号码。因此，Linux下面每一个硬盘总共最多有16个分区。</p><h3 id="分区类型"><a href="#分区类型" class="headerlink" title="分区类型"></a>分区类型</h3><p>Linux分区类型有ext2,ext3,ext4,xfs,BtrFS,GlusterFS等格式</p><h2 id="用命令fdisk创建一个基本分区-x2F-dev-x2F-sdb1"><a href="#用命令fdisk创建一个基本分区-x2F-dev-x2F-sdb1" class="headerlink" title="用命令fdisk创建一个基本分区(&#x2F;dev&#x2F;sdb1)"></a>用命令fdisk创建一个基本分区(&#x2F;dev&#x2F;sdb1)</h2><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br></pre></td><td class="code"><pre><code class="hljs shell">[root@linlink ~]# fdisk /dev/sdb               //指定/dev/sdb分区<br>Welcome to fdisk (util-linux 2.23.2).<br>Changes will remain in memory only, until you decide to write them.<br>Be careful before using the write command.<br>Command (m for help): n                       //n回车、创建一个新分区<br>Partition type:<br>   p   primary (0 primary, 0 extended, 4 free)<br>   e   extended<br>Select (default p): p //选择分区类型为(p)基本分区、e是扩展分区、l是逻辑分区(逻辑分区建立在扩展分区上)<br>Partition number (1-4, default 1): 1           //选择号默认1<br>First sector (2048-41943039, default 2048):    //选择起始扇区、有需要自己研究去<br>Using default value 2048<br>Last sector, +sectors or +size&#123;K,M,G&#125; (2048-41943039, default 41943039): +5G //给分区分配大小<br>Partition 1 of type Linux and of size 5 GiB is set<br>Command (m for help): p                         //这里的p是打印分区表(/dev/sdb)<br>Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors<br>Units = sectors of 1 * 512 = 512 bytes<br>Sector size (logical/physical): 512 bytes / 512 bytes<br>I/O size (minimum/optimal): 512 bytes / 512 bytes<br>Disk label type: dos<br>Disk identifier: 0xc8546a0b<br><br>   Device Boot      Start         End      Blocks   Id  System<br>/dev/sdb1            2048    10487807     5242880   83  Linux<br><br>Command (m for help): w                        //w是保存退出<br>The partition table has been altered!<br><br>Calling ioctl() to re-read partition table.<br>Syncing disks.<br>[root@linlink ~]# lsblk<br>NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT<br>sda               8:0    0   200G  0 disk<br>├─sda1            8:1    0     1G  0 part /boot<br>└─sda2            8:2    0   199G  0 part<br>  ├─centos-root 253:0    0    50G  0 lvm  /<br>  ├─centos-swap 253:1    0   3.9G  0 lvm  [SWAP]<br>  └─centos-home 253:2    0 145.1G  0 lvm  /home<br>sdb               8:16   0    20G  0 disk<br>└─sdb1            8:17   0     5G  0 part<br>sr0              11:0    1   4.2G  0 rom<br></code></pre></td></tr></table></figure><h2 id="用命令fdisk创建一个扩展分区-x2F-dev-x2F-sdb2"><a href="#用命令fdisk创建一个扩展分区-x2F-dev-x2F-sdb2" class="headerlink" title="用命令fdisk创建一个扩展分区(&#x2F;dev&#x2F;sdb2)"></a>用命令fdisk创建一个扩展分区(&#x2F;dev&#x2F;sdb2)</h2><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br></pre></td><td class="code"><pre><code class="hljs shell">[root@linlink ~]# fdisk /dev/sdb<br>Welcome to fdisk (util-linux 2.23.2).<br><br>Changes will remain in memory only, until you decide to write them.<br>Be careful before using the write command.<br><br><br>Command (m for help): p<br><br>Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors<br>Units = sectors of 1 * 512 = 512 bytes<br>Sector size (logical/physical): 512 bytes / 512 bytes<br>I/O size (minimum/optimal): 512 bytes / 512 bytes<br>Disk label type: dos<br>Disk identifier: 0xc8546a0b<br><br>   Device Boot      Start         End      Blocks   Id  System<br>/dev/sdb1            2048    10487807     5242880   83  Linux<br><br>Command (m for help): n<br>Partition type:<br>   p   primary (1 primary, 0 extended, 3 free)<br>   e   extended<br>Select (default p): e<br>Partition number (2-4, default 2): 2<br>First sector (10487808-41943039, default 10487808):<br>Using default value 10487808<br>Last sector, +sectors or +size&#123;K,M,G&#125; (10487808-41943039, default 41943039): +5G<br>Partition 2 of type Extended and of size 5 GiB is set<br><br>Command (m for help): p<br><br>Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors<br>Units = sectors of 1 * 512 = 512 bytes<br>Sector size (logical/physical): 512 bytes / 512 bytes<br>I/O size (minimum/optimal): 512 bytes / 512 bytes<br>Disk label type: dos<br>Disk identifier: 0xc8546a0b<br>   Device Boot      Start         End      Blocks   Id  System<br>/dev/sdb1            2048    10487807     5242880   83  Linux<br>/dev/sdb2        10487808    20973567     5242880    5  Extended<br>Command (m for help): w<br>The partition table has been altered!<br>Calling ioctl() to re-read partition table.<br>Syncing disks.<br>[root@linlink ~]# lsblk<br>NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT<br>sda               8:0    0   200G  0 disk<br>├─sda1            8:1    0     1G  0 part /boot<br>└─sda2            8:2    0   199G  0 part<br>  ├─centos-root 253:0    0    50G  0 lvm  /<br>  ├─centos-swap 253:1    0   3.9G  0 lvm  [SWAP]<br>  └─centos-home 253:2    0 145.1G  0 lvm  /home<br>sdb               8:16   0    20G  0 disk<br>├─sdb1            8:17   0     5G  0 part<br>└─sdb2            8:18   0     1K  0 part<br>sr0              11:0    1   4.2G  0 rom<br></code></pre></td></tr></table></figure><h2 id="用命令fdisk创建一个逻辑分区-x2F-dev-x2F-sdb5-、注意：需要先创建一个扩展分区"><a href="#用命令fdisk创建一个逻辑分区-x2F-dev-x2F-sdb5-、注意：需要先创建一个扩展分区" class="headerlink" title="用命令fdisk创建一个逻辑分区(&#x2F;dev&#x2F;sdb5)、注意：需要先创建一个扩展分区"></a>用命令fdisk创建一个逻辑分区(&#x2F;dev&#x2F;sdb5)、注意：需要先创建一个扩展分区</h2><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br></pre></td><td class="code"><pre><code class="hljs shell">[root@linlink ~]# fdisk /dev/sdb<br>Welcome to fdisk (util-linux 2.23.2).<br><br>Changes will remain in memory only, until you decide to write them.<br>Be careful before using the write command.<br><br><br>Command (m for help): p<br><br>Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors<br>Units = sectors of 1 * 512 = 512 bytes<br>Sector size (logical/physical): 512 bytes / 512 bytes<br>I/O size (minimum/optimal): 512 bytes / 512 bytes<br>Disk label type: dos<br>Disk identifier: 0xc8546a0b<br><br>   Device Boot      Start         End      Blocks   Id  System<br>/dev/sdb1            2048    10487807     5242880   83  Linux<br>/dev/sdb2        10487808    20973567     5242880    5  Extended<br><br>Command (m for help): n<br>Partition type:<br>   p   primary (1 primary, 1 extended, 2 free)<br>   l   logical (numbered from 5)<br>Select (default p): l<br>Adding logical partition 5<br>First sector (10489856-20973567, default 10489856):<br>Using default value 10489856<br>Last sector, +sectors or +size&#123;K,M,G&#125; (10489856-20973567, default 20973567): +3G<br>Partition 5 of type Linux and of size 3 GiB is set<br><br>Command (m for help): p<br><br>Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors<br>Units = sectors of 1 * 512 = 512 bytes<br>Sector size (logical/physical): 512 bytes / 512 bytes<br>I/O size (minimum/optimal): 512 bytes / 512 bytes<br>Disk label type: dos<br>Disk identifier: 0xc8546a0b<br><br>   Device Boot      Start         End      Blocks   Id  System<br>/dev/sdb1            2048    10487807     5242880   83  Linux<br>/dev/sdb2        10487808    20973567     5242880    5  Extended<br>/dev/sdb5        10489856    16781311     3145728   83  Linux<br><br>Command (m for help): w<br>The partition table has been altered!<br><br>Calling ioctl() to re-read partition table.<br>Syncing disks.<br>[root@linlink ~]# lsblk<br>NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT<br>sda               8:0    0   200G  0 disk<br>├─sda1            8:1    0     1G  0 part /boot<br>└─sda2            8:2    0   199G  0 part<br>  ├─centos-root 253:0    0    50G  0 lvm  /<br>  ├─centos-swap 253:1    0   3.9G  0 lvm  [SWAP]<br>  └─centos-home 253:2    0 145.1G  0 lvm  /home<br>sdb               8:16   0    20G  0 disk<br>├─sdb1            8:17   0     5G  0 part<br>├─sdb2            8:18   0     1K  0 part<br>└─sdb5            8:21   0     3G  0 part<br>sr0              11:0    1   4.2G  0 rom<br></code></pre></td></tr></table></figure><h2 id="fdisk命令里相关参数"><a href="#fdisk命令里相关参数" class="headerlink" title="fdisk命令里相关参数"></a>fdisk命令里相关参数</h2><table><thead><tr><th align="center">参数</th><th align="center">解释</th></tr></thead><tbody><tr><td align="center">a</td><td align="center">切换一个可引导标志</td></tr><tr><td align="center">b</td><td align="center">编辑BSD磁盘标签</td></tr><tr><td align="center">c</td><td align="center">切换DOS兼容性标志</td></tr><tr><td align="center">d</td><td align="center">删除分区</td></tr><tr><td align="center">g</td><td align="center">创建一个新的空GPT分区表</td></tr><tr><td align="center">G</td><td align="center">创建一个IRIX (SGI)分区表</td></tr><tr><td align="center">l</td><td align="center">列出已知分区类型</td></tr><tr><td align="center">m</td><td align="center">打印菜单</td></tr><tr><td align="center">n</td><td align="center">添加一个新分区</td></tr><tr><td align="center">o</td><td align="center">创建一个新的空DOS分区表</td></tr><tr><td align="center">p</td><td align="center">打印分区表</td></tr><tr><td align="center">q</td><td align="center">不保存更改就退出</td></tr><tr><td align="center">s</td><td align="center">创建一个新的空Sun磁盘标签</td></tr><tr><td align="center">t</td><td align="center">修改分区的系统id</td></tr><tr><td align="center">u</td><td align="center">改变显示&#x2F;输入单元</td></tr><tr><td align="center">v</td><td align="center">验证分区表</td></tr><tr><td align="center">w</td><td align="center">将表写入磁盘并退出</td></tr><tr><td align="center">x</td><td align="center">额外的功能(仅限专家)</td></tr></tbody></table></div></details><h1 id="LVM"><a href="#LVM" class="headerlink" title="LVM"></a>LVM</h1><details class="toggle" ><summary class="toggle-button" style="">点击查看</summary><div class="toggle-content"><h2 id="初步了解LVM"><a href="#初步了解LVM" class="headerlink" title="初步了解LVM"></a>初步了解LVM</h2><p>LVM是逻辑盘卷管理（Logical Volume Manager）的简称、最早应用在IBM AIX系统上。它的主要作用是动态分配硬盘分区及调整硬盘分区大小，并且可以让多个分区或者物理硬盘作为一个逻辑卷（相当于一个逻辑硬盘）来使用。这种机制可以让硬盘分区容量划分变得更灵活。通过使用Linux的逻辑卷管理器（Logical Volume Manager, LVM），用户可以在系统运行时动态调整文件系统的大小，把数据从一块硬盘重定位到另一块硬盘，也可以提高I&#x2F;O操作的性能，以及提供冗余保护，它的快照功能允许用户对逻辑卷进行实时的备份。对一般用户来讲，使用最多的是动态调整文件系统大小的功能。这样，在分区时就不必为如何设置分区的大小而烦恼，只要在硬盘中预留出部分空闲空间，然后根据系统的使用情况，动态调整分区大小。<br><img src="/pic/linux/lvm.png" alt="img"><br>LVM的原理图如图所示。LVM进行逻辑卷的管理时，创建顺序是PV→VG→LV、删除的顺序LV→VG→PV、也就是说，首先创建一个物理卷（对应一个物理硬盘分区或者一个物理硬盘），然后把这些分区或者硬盘加入一个卷组（相当于一个逻辑上的大硬盘），再在这个大硬盘上划分分区LV（逻辑上的分区，也就是逻辑卷），最后把LV逻辑卷格式化以后，就可以像使用一个传统分区那样，把它挂在一个挂载点上，需要的时候，这个逻辑卷可以被动态缩放。</p><h3 id="PV"><a href="#PV" class="headerlink" title="PV"></a>PV</h3><p>PV（Physical Volume，物理卷）：物理卷就是指硬盘，硬盘分区或从逻辑上与硬盘分区具有同样功能的设备（如RAID），是LVM的基本存储逻辑块，处于LVM的最底层，但和基本的物理存储介质（如分区、硬盘等）比较，却包含有与LVM相关的管理参数。当前LVM允许在每个物理卷上保存这个物理卷的0～2份元数据复件。默认为1，保存在设备的开始处；为2时，在设备结束处保存第二份备份。</p><h3 id="VG"><a href="#VG" class="headerlink" title="VG"></a>VG</h3><p>VG（Volume Group，卷组）：可以看成单独的逻辑硬盘，建立在PV之上，是PV的组合。一个卷组中至少要包括一个PV，在卷组建立之后可以动态地添加PV到卷组。</p><h3 id="LV"><a href="#LV" class="headerlink" title="LV"></a>LV</h3><p>LV（Logical Volume，逻辑卷）：相当于物理分区的&#x2F;dev&#x2F;sdax。逻辑卷建立在卷组之上，卷组中的未分配空间可以用于建立新的逻辑卷，逻辑卷建立后可以动态地扩展或缩小空间。系统中的多个逻辑卷可以属于同一个卷组，也可以属于不同的多个卷组。</p><h3 id="PE"><a href="#PE" class="headerlink" title="PE"></a>PE</h3><p>PE（Physical Extent，物理区域）：物理区域是物理卷中可用于分配的最小存储单元，物理区域的大小可根据实际情况在建立物理卷时指定。物理区域大小一旦确定将不能更改，同一卷组中的所有物理卷的物理区域大小需要一致。当多个PV组成一个VG时，LVM会在所有PV上做类似格式化的动作，将每个PV切成一块块的空间，这一块块的空间就称为PE，通常是4MB。</p><h3 id="LE"><a href="#LE" class="headerlink" title="LE"></a>LE</h3><p>LE（Logical Extent，逻辑区域）：逻辑区域是逻辑卷中可用于分配的最小存储单元，逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。LE的大小为PE的倍数（通常是1∶1）。</p><h3 id="VGDA"><a href="#VGDA" class="headerlink" title="VGDA"></a>VGDA</h3><p>VGDA（Volume Group Descriptor Area，卷组描述区域）：存在于每个物理卷中，用于描述该物理卷本身、物理卷所属卷组、卷组中的逻辑卷以及逻辑卷中的物理区域的分配等所有的信息，卷组描述区域是在使用pvcreate命令建立物理卷时建立的。</p><h2 id="创建LVM类型的分区"><a href="#创建LVM类型的分区" class="headerlink" title="创建LVM类型的分区"></a>创建LVM类型的分区</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@linlink ~]# fdisk /dev/sdb<br>Welcome to fdisk (util-linux 2.23.2).<br><br>Changes will remain in memory only, until you decide to write them.<br>Be careful before using the write command.<br><br><br>Command (m for help): n<br>Partition type:<br>   p   primary (0 primary, 0 extended, 4 free)<br>   e   extended<br>Select (default p): p<br>Partition number (1-4, default 1): 1<br>First sector (2048-41943039, default 2048):<br>Using default value 2048<br>Last sector, +sectors or +size&#123;K,M,G&#125; (2048-41943039, default 41943039): +5G<br>Partition 1 of type Linux and of size 5 GiB is set<br><br>Command (m for help): p<br><br>Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors<br>Units = sectors of 1 * 512 = 512 bytes<br>Sector size (logical/physical): 512 bytes / 512 bytes<br>I/O size (minimum/optimal): 512 bytes / 512 bytes<br>Disk label type: dos<br>Disk identifier: 0xc8546a0b<br><br>   Device Boot      Start         End      Blocks   Id  System<br>/dev/sdb1            2048    10487807     5242880   83  Linux<br><br>Command (m for help): t<br>Selected partition 1<br>Hex code (type L to list all codes): 8e<br>Changed type of partition &#x27;Linux&#x27; to &#x27;Linux LVM&#x27;<br><br>Command (m for help): p<br><br>Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors<br>Units = sectors of 1 * 512 = 512 bytes<br>Sector size (logical/physical): 512 bytes / 512 bytes<br>I/O size (minimum/optimal): 512 bytes / 512 bytes<br>Disk label type: dos<br>Disk identifier: 0xc8546a0b<br><br>   Device Boot      Start         End      Blocks   Id  System<br>/dev/sdb1            2048    10487807     5242880   8e  Linux LVM<br></code></pre></td></tr></table></figure><h2 id="物理卷管理PV"><a href="#物理卷管理PV" class="headerlink" title="物理卷管理PV"></a>物理卷管理PV</h2><h3 id="用pvcreate创建物理卷"><a href="#用pvcreate创建物理卷" class="headerlink" title="用pvcreate创建物理卷"></a>用pvcreate创建物理卷</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@linlink ~]# pvcreate /dev/sdb1<br>  Physical volume &quot;/dev/sdb1&quot; successfully created.<br></code></pre></td></tr></table></figure><h3 id="用pvremove删除物理卷"><a href="#用pvremove删除物理卷" class="headerlink" title="用pvremove删除物理卷"></a>用pvremove删除物理卷</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@linlink ~]# pvremove /dev/sdb1<br>  Labels on physical volume &quot;/dev/sdb1&quot; successfully wiped.<br></code></pre></td></tr></table></figure><h3 id="可以通过pvs、pvscan、pvdisplay查看物理卷信息"><a href="#可以通过pvs、pvscan、pvdisplay查看物理卷信息" class="headerlink" title="可以通过pvs、pvscan、pvdisplay查看物理卷信息"></a>可以通过pvs、pvscan、pvdisplay查看物理卷信息</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@linlink ~]# pvs<br>  PV         VG     Fmt  Attr PSize    PFree<br>  /dev/sda2  centos lvm2 a--  &lt;199.00g 4.00m<br>[root@linlink ~]# pvscan<br>  PV /dev/sda2   VG centos          lvm2 [&lt;199.00 GiB / 4.00 MiB free]<br>  Total: 1 [&lt;199.00 GiB] / in use: 1 [&lt;199.00 GiB] / in no VG: 0 [0   ]<br>[root@linlink ~]# pvdisplay<br>  --- Physical volume ---<br>  PV Name               /dev/sda2<br>  VG Name               centos<br>  PV Size               &lt;199.00 GiB / not usable 3.00 MiB<br>  Allocatable           yes<br>  PE Size               4.00 MiB<br>  Total PE              50943<br>  Free PE               1<br>  Allocated PE          50942<br>  PV UUID               KrZMQS-uPt0-ikoL-kf0P-I9Gx-PFHw-CZ8GXl<br></code></pre></td></tr></table></figure><h3 id="列出已经作为pv的设备"><a href="#列出已经作为pv的设备" class="headerlink" title="列出已经作为pv的设备"></a>列出已经作为pv的设备</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@linlink ~]# lvmdiskscan<br>  /dev/centos/root [      50.00 GiB]<br>  /dev/sda1        [       1.00 GiB]<br>  /dev/centos/swap [      &lt;3.88 GiB]<br>  /dev/sda2        [    &lt;199.00 GiB] LVM physical volume<br>  /dev/centos/home [    &lt;145.12 GiB]<br>  /dev/sdb1        [       5.00 GiB]<br>  3 disks<br>  2 partitions<br>  0 LVM physical volume whole disks<br>  1 LVM physical volume<br></code></pre></td></tr></table></figure><h3 id="检查"><a href="#检查" class="headerlink" title="检查"></a>检查</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">pvscan<br></code></pre></td></tr></table></figure><h2 id="卷组管理VG"><a href="#卷组管理VG" class="headerlink" title="卷组管理VG"></a>卷组管理VG</h2><h3 id="创建一个卷组"><a href="#创建一个卷组" class="headerlink" title="创建一个卷组"></a>创建一个卷组</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@linlink ~]# vgcreate vg1 /dev/sdb1<br>  Physical volume &quot;/dev/sdb1&quot; successfully created.<br>  Volume group &quot;vg1&quot; successfully created<br></code></pre></td></tr></table></figure><h3 id="卷组添加一个PV"><a href="#卷组添加一个PV" class="headerlink" title="卷组添加一个PV"></a>卷组添加一个PV</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@linlink ~]# vgextend vg1 /dev/sdb2<br>  Volume group &quot;vg1&quot; successfully extended<br></code></pre></td></tr></table></figure><h3 id="卷组添去掉一个PV"><a href="#卷组添去掉一个PV" class="headerlink" title="卷组添去掉一个PV"></a>卷组添去掉一个PV</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@linlink ~]# vgreduce vg1 /dev/sdb2<br>  Removed &quot;/dev/sdb2&quot; from volume group &quot;vg1&quot;<br></code></pre></td></tr></table></figure><h3 id="删除卷组"><a href="#删除卷组" class="headerlink" title="删除卷组"></a>删除卷组</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@linlink ~]# vgremove vg1<br>  Volume group &quot;vg1&quot; successfully removed<br></code></pre></td></tr></table></figure><h3 id="vgs、vgscan、vgdisplay"><a href="#vgs、vgscan、vgdisplay" class="headerlink" title="vgs、vgscan、vgdisplay"></a>vgs、vgscan、vgdisplay</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@linlink ~]# vgs<br>  VG     #PV #LV #SN Attr   VSize    VFree<br>  centos   1   3   0 wz--n- &lt;199.00g 4.00m<br>  vg1      2   1   0 wz--n-    9.99g 4.99g<br>[root@linlink ~]# vgscan<br>  Reading volume groups from cache.<br>  Found volume group &quot;centos&quot; using metadata type lvm2<br>  Found volume group &quot;vg1&quot; using metadata type lvm2<br>[root@linlink ~]# vgdisplay<br>  --- Volume group ---<br>  VG Name               centos<br>  System ID<br>  Format                lvm2<br>  Metadata Areas        1<br>  Metadata Sequence No  4<br>  VG Access             read/write<br>  VG Status             resizable<br>  MAX LV                0<br>  Cur LV                3<br>  Open LV               3<br>  Max PV                0<br>  Cur PV                1<br>  Act PV                1<br>  VG Size               &lt;199.00 GiB<br>  PE Size               4.00 MiB<br>  Total PE              50943<br>  Alloc PE / Size       50942 / 198.99 GiB<br>  Free  PE / Size       1 / 4.00 MiB<br>  VG UUID               GBOQoR-njkr-HiQ6-Xm8k-iQPu-AFHP-Jb3WHi<br><br>  --- Volume group ---<br>  VG Name               vg1<br>  System ID<br>  Format                lvm2<br>  Metadata Areas        2<br>  Metadata Sequence No  14<br>  VG Access             read/write<br>  VG Status             resizable<br>  MAX LV                0<br>  Cur LV                1<br>  Open LV               0<br>  Max PV                0<br>  Cur PV                2<br>  Act PV                2<br>  VG Size               9.99 GiB<br>  PE Size               4.00 MiB<br>  Total PE              2558<br>  Alloc PE / Size       1280 / 5.00 GiB<br>  Free  PE / Size       1278 / 4.99 GiB<br>  VG UUID               1l0gl7-9OU3-IbqW-53i5-Sk8t-1fZy-XHi53N<br></code></pre></td></tr></table></figure><h2 id="逻辑卷管理LV"><a href="#逻辑卷管理LV" class="headerlink" title="逻辑卷管理LV"></a>逻辑卷管理LV</h2><h3 id="lvcreate创建一个lv"><a href="#lvcreate创建一个lv" class="headerlink" title="lvcreate创建一个lv"></a>lvcreate创建一个lv</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@linlink ~]# lvcreate -l +100%FREE vg1 -n lv1<br>  Logical volume &quot;lv1&quot; created.      //将vg1卷组的所有空间给到新创建的逻辑卷的lv1中<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@linlink ~]# lvcreate -L 5G vg1 -n lv1<br>  Logical volume &quot;lv1&quot; created.      //将vg1卷组的5G空间给到新创建的逻辑卷的lv1中<br></code></pre></td></tr></table></figure><h3 id="扩展空间lvextend-L"><a href="#扩展空间lvextend-L" class="headerlink" title="扩展空间lvextend -L"></a>扩展空间lvextend -L</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">lvextend -L &lt;estend_size&gt; &lt;lv_path&gt;<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@linlink ~]# lvextend -L +2G /dev/vg1/lv1<br>  Size of logical volume vg1/lv1 changed from 5.00 GiB (1280 extents) to 7.00 GiB (1792 extents).<br>  Logical volume vg1/lv1 successfully resized.<br></code></pre></td></tr></table></figure><h3 id="删除一个lv"><a href="#删除一个lv" class="headerlink" title="删除一个lv"></a>删除一个lv</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@linlink ~]# lvremove /dev/vg1/lv1<br>Do you really want to remove active logical volume vg1/lv1? [y/n]: y<br>  Logical volume &quot;lv1&quot; successfully removed<br></code></pre></td></tr></table></figure><h3 id="lvs、lvscan、lvdisplay查看"><a href="#lvs、lvscan、lvdisplay查看" class="headerlink" title="lvs、lvscan、lvdisplay查看"></a>lvs、lvscan、lvdisplay查看</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@linlink ~]# lvs<br>  LV   VG     Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert<br>  home centos -wi-ao---- &lt;145.12g<br>  root centos -wi-ao----   50.00g<br>  swap centos -wi-ao----   &lt;3.88g<br>  lv1  vg1    -wi-a-----    5.00g<br>[root@linlink ~]# lvscan<br>  ACTIVE            &#x27;/dev/centos/swap&#x27; [&lt;3.88 GiB] inherit<br>  ACTIVE            &#x27;/dev/centos/home&#x27; [&lt;145.12 GiB] inherit<br>  ACTIVE            &#x27;/dev/centos/root&#x27; [50.00 GiB] inherit<br>  ACTIVE            &#x27;/dev/vg1/lv1&#x27; [5.00 GiB] inherit<br>[root@linlink ~]# lvdisplay<br>  --- Logical volume ---<br>  LV Path                /dev/centos/swap<br>  LV Name                swap<br>  VG Name                centos<br>  LV UUID                xQq83K-RJRR-gglN-vHqn-M4zu-fxSw-GYEJcB<br>  LV Write Access        read/write<br>  LV Creation host, time 192.168.20.135, 2023-02-04 04:07:36 -0500<br>  LV Status              available<br>  # open                 2<br>  LV Size                &lt;3.88 GiB<br>  Current LE             992<br>  Segments               1<br>  Allocation             inherit<br>  Read ahead sectors     auto<br>  - currently set to     8192<br>  Block device           253:1<br><br>  --- Logical volume ---<br>  LV Path                /dev/centos/home<br>  LV Name                home<br>  VG Name                centos<br>  LV UUID                j9354I-22je-aOPM-2Gec-iNuL-3Z50-Ly4yCW<br>  LV Write Access        read/write<br>  LV Creation host, time 192.168.20.135, 2023-02-04 04:07:36 -0500<br>  LV Status              available<br>  # open                 1<br>  LV Size                &lt;145.12 GiB<br>  Current LE             37150<br>  Segments               1<br>  Allocation             inherit<br>  Read ahead sectors     auto<br>  - currently set to     8192<br>  Block device           253:2<br><br>  --- Logical volume ---<br>  LV Path                /dev/centos/root<br>  LV Name                root<br>  VG Name                centos<br>  LV UUID                JpAk6n-c373-CKzq-x3v2-PgWI-sxme-ME5AOS<br>  LV Write Access        read/write<br>  LV Creation host, time 192.168.20.135, 2023-02-04 04:07:36 -0500<br>  LV Status              available<br>  # open                 1<br>  LV Size                50.00 GiB<br>  Current LE             12800<br>  Segments               1<br>  Allocation             inherit<br>  Read ahead sectors     auto<br>  - currently set to     8192<br>  Block device           253:0<br><br>  --- Logical volume ---<br>  LV Path                /dev/vg1/lv1<br>  LV Name                lv1<br>  VG Name                vg1<br>  LV UUID                hwQopV-G3KX-o6VZ-K4f3-QXlz-CEm7-BBdQdz<br>  LV Write Access        read/write<br>  LV Creation host, time linlink, 2023-03-10 09:51:20 -0500<br>  LV Status              available<br>  # open                 0<br>  LV Size                5.00 GiB<br>  Current LE             1280<br>  Segments               2<br>  Allocation             inherit<br>  Read ahead sectors     auto<br>  - currently set to     8192<br>  Block device           253:3<br></code></pre></td></tr></table></figure></div></details><h1 id="扩展根分区"><a href="#扩展根分区" class="headerlink" title="扩展根分区"></a>扩展根分区</h1><details class="toggle" ><summary class="toggle-button" style="">点击查看</summary><div class="toggle-content"><h2 id="fdisk-x2F-dev-x2F-sdb"><a href="#fdisk-x2F-dev-x2F-sdb" class="headerlink" title="fdisk &#x2F;dev&#x2F;sdb"></a>fdisk &#x2F;dev&#x2F;sdb</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@linlink ~]# fdisk /dev/sdb<br>Welcome to fdisk (util-linux 2.23.2).<br><br>Changes will remain in memory only, until you decide to write them.<br>Be careful before using the write command.<br><br>Device does not contain a recognized partition table<br>Building a new DOS disklabel with disk identifier 0x5166a770.<br><br>Command (m for help): n<br>Partition type:<br>   p   primary (0 primary, 0 extended, 4 free)<br>   e   extended<br>Select (default p): p<br>Partition number (1-4, default 1): 1<br>First sector (2048-83886079, default 2048):<br>Using default value 2048<br>Last sector, +sectors or +size&#123;K,M,G&#125; (2048-83886079, default 83886079):<br>Using default value 83886079<br>Partition 1 of type Linux and of size 40 GiB is set<br><br>Command (m for help): t<br>Selected partition 1<br>Hex code (type L to list all codes): 8e<br>Changed type of partition &#x27;Linux&#x27; to &#x27;Linux LVM&#x27;<br><br>Command (m for help): p<br><br>Disk /dev/sdb: 42.9 GB, 42949672960 bytes, 83886080 sectors<br>Units = sectors of 1 * 512 = 512 bytes<br>Sector size (logical/physical): 512 bytes / 512 bytes<br>I/O size (minimum/optimal): 512 bytes / 512 bytes<br>Disk label type: dos<br>Disk identifier: 0x5166a770<br><br>   Device Boot      Start         End      Blocks   Id  System<br>/dev/sdb1            2048    83886079    41942016   8e  Linux LVM<br><br>Command (m for help): w<br>The partition table has been altered!<br><br>Calling ioctl() to re-read partition table.<br>Syncing disks.<br></code></pre></td></tr></table></figure><h2 id="格式化"><a href="#格式化" class="headerlink" title="格式化"></a>格式化</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@linlink ~]# mkfs.xfs /dev/sdb1<br>meta-data=/dev/sdb1              isize=512    agcount=4, agsize=2621376 blks<br>         =                       sectsz=512   attr=2, projid32bit=1<br>         =                       crc=1        finobt=0, sparse=0<br>data     =                       bsize=4096   blocks=10485504, imaxpct=25<br>         =                       sunit=0      swidth=0 blks<br>naming   =version 2              bsize=4096   ascii-ci=0 ftype=1<br>log      =internal log           bsize=4096   blocks=5119, version=2<br>         =                       sectsz=512   sunit=0 blks, lazy-count=1<br>realtime =none                   extsz=4096   blocks=0, rtextents=0<br></code></pre></td></tr></table></figure><h2 id="创建pv"><a href="#创建pv" class="headerlink" title="创建pv"></a>创建pv</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@linlink ~]# pvcreate /dev/sdb1<br>WARNING: xfs signature detected on /dev/sdb1 at offset 0. Wipe it? [y/n]: y<br>  Wiping xfs signature on /dev/sdb1.<br>  Physical volume &quot;/dev/sdb1&quot; successfully created.<br></code></pre></td></tr></table></figure><h2 id="将pv添加到-x2F-dev-x2F-mapper-x2F-centos-root"><a href="#将pv添加到-x2F-dev-x2F-mapper-x2F-centos-root" class="headerlink" title="将pv添加到&#x2F;dev&#x2F;mapper&#x2F;centos-root"></a>将pv添加到&#x2F;dev&#x2F;mapper&#x2F;centos-root</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@linlink ~]# vgextend centos /dev/sdb1<br>  Volume group &quot;centos&quot; successfully extended<br></code></pre></td></tr></table></figure><h2 id="查看"><a href="#查看" class="headerlink" title="查看"></a>查看</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@linlink ~]# df -TH<br>Filesystem              Type      Size  Used Avail Use% Mounted on<br>/dev/mapper/centos-root xfs        54G  1.1G   53G   2% /<br>devtmpfs                devtmpfs  2.0G     0  2.0G   0% /dev<br>tmpfs                   tmpfs     2.0G     0  2.0G   0% /dev/shm<br>tmpfs                   tmpfs     2.0G   13M  2.0G   1% /run<br>tmpfs                   tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup<br>/dev/sda1               xfs       1.1G  149M  915M  14% /boot<br>/dev/mapper/centos-home xfs       156G   34M  156G   1% /home<br>tmpfs                   tmpfs     396M     0  396M   0% /run/user/0<br></code></pre></td></tr></table></figure><h2 id="扩展逻辑卷"><a href="#扩展逻辑卷" class="headerlink" title="扩展逻辑卷"></a>扩展逻辑卷</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@linlink ~]# lvextend -l +100%FREE /dev/mapper/centos-root<br>  Size of logical volume centos/root changed from 50.00 GiB (12800 extents) to 90.00 GiB                                                                                                                        (23040 extents).<br>  Logical volume centos/root successfully resized.<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">lvextend -L +40G /dev/mapper/centos-root                //L和l的区别<br></code></pre></td></tr></table></figure><h2 id="xfs-growfs重新读取"><a href="#xfs-growfs重新读取" class="headerlink" title="xfs_growfs重新读取"></a>xfs_growfs重新读取</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@linlink ~]# xfs_growfs /dev/mapper/centos-root<br>meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=3276800 blks<br>         =                       sectsz=512   attr=2, projid32bit=1<br>         =                       crc=1        finobt=0 spinodes=0<br>data     =                       bsize=4096   blocks=13107200, imaxpct=25<br>         =                       sunit=0      swidth=0 blks<br>naming   =version 2              bsize=4096   ascii-ci=0 ftype=1<br>log      =internal               bsize=4096   blocks=6400, version=2<br>         =                       sectsz=512   sunit=0 blks, lazy-count=1<br>realtime =none                   extsz=4096   blocks=0, rtextents=0<br>data blocks changed from 13107200 to 23592960<br></code></pre></td></tr></table></figure><h2 id="再次查看"><a href="#再次查看" class="headerlink" title="再次查看"></a>再次查看</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@linlink ~]# df -TH<br>Filesystem              Type      Size  Used Avail Use% Mounted on<br>/dev/mapper/centos-root xfs        97G  1.1G   96G   2% /<br>devtmpfs                devtmpfs  2.0G     0  2.0G   0% /dev<br>tmpfs                   tmpfs     2.0G     0  2.0G   0% /dev/shm<br>tmpfs                   tmpfs     2.0G   13M  2.0G   1% /run<br>tmpfs                   tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup<br>/dev/sda1               xfs       1.1G  149M  915M  14% /boot<br>/dev/mapper/centos-home xfs       156G   34M  156G   1% /home<br>tmpfs                   tmpfs     396M     0  396M   0% /run/user/0<br></code></pre></td></tr></table></figure></div></details><h1 id="NFS"><a href="#NFS" class="headerlink" title="NFS"></a>NFS</h1><details class="toggle" ><summary class="toggle-button" style="">点击查看</summary><div class="toggle-content"><h2 id="服务端"><a href="#服务端" class="headerlink" title="服务端"></a>服务端</h2><h3 id="安装软件包"><a href="#安装软件包" class="headerlink" title="安装软件包"></a>安装软件包</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">yum -y install nfs-utils rpcbind<br></code></pre></td></tr></table></figure><h3 id="配置相关文件、注：192-168-20-0-x2F-24为主机IP段"><a href="#配置相关文件、注：192-168-20-0-x2F-24为主机IP段" class="headerlink" title="配置相关文件、注：192.168.20.0&#x2F;24为主机IP段"></a>配置相关文件、注：192.168.20.0&#x2F;24为主机IP段</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">mkdir /nfs<br>echo &#x27;/nfs 192.168.20.0/24(rw,sync,no_root_squash)&#x27; &gt; /etc/exports<br></code></pre></td></tr></table></figure><table><thead><tr><th align="center">权限</th><th align="center">解释</th></tr></thead><tbody><tr><td align="center">rw:</td><td align="center">可读写</td></tr><tr><td align="center">ro:</td><td align="center">只读，但最终能不能读写，还是与文件系统的rwx 及身份有关</td></tr><tr><td align="center">no_root_squash：</td><td align="center">当NFS客户端以root管理员访问时，映射为NFS服务器的root管理员</td></tr><tr><td align="center">root_squash：</td><td align="center">当NFS客户端以root管理员访问时，映射为NFS服务器的匿名（nobody）用户</td></tr><tr><td align="center">all_squash:</td><td align="center">不论登入NFS 的使用者身份为何，均被映射为匿名用户，通常就是nobody(nfsnobody)</td></tr><tr><td align="center">insecure:</td><td align="center">允许从客户端过来的非授权访问</td></tr><tr><td align="center">sync:</td><td align="center">数据会同步写入到内存与硬盘中</td></tr><tr><td align="center">async:</td><td align="center">数据会先暂存于内存当中，而非直接写入硬盘</td></tr><tr><td align="center">anonuid:</td><td align="center">指定uid的值，此uid必须存在于&#x2F;etc&#x2F;passwd中</td></tr><tr><td align="center">anongid:</td><td align="center">指定gid的值，此gid必须存在于&#x2F;etc&#x2F;group中</td></tr></tbody></table><h3 id="启动nfs服务-开机自启"><a href="#启动nfs服务-开机自启" class="headerlink" title="启动nfs服务+开机自启"></a>启动nfs服务+开机自启</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">systemctl start rpcbind nfs-server &amp;&amp; systemctl enable rpcbind nfs-server<br></code></pre></td></tr></table></figure><h3 id="检查服务是否存在、注：192-168-20-10为主机ip及nfs服务端ip"><a href="#检查服务是否存在、注：192-168-20-10为主机ip及nfs服务端ip" class="headerlink" title="检查服务是否存在、注：192.168.20.10为主机ip及nfs服务端ip"></a>检查服务是否存在、注：192.168.20.10为主机ip及nfs服务端ip</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">showmount -e 192.168.20.10<br></code></pre></td></tr></table></figure><h2 id="客户端"><a href="#客户端" class="headerlink" title="客户端"></a>客户端</h2><h3 id="客户端安装软件包-不用启动"><a href="#客户端安装软件包-不用启动" class="headerlink" title="客户端安装软件包(不用启动)"></a>客户端安装软件包(不用启动)</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">yum -y install nfs-utils rpcbind<br></code></pre></td></tr></table></figure><h3 id="客户端检查"><a href="#客户端检查" class="headerlink" title="客户端检查"></a>客户端检查</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">showmount -e 192.168.20.10<br></code></pre></td></tr></table></figure><h3 id="客户端挂载"><a href="#客户端挂载" class="headerlink" title="客户端挂载"></a>客户端挂载</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">mkdir /nfs<br>mount -t nfs 192.168.20.10:/nfs /nfs<br></code></pre></td></tr></table></figure><h3 id="客户端查看挂载"><a href="#客户端查看挂载" class="headerlink" title="客户端查看挂载"></a>客户端查看挂载</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">df -TH<br></code></pre></td></tr></table></figure><h3 id="客户端测试写入"><a href="#客户端测试写入" class="headerlink" title="客户端测试写入"></a>客户端测试写入</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">mkdir /nfs/qnmdnfs<br>ll /nfs/<br></code></pre></td></tr></table></figure></div></details><h1 id="HDFS"><a href="#HDFS" class="headerlink" title="HDFS"></a>HDFS</h1><details class="toggle" ><summary class="toggle-button" style="">点击查看</summary><div class="toggle-content"><h2 id="配置需求清单"><a href="#配置需求清单" class="headerlink" title="配置需求清单"></a>配置需求清单</h2><table><thead><tr><th align="center">虚拟机</th><th align="center">工作节点1</th><th align="center">工作节点2</th><th align="center">工作节点3</th></tr></thead><tbody><tr><td align="center">主机名</td><td align="center">node1</td><td align="center">node2</td><td align="center">node3</td></tr><tr><td align="center">CPU</td><td align="center">2H</td><td align="center">2H</td><td align="center">2H</td></tr><tr><td align="center">磁盘</td><td align="center">60GB</td><td align="center">60GB</td><td align="center">60GB</td></tr><tr><td align="center">内存</td><td align="center">2GB</td><td align="center">2GB</td><td align="center">2GB</td></tr><tr><td align="center">网络模式</td><td align="center">NAT</td><td align="center">NAT</td><td align="center">NAT</td></tr><tr><td align="center">IP地址</td><td align="center">192.168.20.21</td><td align="center">192.168.20.22</td><td align="center">192.168.20.23</td></tr></tbody></table><h2 id="添加本地解析-所有工作节点执行"><a href="#添加本地解析-所有工作节点执行" class="headerlink" title="添加本地解析_所有工作节点执行"></a>添加本地解析_所有工作节点执行</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">echo &quot;192.168.20.21 node1<br>192.168.20.22 node2<br>192.168.20.23 node3 <br>&quot; &gt;&gt; /etc/hosts<br></code></pre></td></tr></table></figure><h2 id="下载jdk1-8和hadoop软件包-所有工作节点执行"><a href="#下载jdk1-8和hadoop软件包-所有工作节点执行" class="headerlink" title="下载jdk1.8和hadoop软件包_所有工作节点执行"></a>下载jdk1.8和hadoop软件包_所有工作节点执行</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">yum -y install wget<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">wget https://llwp.linlink.xyz/d/cloudcompute/test/jdk-8u331-linux-x64.tar.gz<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">wget https://llwp.linlink.xyz/d/cloudcompute/test/hadoop-2.10.1.tar.gz<br></code></pre></td></tr></table></figure><h2 id="解压-所有工作节点执行"><a href="#解压-所有工作节点执行" class="headerlink" title="解压_所有工作节点执行"></a>解压_所有工作节点执行</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">tar xf jdk-8u331-linux-x64.tar.gz -C /usr/local/<br>tar xf hadoop-2.10.1.tar.gz -C /usr/local/<br></code></pre></td></tr></table></figure><h2 id="配置jdk环境和Hadoop环境-所有工作节点执行"><a href="#配置jdk环境和Hadoop环境-所有工作节点执行" class="headerlink" title="配置jdk环境和Hadoop环境_所有工作节点执行"></a>配置jdk环境和Hadoop环境_所有工作节点执行</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">echo &#x27;export JAVA_HOME=/usr/local/jdk1.8.0_331<br>export PATH=$PATH:$JAVA_HOME/bin<br>export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar<br>export PATH=$PATH:$JAVA_HOME/bin:/usr/local/hadoop-2.10.1/bin/:/usr/local/hadoop-2.10.1/sbin/<br>&#x27; &gt;&gt; /etc/profile<br></code></pre></td></tr></table></figure><h2 id="检查jdk环境-所有工作节点执行"><a href="#检查jdk环境-所有工作节点执行" class="headerlink" title="检查jdk环境_所有工作节点执行"></a>检查jdk环境_所有工作节点执行</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">source /etc/profile<br>java -version<br></code></pre></td></tr></table></figure><h2 id="设置免密登录-只在node1执行"><a href="#设置免密登录-只在node1执行" class="headerlink" title="设置免密登录_只在node1执行"></a>设置免密登录_只在node1执行</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@node1 ~]# ssh-keygen<br>Generating public/private rsa key pair.<br>Enter file in which to save the key (/root/.ssh/id_rsa):<br>Created directory &#x27;/root/.ssh&#x27;.<br>Enter passphrase (empty for no passphrase):<br>Enter same passphrase again:<br>Your identification has been saved in /root/.ssh/id_rsa.<br>Your public key has been saved in /root/.ssh/id_rsa.pub.<br>The key fingerprint is:<br>SHA256:3F/MMmOKhOzcw1F5gkImyLlkMgBTulWKBkkyrZe5Rl8 root@node1<br>The key&#x27;s randomart image is:<br>+---[RSA 2048]----+<br>|@*.oo o          |<br>|*=Bo +   . .     |<br>|oBo+  . . + .    |<br>|oo*  .E+ o o o   |<br>|.o o .o S . = +  |<br>|  o .o + o + =   |<br>| .    o = . .    |<br>|         .       |<br>|                 |<br>+----[SHA256]-----+<br>[root@node1 ~]#<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@node1 ~]# ssh-copy-id node1<br>/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: &quot;/root/.ssh/id_rsa.pub&quot;<br>The authenticity of host &#x27;node1 (fe80::e71b:1e52:c6a8:3521%ens33)&#x27; can&#x27;t be established.<br>ECDSA key fingerprint is SHA256:cuzySJJ+Y1b0xwsabngEt/Onknu48EOGb+lxmFxLwsA.<br>ECDSA key fingerprint is MD5:f9:b6:2c:32:94:58:10:70:88:89:9b:f4:8a:2b:18:fa.<br>Are you sure you want to continue connecting (yes/no)? yes<br>/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed<br>/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys<br>root@node1&#x27;s password: 输入密码<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@node1 ~]# ssh-copy-id node2<br>/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: &quot;/root/.ssh/id_rsa.pub&quot;<br>The authenticity of host &#x27;node2 (192.168.20.22)&#x27; can&#x27;t be established.<br>ECDSA key fingerprint is SHA256:cuzySJJ+Y1b0xwsabngEt/Onknu48EOGb+lxmFxLwsA.<br>ECDSA key fingerprint is MD5:f9:b6:2c:32:94:58:10:70:88:89:9b:f4:8a:2b:18:fa.<br>Are you sure you want to continue connecting (yes/no)? yes<br>/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed<br>/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys<br>root@node2&#x27;s password: 输入密码<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@node1 ~]# ssh-copy-id node3<br>/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: &quot;/root/.ssh/id_rsa.pub&quot;<br>The authenticity of host &#x27;node3 (192.168.20.23)&#x27; can&#x27;t be established.<br>ECDSA key fingerprint is SHA256:cuzySJJ+Y1b0xwsabngEt/Onknu48EOGb+lxmFxLwsA.<br>ECDSA key fingerprint is MD5:f9:b6:2c:32:94:58:10:70:88:89:9b:f4:8a:2b:18:fa.<br>Are you sure you want to continue connecting (yes/no)? yes<br>/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed<br>/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys<br>root@node3&#x27;s password: 输入密码<br></code></pre></td></tr></table></figure><h2 id="修改配置文件-所有工作节点执行"><a href="#修改配置文件-所有工作节点执行" class="headerlink" title="修改配置文件__所有工作节点执行"></a>修改配置文件__所有工作节点执行</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">sed &quot;25,26d&quot; /usr/local/hadoop-2.10.1/etc/hadoop/hadoop-env.sh  -i<br>sed -i &quot;24a export JAVA_HOME=/usr/local/jdk1.8.0_331&quot; /usr/local/hadoop-2.10.1/etc/hadoop/hadoop-env.sh<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">sed -i &quot;19a &lt;property&gt;\n\    &lt;name&gt;fs.defaultFS&lt;/name&gt;\n\    &lt;value&gt;hdfs://node1:9000&lt;/value&gt;\n&lt;/property&gt;\n&lt;property&gt;\n\    &lt;name&gt;hadoop.tmp.dir&lt;/name&gt;\n\    &lt;value&gt;/opt/hadoop-2.10.1&lt;/value&gt;\n&lt;/property&gt;&quot; /usr/local/hadoop-2.10.1/etc/hadoop/core-site.xml<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">sed -i &quot;19a &lt;property&gt;\n\    &lt;name&gt;dfs.replication&lt;/name&gt;\n\    &lt;value&gt;1&lt;/value&gt;\n&lt;/property&gt;\n&lt;property&gt;\n\    &lt;name&gt;dfs.namenode.secondary.http-address&lt;/name&gt;\n\    &lt;value&gt;node2:50090&lt;/value&gt;\n&lt;/property&gt;&quot; /usr/local/hadoop-2.10.1/etc/hadoop/hdfs-site.xml<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">echo &quot;node3&quot; &gt; /usr/local/hadoop-2.10.1/etc/hadoop/slaves<br></code></pre></td></tr></table></figure><h2 id="初始化-启动-node1执行"><a href="#初始化-启动-node1执行" class="headerlink" title="初始化+启动_node1执行"></a>初始化+启动_node1执行</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">hadoop namenode -format<br>start-dfs.sh<br></code></pre></td></tr></table></figure><h2 id="查看节点状态"><a href="#查看节点状态" class="headerlink" title="查看节点状态"></a>查看节点状态</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@node1 ~]# jps<br>27145 NameNode<br>27530 Jps<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@node2 ~]# jps<br>11333 Jps<br>11273 SecondaryNameNode<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@node3 ~]# jps<br>13621 Jps<br>13530 DataNode<br></code></pre></td></tr></table></figure><h2 id="test一下"><a href="#test一下" class="headerlink" title="test一下"></a>test一下</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@node1 ~]# hadoop fs -put jdk-8u331-linux-x64.tar.gz /<br>[root@node1 ~]# hadoop fs -ls /<br>Found 1 items<br>-rw-r--r--   1 root supergroup  148003999 2023-04-05 09:59 /jdk-8u331-linux-x64.tar.gz<br></code></pre></td></tr></table></figure></div></details><h1 id="GlusterFS"><a href="#GlusterFS" class="headerlink" title="GlusterFS"></a>GlusterFS</h1><details class="toggle" ><summary class="toggle-button" style="">点击查看</summary><div class="toggle-content"></div></details><h1 id="Ceph"><a href="#Ceph" class="headerlink" title="Ceph"></a>Ceph</h1><details class="toggle" ><summary class="toggle-button" style="">点击查看</summary><div class="toggle-content"><h2 id="配置需求清单"><a href="#配置需求清单" class="headerlink" title="配置需求清单"></a>配置需求清单</h2><table><thead><tr><th align="center">虚拟机</th><th align="center">工作节点1(admin)</th><th align="center">工作节点2(osd1)</th><th align="center">工作节点3(osd2)</th></tr></thead><tbody><tr><td align="center">主机名</td><td align="center">node1</td><td align="center">node2</td><td align="center">node3</td></tr><tr><td align="center">CPU</td><td align="center">2H</td><td align="center">2H</td><td align="center">2H</td></tr><tr><td align="center">磁盘</td><td align="center">60GB+20GB</td><td align="center">60GB+20GB</td><td align="center">60GB+20GB</td></tr><tr><td align="center">内存</td><td align="center">2GB</td><td align="center">2GB</td><td align="center">2GB</td></tr><tr><td align="center">网络模式</td><td align="center">NAT</td><td align="center">NAT</td><td align="center">NAT</td></tr><tr><td align="center">IP地址</td><td align="center">192.168.20.31</td><td align="center">192.168.20.32</td><td align="center">192.168.20.33</td></tr></tbody></table><h2 id="关闭防火墙和selinux-所有工作节点执行"><a href="#关闭防火墙和selinux-所有工作节点执行" class="headerlink" title="关闭防火墙和selinux_所有工作节点执行"></a>关闭防火墙和selinux_所有工作节点执行</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">systemctl stop firewalld &amp;&amp; systemctl disable firewalld<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">setenforce 0<br></code></pre></td></tr></table></figure><h2 id="添加本地解析-所有工作节点执行"><a href="#添加本地解析-所有工作节点执行" class="headerlink" title="添加本地解析_所有工作节点执行"></a>添加本地解析_所有工作节点执行</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">echo &quot;192.168.20.31 node1<br>192.168.20.32 node2<br>192.168.20.33 node3 <br>&quot; &gt;&gt; /etc/hosts<br></code></pre></td></tr></table></figure><h2 id="配置免密登录-node1执行"><a href="#配置免密登录-node1执行" class="headerlink" title="配置免密登录_node1执行"></a>配置免密登录_node1执行</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@node1 ~]# ssh-keygen<br>Generating public/private rsa key pair.<br>Enter file in which to save the key (/root/.ssh/id_rsa):<br>/root/.ssh/id_rsa already exists.<br>Overwrite (y/n)? y<br>Enter passphrase (empty for no passphrase):<br>Enter same passphrase again:<br>Your identification has been saved in /root/.ssh/id_rsa.<br>Your public key has been saved in /root/.ssh/id_rsa.pub.<br>The key fingerprint is:<br>SHA256:6JofyA259O812g65JO/R5gwDh6fV/GYyj5jL3mMn1wA root@node1<br>The key&#x27;s randomart image is:<br>+---[RSA 2048]----+<br>|                 |<br>|                 |<br>|                 |<br>|     . o oE      |<br>|    + + S o.     |<br>|   o B * o ..    |<br>|    + B B B +o   |<br>|     o B ^+Oo .  |<br>|    o..+&amp;+B=.    |<br>+----[SHA256]-----+<br>[root@node1 ~]# ssh-copy-id root@node1<br>/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: &quot;/root/.ssh/id_rsa.pub&quot;<br>The authenticity of host &#x27;node1 (192.168.20.31)&#x27; can&#x27;t be established.<br>ECDSA key fingerprint is SHA256:QOg9grT/Owi/HDJRYqkboEZGGOABHPRDTpv99gGYL28.<br>ECDSA key fingerprint is MD5:d8:bf:8e:c5:89:5e:8c:94:36:f2:e2:20:c9:58:25:71.<br>Are you sure you want to continue connecting (yes/no)? yes<br>/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed<br>/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys<br>root@node1&#x27;s password:     这里输入密码<br><br>Number of key(s) added: 1<br><br>Now try logging into the machine, with:   &quot;ssh &#x27;root@node1&#x27;&quot;<br>and check to make sure that only the key(s) you wanted were added.<br><br>[root@node1 ~]# ssh-copy-id root@node2<br>/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: &quot;/root/.ssh/id_rsa.pub&quot;<br>The authenticity of host &#x27;node2 (192.168.20.32)&#x27; can&#x27;t be established.<br>ECDSA key fingerprint is SHA256:QOg9grT/Owi/HDJRYqkboEZGGOABHPRDTpv99gGYL28.<br>ECDSA key fingerprint is MD5:d8:bf:8e:c5:89:5e:8c:94:36:f2:e2:20:c9:58:25:71.<br>Are you sure you want to continue connecting (yes/no)? yes<br>/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed<br>/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys<br>root@node2&#x27;s password:    这里输入密码<br><br>Number of key(s) added: 1<br><br>Now try logging into the machine, with:   &quot;ssh &#x27;root@node2&#x27;&quot;<br>and check to make sure that only the key(s) you wanted were added.<br><br>[root@node1 ~]# ssh-copy-id root@node3<br>/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: &quot;/root/.ssh/id_rsa.pub&quot;<br>The authenticity of host &#x27;node3 (192.168.20.33)&#x27; can&#x27;t be established.<br>ECDSA key fingerprint is SHA256:QOg9grT/Owi/HDJRYqkboEZGGOABHPRDTpv99gGYL28.<br>ECDSA key fingerprint is MD5:d8:bf:8e:c5:89:5e:8c:94:36:f2:e2:20:c9:58:25:71.<br>Are you sure you want to continue connecting (yes/no)? yes<br>/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed<br>/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys<br>root@node3&#x27;s password:    这里输入密码<br><br>Number of key(s) added: 1<br><br>Now try logging into the machine, with:   &quot;ssh &#x27;root@node3&#x27;&quot;<br>and check to make sure that only the key(s) you wanted were added.<br></code></pre></td></tr></table></figure><h2 id="配置yum源-所有工作节点执行"><a href="#配置yum源-所有工作节点执行" class="headerlink" title="配置yum源_所有工作节点执行"></a>配置yum源_所有工作节点执行</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">yum -y install wget<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">echo &quot;[ceph]<br>name=ceph<br>baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/x86_64/<br>gpgcheck=0<br>priority=1<br>[ceph-noarch]<br>name=cephnoarch<br>baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch/<br>gpgcheck=0<br>priority=1<br>[ceph-source]<br>name=Ceph source packages<br>baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/SRPMS<br>enabled=0<br>gpgcheck=1<br>type=rpm-md<br>gpgkey=http://mirrors.aliyun.com/ceph/keys/release.asc<br>priority=1<br>&quot; &gt; /etc/yum.repos.d/ceph.repo<br></code></pre></td></tr></table></figure><h2 id="开始安装Ceph"><a href="#开始安装Ceph" class="headerlink" title="开始安装Ceph"></a>开始安装Ceph</h2><h3 id="node1安装"><a href="#node1安装" class="headerlink" title="node1安装"></a>node1安装</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">yum -y install ceph-deploy ceph python-setuptools <br></code></pre></td></tr></table></figure><h3 id="node2-3安装"><a href="#node2-3安装" class="headerlink" title="node2~3安装"></a>node2~3安装</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">yum -y install ceph python-setuptools <br></code></pre></td></tr></table></figure><h2 id="切换工作目录-所有工作节点执行"><a href="#切换工作目录-所有工作节点执行" class="headerlink" title="切换工作目录_所有工作节点执行"></a>切换工作目录_所有工作节点执行</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">cd /etc/ceph/<br></code></pre></td></tr></table></figure><h2 id="node1执行"><a href="#node1执行" class="headerlink" title="node1执行"></a>node1执行</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">ceph-deploy new node2 node3<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">ceph-deploy mon create-initial<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">ceph-deploy osd create --data /dev/sdb node2<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">ceph-deploy osd create --data /dev/sdb node3<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">ceph-deploy admin node2 node3<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">ceph-deploy mgr create node1 node2 node3<br></code></pre></td></tr></table></figure><h2 id="所有工作节点执行"><a href="#所有工作节点执行" class="headerlink" title="所有工作节点执行"></a>所有工作节点执行</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">chmod +r ceph.client.admin.keyring<br></code></pre></td></tr></table></figure><h2 id="创建dashboard-node1执行"><a href="#创建dashboard-node1执行" class="headerlink" title="创建dashboard_node1执行"></a>创建dashboard_node1执行</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">yum -y install ceph-mgr-dashboard<br></code></pre></td></tr></table></figure><h3 id="编辑ceph-conf文件-node1执行"><a href="#编辑ceph-conf文件-node1执行" class="headerlink" title="编辑ceph.conf文件_node1执行"></a>编辑ceph.conf文件_node1执行</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">echo &quot;[mon]<br>mgr initial modules = dashboard<br>&quot; &gt;&gt; /etc/ceph/ceph.conf<br></code></pre></td></tr></table></figure><h2 id="推送配置文件-node1执行"><a href="#推送配置文件-node1执行" class="headerlink" title="推送配置文件_node1执行"></a>推送配置文件_node1执行</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">ceph-deploy --overwrite-conf config push node1 node2 node3 <br></code></pre></td></tr></table></figure><h2 id="重启mgr-node1执行"><a href="#重启mgr-node1执行" class="headerlink" title="重启mgr_node1执行"></a>重启mgr_node1执行</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">systemctl restart ceph-mgr@node1<br></code></pre></td></tr></table></figure><h2 id="使用以下内置命令生成并安装自签名证书-node1执行"><a href="#使用以下内置命令生成并安装自签名证书-node1执行" class="headerlink" title="使用以下内置命令生成并安装自签名证书_node1执行"></a>使用以下内置命令生成并安装自签名证书_node1执行</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">ceph mgr module enable dashboard --force<br>ceph dashboard create-self-signed-cert<br></code></pre></td></tr></table></figure><h2 id="创建具有管理员角色的用户-node1执行"><a href="#创建具有管理员角色的用户-node1执行" class="headerlink" title="创建具有管理员角色的用户_node1执行"></a>创建具有管理员角色的用户_node1执行</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">echo &quot;000000&quot; &gt; passwd<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">ceph dashboard set-login-credentials admin -i passwd<br></code></pre></td></tr></table></figure><h2 id="查看ceph-mgr服务"><a href="#查看ceph-mgr服务" class="headerlink" title="查看ceph-mgr服务:"></a>查看ceph-mgr服务:</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">ceph mgr services<br></code></pre></td></tr></table></figure><h2 id="访问https-node1-ip-8443"><a href="#访问https-node1-ip-8443" class="headerlink" title="访问https://node1_ip:8443"></a>访问<a href="https://node1_ip:8443/">https://node1_ip:8443</a></h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs plaintext"># 注意：这里一定要加&quot;https://&quot;<br>账号：admin<br>密码：000000<br></code></pre></td></tr></table></figure></div></details>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;磁盘分区&quot;&gt;&lt;a href=&quot;#磁盘分区&quot; class=&quot;headerlink&quot; title=&quot;磁盘分区&quot;&gt;&lt;/a&gt;磁盘分区&lt;/h1&gt;&lt;details class=&quot;toggle&quot; &gt;&lt;summary class=&quot;toggle-button&quot; style=&quot;&quot;&gt;</summary>
      
    
    
    
    <category term="网络存储" scheme="https://www.linlink.xyz/categories/%E7%BD%91%E7%BB%9C%E5%AD%98%E5%82%A8/"/>
    
    
    <category term="网络存储" scheme="https://www.linlink.xyz/tags/%E7%BD%91%E7%BB%9C%E5%AD%98%E5%82%A8/"/>
    
  </entry>
  
  <entry>
    <title>Ansible</title>
    <link href="https://www.linlink.xyz/posts/a71433d.html"/>
    <id>https://www.linlink.xyz/posts/a71433d.html</id>
    <published>2023-02-09T07:00:34.000Z</published>
    <updated>2023-06-16T14:18:43.131Z</updated>
    
    <content type="html"><![CDATA[<h1 id="温馨提醒"><a href="#温馨提醒" class="headerlink" title="温馨提醒"></a>温馨提醒</h1><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">这不是教程、只是我的备忘录罢了、如果你能看懂那只能说明你很NB<br>如果你想学习ansible、可以前往官方地址：https://docs.ansible.com/ansible/latest/<br></code></pre></td></tr></table></figure><h1 id="Ansible安装及配置"><a href="#Ansible安装及配置" class="headerlink" title="Ansible安装及配置"></a>Ansible安装及配置</h1><details class="toggle" ><summary class="toggle-button" style="">点击看笔记</summary><div class="toggle-content"><h2 id="安装Ansible"><a href="#安装Ansible" class="headerlink" title="安装Ansible"></a>安装Ansible</h2><p>在CentOS上</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">sudo yum install -y epel-release<br>sudo yum install -y ansible libselinux-python<br></code></pre></td></tr></table></figure><p>在Fedora上</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">sudo yum install -y epel-release<br>sudo yum install -y ansible<br></code></pre></td></tr></table></figure><p>在 Ubuntu系统上配置PPA并安装 Ansible</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">sudo apt update<br>sudo apt install software-properties-common<br>sudo add-apt-repository --yes --update ppa:ansible/ansible<br>sudo apt install ansible<br></code></pre></td></tr></table></figure><p>在 Debian 上安装 Ansible</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">deb http://ppa.launchpad.net/ansible/ansible/ubuntu focal main<br>sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367<br>sudo apt update<br>sudo apt install ansible<br></code></pre></td></tr></table></figure><h2 id="相关版本信息及配置文件路径"><a href="#相关版本信息及配置文件路径" class="headerlink" title="相关版本信息及配置文件路径"></a>相关版本信息及配置文件路径</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@mst ~]# ansible --version<br>ansible 2.9.27<br>  config file = /etc/ansible/ansible.cfg<br>  configured module search path = [u&#x27;/root/.ansible/plugins/modules&#x27;, u&#x27;/usr/sha re/ansible/plugins/modules&#x27;]<br>  ansible python module location = /usr/lib/python2.7/site-packages/ansible<br>  executable location = /usr/bin/ansible<br>  python version = 2.7.5 (default, Apr 11 2018, 07:36:10) [GCC 4.8.5 20150623 (R ed Hat 4.8.5-28)]<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">/etc/ansible/ansible.cfg<br>/etc/ansible/hosts<br>#这两个文件路径记住<br></code></pre></td></tr></table></figure></div></details><h1 id="Ansible认证方式"><a href="#Ansible认证方式" class="headerlink" title="Ansible认证方式"></a>Ansible认证方式</h1><details class="toggle" ><summary class="toggle-button" style="">学习学习</summary><div class="toggle-content"><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">Ansible认证方式(ssh)就两种：<br>密码认证 传统认证、安全性一般、适用于绝大部分场景<br>密钥认证 有一定的局限性、安全性强、适用于部分场景<br></code></pre></td></tr></table></figure><h2 id="密钥认证"><a href="#密钥认证" class="headerlink" title="密钥认证"></a>密钥认证</h2><h3 id="使用ssh-keygen生成私钥和公钥、全部回车默认即可"><a href="#使用ssh-keygen生成私钥和公钥、全部回车默认即可" class="headerlink" title="使用ssh-keygen生成私钥和公钥、全部回车默认即可"></a>使用ssh-keygen生成私钥和公钥、全部回车默认即可</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">ssh-keygen -t rsa<br></code></pre></td></tr></table></figure><h3 id="配发密钥、执行后让你输入目标机器的密码"><a href="#配发密钥、执行后让你输入目标机器的密码" class="headerlink" title="配发密钥、执行后让你输入目标机器的密码"></a>配发密钥、执行后让你输入目标机器的密码</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">ssh-copy-id $username@$ip<br></code></pre></td></tr></table></figure><h2 id="密码认证"><a href="#密码认证" class="headerlink" title="密码认证"></a>密码认证</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">/etc/ansible/ansible.cfg<br>/etc/ansible/hosts<br>配置密码认证需要用到这两个配置文件<br></code></pre></td></tr></table></figure><h3 id="设置默认不检查key"><a href="#设置默认不检查key" class="headerlink" title="设置默认不检查key"></a>设置默认不检查key</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">sed -i &quot;71a host_key_checking=False&quot; /etc/ansible/ansible.cfg         <br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">为什么要设置默认不检查key？<br>因为如下<br>Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this.   Please add this host&#x27;s fingerprint to your known_hosts file to manage this host.<br>使用SSH密码代替密钥是不可能的，因为主机密钥检查是启用的，而sshpass不支持这一点。请将该主机的指纹添加到known_hosts文件中以管理该主机。<br></code></pre></td></tr></table></figure><h3 id="hosts文件配置、相关参数"><a href="#hosts文件配置、相关参数" class="headerlink" title="hosts文件配置、相关参数"></a>hosts文件配置、相关参数</h3><table><thead><tr><th align="center">参数</th><th align="center">参数类型</th><th align="center">参数说明</th></tr></thead><tbody><tr><td align="center">ansible_host</td><td align="center">主机地址</td><td align="center">远程主机IP地址</td></tr><tr><td align="center">ansible_port</td><td align="center">主机端口</td><td align="center">指定ssh连接端口、默认为22</td></tr><tr><td align="center">ansible_user</td><td align="center">主机用户</td><td align="center">指定默认远程连接用户</td></tr><tr><td align="center">ansible_password</td><td align="center">用户密码</td><td align="center">指定用户密码</td></tr></tbody></table><h3 id="备份一下hosts文件"><a href="#备份一下hosts文件" class="headerlink" title="备份一下hosts文件"></a>备份一下hosts文件</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">cp /etc/ansible/hosts /etc/ansible/hosts.back<br></code></pre></td></tr></table></figure><h3 id="配置hosts文件"><a href="#配置hosts文件" class="headerlink" title="配置hosts文件"></a>配置hosts文件</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">echo &quot;&quot; &gt; /etc/ansible/hosts                 #里面都是一些配置方法、没什么有用的东西、那就全部清空了<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@mst ~]# cat /etc/ansible/hosts<br>[test0]<br>192.168.0.1 ansible_port=22 ansible_user=root ansible_password=&#x27;password&#x27;<br>#如果需要指定端口、用户请使用test0<br>[test1]<br>192.168.0.1  ansible_password=&#x27;password&#x27;<br>#如果默认端口为22、用户为root、可以简写成test1<br>[test2]<br>192.168.0.[1:100]  ansible_password=&#x27;password&#x27;<br>#如果机器非常的多、可以简写成test2<br></code></pre></td></tr></table></figure></div></details><h1 id="相关模块学习"><a href="#相关模块学习" class="headerlink" title="相关模块学习"></a>相关模块学习</h1><details class="toggle" ><summary class="toggle-button" style="">点击看笔记</summary><div class="toggle-content"><h2 id="shell模块"><a href="#shell模块" class="headerlink" title="shell模块"></a>shell模块</h2><ul><li>shell模块和command功能类似，但可以识别特殊字符<table><thead><tr><th align="center">参数</th><th align="center">释义</th></tr></thead><tbody><tr><td align="center">chdir</td><td align="center">执行命令前先进入到指定目录</td></tr><tr><td align="center">cmd</td><td align="center">运行命令指定</td></tr><tr><td align="center">creates</td><td align="center">如果文件存在将不运行</td></tr><tr><td align="center">removes</td><td align="center">如果文件存在在将运行</td></tr><tr><td align="center">free_form</td><td align="center">在远程主机中执行的命令，此参数不需要加</td></tr><tr><td align="center">executable</td><td align="center">指定执行环境，默认为sh</td></tr></tbody></table></li></ul><h3 id=""><a href="#" class="headerlink" title=""></a></h3></div></details>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;温馨提醒&quot;&gt;&lt;a href=&quot;#温馨提醒&quot; class=&quot;headerlink&quot; title=&quot;温馨提醒&quot;&gt;&lt;/a&gt;温馨提醒&lt;/h1&gt;&lt;figure class=&quot;highlight plaintext&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;</summary>
      
    
    
    
    <category term="Ansible" scheme="https://www.linlink.xyz/categories/Ansible/"/>
    
    
    <category term="Ansible" scheme="https://www.linlink.xyz/tags/Ansible/"/>
    
  </entry>
  
  <entry>
    <title>Linux RAID</title>
    <link href="https://www.linlink.xyz/posts/1d0c3dbf.html"/>
    <id>https://www.linlink.xyz/posts/1d0c3dbf.html</id>
    <published>2023-01-29T07:00:34.000Z</published>
    <updated>2023-02-23T07:56:13.310Z</updated>
    
    <content type="html"><![CDATA[<h1 id="一些不重要的东西"><a href="#一些不重要的东西" class="headerlink" title="一些不重要的东西"></a>一些不重要的东西</h1><details class="toggle" ><summary class="toggle-button" style="">点击瞧瞧</summary><div class="toggle-content"><h2 id="RAID-是什么？"><a href="#RAID-是什么？" class="headerlink" title="RAID 是什么？"></a>RAID 是什么？</h2><p>RAID （ Redundant Array of Independent Disks ）即独立磁盘冗余阵列，简称为「磁盘阵列」，其实就是用多个独立的磁盘组成在一起形成一个大的磁盘系统，从而实现比单块磁盘更好的存储性能和更高的可靠性。               </p><h2 id="RAID-有哪些？"><a href="#RAID-有哪些？" class="headerlink" title="RAID 有哪些？"></a>RAID 有哪些？</h2><p>RAID方案常见的可以分为：RAID0、RAID1、RAID5、RAID6、RAID10。<br>容量计算中：<br>C为RAID后容量<br>n为磁盘个数<br>d为单个磁盘容量(RAID中磁盘容量大小都应该相同、如果不相同以磁盘容量小的为基准)</p><table><thead><tr><th align="center">RAID类型</th><th align="center">RAID0</th><th align="center">RAID1</th><th align="center">RAID5</th><th align="center">RAID6</th><th align="center">RAID10</th></tr></thead><tbody><tr><td align="center">限制条件</td><td align="center">两块盘</td><td align="center">两块盘</td><td align="center">至少三盘</td><td align="center">至少四盘</td><td align="center">至少四盘</td></tr><tr><td align="center">容量计算</td><td align="center">C&#x3D;100%*nd</td><td align="center">C&#x3D;50%*nd</td><td align="center">C&#x3D;((n-1)&#x2F;n)*nd</td><td align="center">C &#x3D; (n-2)*d</td><td align="center">C&#x3D;50%*nd</td></tr><tr><td align="center">优势</td><td align="center">有效提高磁盘数据的吞吐速度</td><td align="center">数据同时写入两块磁盘设备(数据的镜像或者自动备份)</td><td align="center">提供了冗余性(支持一块盘掉线后仍然正常运行)，磁盘空间利用率较高N-1&#x2F;N(N为磁盘数且必须N&gt;&#x3D;3)，读写速度较快N-1倍</td><td align="center">快速的读取性能，更高的容错能力</td><td align="center">兼顾安全性和速度</td></tr><tr><td align="center">缺陷</td><td align="center">不具备数据备份和错误修复能力</td><td align="center">磁盘利用率低、只有总量的50%、所以用于系统盘较多</td><td align="center">写入数据的速度比对单个磁盘进行写入操作稍慢</td><td align="center">只允许单盘故障</td><td align="center">对盘的数量要求稍高，磁盘使用率为一半</td></tr></tbody></table></div></details><h1 id="磁盘分区fd类型"><a href="#磁盘分区fd类型" class="headerlink" title="磁盘分区fd类型"></a>磁盘分区fd类型</h1><details class="toggle" ><summary class="toggle-button" style="">fd分区</summary><div class="toggle-content"><p>以sdb为例子、其它照推</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">fdisk /dev/sdb   #回车                 #对sdb进行分区<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">n       #回车                          #新建一个分区<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">回车选择默认x4<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">t        #回车                          #改分区类型<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">fd         #回车                         #选择fd分区类型<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">w         #回车                          #w保存并退出<br></code></pre></td></tr></table></figure></div></details><h1 id="mdadm"><a href="#mdadm" class="headerlink" title="mdadm"></a>mdadm</h1><details class="toggle" ><summary class="toggle-button" style="">mdadm</summary><div class="toggle-content"><h2 id="mdadm"><a href="#mdadm" class="headerlink" title="mdadm?"></a>mdadm?</h2><p>是multiple devices admin的简称、是Linux下的一款标准的软件 RAID 管理工具</p><h2 id="安装mdadm"><a href="#安装mdadm" class="headerlink" title="安装mdadm"></a>安装mdadm</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">yum -y install mdadm<br></code></pre></td></tr></table></figure><h2 id="参数"><a href="#参数" class="headerlink" title="参数"></a>参数</h2><table><thead><tr><th align="center">参数</th><th align="center">作用</th></tr></thead><tbody><tr><td align="center">-a</td><td align="center">添加磁盘</td></tr><tr><td align="center">-n</td><td align="center">指定设备数量</td></tr><tr><td align="center">-l</td><td align="center">指定RAID级别</td></tr><tr><td align="center">-C</td><td align="center">创建</td></tr><tr><td align="center">-v</td><td align="center">显示过程</td></tr><tr><td align="center">-f</td><td align="center">模拟设备损坏</td></tr><tr><td align="center">-r</td><td align="center">移除设备</td></tr><tr><td align="center">-Q</td><td align="center">查看摘要信息</td></tr><tr><td align="center">-D</td><td align="center">查看详细信息</td></tr><tr><td align="center">-S</td><td align="center">停止RAID磁盘阵列</td></tr><tr><td align="center">-x</td><td align="center">指定空闲盘（热备磁盘）个数，空闲盘（热备磁盘）能在工作盘损坏后自动顶替</td></tr></tbody></table><h2 id="创建RAID"><a href="#创建RAID" class="headerlink" title="创建RAID"></a>创建RAID</h2><h3 id="sdb和sdc做RAID0、RAID1的例子"><a href="#sdb和sdc做RAID0、RAID1的例子" class="headerlink" title="sdb和sdc做RAID0、RAID1的例子"></a>sdb和sdc做RAID0、RAID1的例子</h3><p>RAID0、注意md0是自己选择的RAID0的名字不是固定的</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">mdadm -C -v /dev/md0 -n 2 -l 0 /dev/sdb1 /dev/sdc1               #完整写法<br>mdadm -Cv /dev/md0 -n2 -l0 /dev/sdb1 /dev/sdc1                   #少空格法<br>mdadm -Cv /dev/md0 -n2 -l0 /dev/sd[b-c]1                         #再再简写<br></code></pre></td></tr></table></figure><p>RAID1、别忘了这玩意至少要两块磁盘</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">mdadm -Cv /dev/md1 -n 2 -l 1 /dev/sd[b-c]1<br></code></pre></td></tr></table></figure><p>RAID5、别忘了这玩意至少要三块磁盘</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">mdadm -Cv /dev/md5 -n3 -l5 /dev/sd[b-d]1<br></code></pre></td></tr></table></figure><p>RAID6、别忘了这玩意至少要四块磁盘</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">mdadm -Cv /dev/md6 -n4 -l6 /dev/sd[b-e]1<br></code></pre></td></tr></table></figure><p>RAID10、别忘了这玩意至少要四块磁盘</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">mdadm -Cv /dev/md10 -n4 -l10 /dev/sd[b-e]1<br></code></pre></td></tr></table></figure></div></details><h1 id="来点实验"><a href="#来点实验" class="headerlink" title="来点实验"></a>来点实验</h1><details class="toggle" ><summary class="toggle-button" style="">小实验</summary><div class="toggle-content"><h2 id="RAID中添加热备份磁盘"><a href="#RAID中添加热备份磁盘" class="headerlink" title="RAID中添加热备份磁盘"></a>RAID中添加热备份磁盘</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">mdadm &lt;RAID?&gt; -a &lt;/dev/sd?&gt;<br></code></pre></td></tr></table></figure><h2 id="RAID中停用磁盘"><a href="#RAID中停用磁盘" class="headerlink" title="RAID中停用磁盘"></a>RAID中停用磁盘</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">mdadm &lt;RAID?&gt; -f &lt;/dev/sd?&gt;<br></code></pre></td></tr></table></figure><h2 id="RAID中移除坏损的磁盘"><a href="#RAID中移除坏损的磁盘" class="headerlink" title="RAID中移除坏损的磁盘"></a>RAID中移除坏损的磁盘</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">mdadm &lt;RAID?&gt; -r &lt;/dev/sd?&gt;<br></code></pre></td></tr></table></figure><h2 id="查看RAID详细信息"><a href="#查看RAID详细信息" class="headerlink" title="查看RAID详细信息"></a>查看RAID详细信息</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">mdadm -D &lt;RAID?&gt;<br></code></pre></td></tr></table></figure><h2 id="停用RAID"><a href="#停用RAID" class="headerlink" title="停用RAID"></a>停用RAID</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">mdadm -S &lt;RAID?&gt;<br></code></pre></td></tr></table></figure></div></details><h1 id="RAID技术术语"><a href="#RAID技术术语" class="headerlink" title="RAID技术术语"></a>RAID技术术语</h1><details class="toggle" ><summary class="toggle-button" style="">看看</summary><div class="toggle-content"><h2 id="1．物理盘"><a href="#1．物理盘" class="headerlink" title="1．物理盘"></a>1．物理盘</h2><p>物理盘是指构建RAID所使用的独立的物理硬盘，RAID创建完成后，物理盘即转换成成员盘。</p><h2 id="2．逻辑盘"><a href="#2．逻辑盘" class="headerlink" title="2．逻辑盘"></a>2．逻辑盘</h2><p>多块物理盘通过RAID控制器（硬件RAID卡）或操作系统的RAID程序（软件RAID）配置为设定的RAID级别后，多块物理硬盘就按固定的RAID级别逻辑算法构成了一块新的虚拟硬盘，这个虚拟硬盘就称为逻辑盘，也称为容器。</p><h2 id="3．逻辑卷"><a href="#3．逻辑卷" class="headerlink" title="3．逻辑卷"></a>3．逻辑卷</h2><p>由逻辑盘形成的虚拟空间称为逻辑卷，也称为逻辑分区。</p><h2 id="4．热备盘"><a href="#4．热备盘" class="headerlink" title="4．热备盘"></a>4．热备盘</h2><p>热备盘是指连接到RAID系统中的没有使用并处于加电待机状态的物理盘，当把此物理盘设定成热备盘，则RAID控制器通过监控RAID系统，有成员盘发生故障，RAID控制器会自动应用热备盘换掉故障的成员盘，并通过相应RAID级别逻辑算法在热备盘上重建故障成员盘的数据，恢复RAID阵列的完整性。并且系统管理人员可以通过更换故障成员盘，并设定更换后的物理盘为新的热备盘来恢复系统的容错修复能力。</p><h2 id="5．去RAID化"><a href="#5．去RAID化" class="headerlink" title="5．去RAID化"></a>5．去RAID化</h2><p>RAID出现故障后，RAID中的逻辑盘会无法识别，而RAID成员盘并不是全部都有故障，为了检测和恢复RAID逻辑盘数据，常常要将成员盘从服务器的硬盘槽位上取下分析。当成员离开了服务器的槽位，也就是脱离了RAID控制器的控制，取下的硬盘就称为去RAID化。</p><h2 id="6．盘序"><a href="#6．盘序" class="headerlink" title="6．盘序"></a>6．盘序</h2><p>多个物理盘组成RAID阵列时，RAID卡会按照硬盘的选择顺序为成员盘安排好序号，这称为盘序。当RAID生成后，盘序就不再发生改变，除非发生热备盘的替换操作，才会影响初始的盘序。</p><h2 id="7．条带"><a href="#7．条带" class="headerlink" title="7．条带"></a>7．条带</h2><p>创建RAID阵列时，配置程序会按照RAID级别要求把每块物理盘分割成若干个容量为2的n次方扇区（每个扇区512字节）大小的单位空间，n为整数，这每一个单位空间都叫作一个条带（Stripe），条带是RAID系统存取数据的基本单位。条带大小是可变的，每块RAID卡条带都有默认值可以默认设置，当然也可以手动调节为RAID卡的其他预设定值。条带也称为“带区”或者“块”，每个条带大小就代表着该条带包含的扇区数。注：每块物理盘的条带都有一个编号，为了使对应关系明确，起始条带号从0开始，每块物理盘的第一个条带都称为0号条带。</p><h2 id="8-盘数"><a href="#8-盘数" class="headerlink" title="8. 盘数"></a>8. 盘数</h2><p>RAID系统中包含的硬盘个数称为盘数，也称为条带（Stripe）数，并常在RAID配置程序中使用条带数代表成员盘个数。</p><h2 id="9．初始化"><a href="#9．初始化" class="headerlink" title="9．初始化"></a>9．初始化</h2><p>初始化（Initialize）是指将完成配置的逻辑盘阵列进行条带数据的重置的过程，可选择快速初始化、全面初始化以及不进行初始化三种操作。</p><h2 id="10．检测数据一致性"><a href="#10．检测数据一致性" class="headerlink" title="10．检测数据一致性"></a>10．检测数据一致性</h2><p>检测数据一致性（Check Consistency）是指检测组成逻辑阵列的成员盘的条带数据的运算是否完成的过程。</p><h2 id="11．在线扩容"><a href="#11．在线扩容" class="headerlink" title="11．在线扩容"></a>11．在线扩容</h2><p>在线扩容是指在不影响已存在的逻辑盘阵列的数据安全性的基础之上，对目标的逻辑盘添加成员盘的操作过程。</p><h2 id="12．在线迁移"><a href="#12．在线迁移" class="headerlink" title="12．在线迁移"></a>12．在线迁移</h2><p>在线迁移是指在不影响已存在的逻辑盘阵列的数据安全性的前提下，改变目标逻辑盘的阵列级别属性的过程。</p></div></details>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;一些不重要的东西&quot;&gt;&lt;a href=&quot;#一些不重要的东西&quot; class=&quot;headerlink&quot; title=&quot;一些不重要的东西&quot;&gt;&lt;/a&gt;一些不重要的东西&lt;/h1&gt;&lt;details class=&quot;toggle&quot; &gt;&lt;summary class=&quot;toggle-b</summary>
      
    
    
    
    <category term="Linux" scheme="https://www.linlink.xyz/categories/Linux/"/>
    
    <category term="RAID" scheme="https://www.linlink.xyz/categories/Linux/RAID/"/>
    
    
    <category term="RAID" scheme="https://www.linlink.xyz/tags/RAID/"/>
    
  </entry>
  
  <entry>
    <title>SQL另类学习法</title>
    <link href="https://www.linlink.xyz/posts/8a713a46.html"/>
    <id>https://www.linlink.xyz/posts/8a713a46.html</id>
    <published>2023-01-05T07:00:34.000Z</published>
    <updated>2023-01-15T03:43:46.070Z</updated>
    
    <content type="html"><![CDATA[<h1 id="数据库"><a href="#数据库" class="headerlink" title="数据库"></a>数据库</h1><details class="toggle" ><summary class="toggle-button" style="">更多</summary><div class="toggle-content"><p>创建数据库</p><div class="tabs" id="test1"><ul class="nav-tabs"><li class="tab active"><button type="button" data-href="#test1-1">MySQL8.0</button></li></ul><div class="tab-contents"><div class="tab-item-content active" id="test1-1"><figure class="highlight sql"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs Sql"><span class="hljs-keyword">CREATE</span> DATABASE [IF <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">EXISTS</span>] $DB_NAME;<br></code></pre></td></tr></table></figure><h2 id="参数"><a href="#参数" class="headerlink" title="参数"></a>参数</h2><ul><li>IF NOT EXISTS 相当于一个条件判断，判断你创建的这个数据库存不存在，不存在就创建，存在就跳过切不报错</li><li>CHARACTER SET 字符集、如果不指定则默认为utf8</li><li>COLLATE 效验规则、如果不指定则默认为utf8_general_ci(不区分大小写)、另外常见的一个是utf_bin(区分大小写)</li></ul><h2 id="创建数据库规则"><a href="#创建数据库规则" class="headerlink" title="创建数据库规则"></a>创建数据库规则</h2><ul><li>不能与其他数据库重名。</li><li>名称最长为64个字符，而别名最多可达256个字符</li><li>尽量不要使用MySQL关键字作为数据库名、表名、如果需要使用请用反引号包起来</li><li>名称可以由任意字母、阿拉伯数字、下划线（_）和“$”组成，可以使用上述的任意字符开头，但不能使用单独的数字，否则会造成它与数值相混淆</li><li>在默认情况下，Windows下数据库名、表名的大小写是不敏感的，而在Linux下数据库名、表名的大小写是敏感的。为了便于数据库在平台间进行移植，建议读者采用小写来定义 数据库名和表名</li></ul><button type="button" class="tab-to-top" aria-label="scroll to top"><i class="fas fa-arrow-up"></i></button></div></div></div><p>查看数据库列表</p><div class="tabs" id="test1"><ul class="nav-tabs"><li class="tab active"><button type="button" data-href="#test1-1">MySQL8.0</button></li></ul><div class="tab-contents"><div class="tab-item-content active" id="test1-1"><figure class="highlight sql"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs Sql"><span class="hljs-keyword">SHOW</span> DATABASES;<br></code></pre></td></tr></table></figure><button type="button" class="tab-to-top" aria-label="scroll to top"><i class="fas fa-arrow-up"></i></button></div></div></div><p>删除数据库</p><div class="tabs" id="test1"><ul class="nav-tabs"><li class="tab active"><button type="button" data-href="#test1-1">MySQL8.0</button></li></ul><div class="tab-contents"><div class="tab-item-content active" id="test1-1"><figure class="highlight sql"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs Sql"><span class="hljs-keyword">drop</span> database $DB_NAME;<br></code></pre></td></tr></table></figure><button type="button" class="tab-to-top" aria-label="scroll to top"><i class="fas fa-arrow-up"></i></button></div></div></div>备份恢复数据库<div class="tabs" id="test1"><ul class="nav-tabs"><li class="tab active"><button type="button" data-href="#test1-1">MySQL8.0</button></li></ul><div class="tab-contents"><div class="tab-item-content active" id="test1-1"><p>备份数据库、Dos命令行执行、一次可以备份多个</p><figure class="highlight sql"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs Sql">mysqldump <span class="hljs-operator">-</span>u$username <span class="hljs-operator">-</span>p$password <span class="hljs-operator">-</span>B $DB_NAME1 $DB_NAME2 $DB_NAME3 <span class="hljs-operator">&gt;</span> $path<span class="hljs-operator">+</span>$filename.sql<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">#命令行写出密码会警告不安全<br>mysqldump: [Warning] Using a password on the command line interface can be insecure.<br></code></pre></td></tr></table></figure><p>恢复数据库、MySQL命令行执行</p><figure class="highlight sql"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs Sql">source $path<span class="hljs-operator">+</span>$filename.sql;<br></code></pre></td></tr></table></figure><button type="button" class="tab-to-top" aria-label="scroll to top"><i class="fas fa-arrow-up"></i></button></div></div></div></div></details><h1 id="表"><a href="#表" class="headerlink" title="表"></a>表</h1><details class="toggle" ><summary class="toggle-button" style="">更多</summary><div class="toggle-content"><p>创建表</p><div class="tabs" id="test2"><ul class="nav-tabs"><li class="tab active"><button type="button" data-href="#test2-1">MySQL8.0</button></li></ul><div class="tab-contents"><div class="tab-item-content active" id="test2-1"><figure class="highlight sql"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs Sql">use `<span class="hljs-keyword">user</span>`;<br><span class="hljs-keyword">create</span> <span class="hljs-keyword">table</span> `<span class="hljs-keyword">user</span>`(<br>  `id` <span class="hljs-type">int</span>, <br>  )<span class="hljs-type">character</span> <span class="hljs-keyword">set</span> utf8 <span class="hljs-keyword">collate</span> utf8_general_ci engine innodb;<br></code></pre></td></tr></table></figure><ul><li>选择user数据库、创建一个字段为id、类型为int、字符集为utf8、效验规则为utf8_general_ci、引擎为innodb的表</li><li>如果创建表时不指定字符集、效验规则、引擎，表就会应用数据库的字符集、效验规则、引擎</li></ul><button type="button" class="tab-to-top" aria-label="scroll to top"><i class="fas fa-arrow-up"></i></button></div></div></div>删除表<div class="tabs" id="table1"><ul class="nav-tabs"><li class="tab active"><button type="button" data-href="#table1-1">MySQL8.0</button></li></ul><div class="tab-contents"><div class="tab-item-content active" id="table1-1"><figure class="highlight sql"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs sql">use $db_name;<br><span class="hljs-keyword">delete</span> <span class="hljs-keyword">from</span> $table_name;<br></code></pre></td></tr></table></figure><figure class="highlight sql"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs Sql">use <span class="hljs-keyword">user</span>;<br><span class="hljs-keyword">delete</span> <span class="hljs-keyword">from</span> <span class="hljs-keyword">user</span>;<br></code></pre></td></tr></table></figure><ul><li>删除use数据库的user表</li></ul><button type="button" class="tab-to-top" aria-label="scroll to top"><i class="fas fa-arrow-up"></i></button></div></div></div>查看表列表<div class="tabs" id="table1"><ul class="nav-tabs"><li class="tab active"><button type="button" data-href="#table1-1">MySQL8.0</button></li></ul><div class="tab-contents"><div class="tab-item-content active" id="table1-1"><figure class="highlight sql"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs sql">use $db_name;<br><span class="hljs-keyword">show</span> tables;<br></code></pre></td></tr></table></figure><button type="button" class="tab-to-top" aria-label="scroll to top"><i class="fas fa-arrow-up"></i></button></div></div></div></div></details><h1 id="约束"><a href="#约束" class="headerlink" title="约束"></a>约束</h1><details class="toggle" ><summary class="toggle-button" style="">更多</summary><div class="toggle-content"><p>not null<br>primary key<br>unique<br>foreifn key<br>check<br>自增长</p></div></details><h1 id="SQL数据类型"><a href="#SQL数据类型" class="headerlink" title="SQL数据类型"></a>SQL数据类型</h1><details class="toggle" ><summary class="toggle-button" style="">更多</summary><div class="toggle-content"><p>懒的弄了、直接用老韩的<br><img src="/pic/sql/1.png" alt="img"><br><img src="/pic/sql/2.png" alt="img"></p></div></details><h1 id="CRUD"><a href="#CRUD" class="headerlink" title="CRUD"></a>CRUD</h1><details class="toggle" ><summary class="toggle-button" style="">更多</summary><div class="toggle-content"><h2 id="Insert"><a href="#Insert" class="headerlink" title="Insert"></a>Insert</h2><h2 id="Update"><a href="#Update" class="headerlink" title="Update"></a>Update</h2><h2 id="Delete"><a href="#Delete" class="headerlink" title="Delete"></a>Delete</h2><h2 id="Select"><a href="#Select" class="headerlink" title="Select"></a>Select</h2><h3 id="单表"><a href="#单表" class="headerlink" title="单表"></a>单表</h3><h3 id="多表"><a href="#多表" class="headerlink" title="多表"></a>多表</h3></div></details><h1 id="函数"><a href="#函数" class="headerlink" title="函数"></a>函数</h1><details class="toggle" ><summary class="toggle-button" style="">更多</summary><div class="toggle-content"><h2 id="统计"><a href="#统计" class="headerlink" title="统计"></a>统计</h2><h2 id="时间日期"><a href="#时间日期" class="headerlink" title="时间日期"></a>时间日期</h2><h2 id="字符串"><a href="#字符串" class="headerlink" title="字符串"></a>字符串</h2><h2 id="数学"><a href="#数学" class="headerlink" title="数学"></a>数学</h2><h2 id="流程控制"><a href="#流程控制" class="headerlink" title="流程控制"></a>流程控制</h2></div></details><h1 id="索引"><a href="#索引" class="headerlink" title="索引"></a>索引</h1><details class="toggle" ><summary class="toggle-button" style="">更多</summary><div class="toggle-content"><h2 id="主键索引"><a href="#主键索引" class="headerlink" title="主键索引"></a>主键索引</h2><h2 id="唯一索引"><a href="#唯一索引" class="headerlink" title="唯一索引"></a>唯一索引</h2><h2 id="普通索引"><a href="#普通索引" class="headerlink" title="普通索引"></a>普通索引</h2><h2 id="全文索引"><a href="#全文索引" class="headerlink" title="全文索引"></a>全文索引</h2></div></details>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;数据库&quot;&gt;&lt;a href=&quot;#数据库&quot; class=&quot;headerlink&quot; title=&quot;数据库&quot;&gt;&lt;/a&gt;数据库&lt;/h1&gt;&lt;details class=&quot;toggle&quot; &gt;&lt;summary class=&quot;toggle-button&quot; style=&quot;&quot;&gt;更多&lt;/</summary>
      
    
    
    
    <category term="SQL" scheme="https://www.linlink.xyz/categories/SQL/"/>
    
    
    <category term="SQL" scheme="https://www.linlink.xyz/tags/SQL/"/>
    
  </entry>
  
  <entry>
    <title>Kali入门到入狱</title>
    <link href="https://www.linlink.xyz/posts/902f9748.html"/>
    <id>https://www.linlink.xyz/posts/902f9748.html</id>
    <published>2022-12-10T07:00:34.000Z</published>
    <updated>2023-02-03T14:08:36.842Z</updated>
    
    <content type="html"><![CDATA[<h1 id="中华人民共和国刑法"><a href="#中华人民共和国刑法" class="headerlink" title="中华人民共和国刑法"></a>中华人民共和国刑法</h1><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><code class="hljs plaintext"> 根据我国《刑法》的规定，非法侵入计算机信息系统罪的客体要件是国家重要领域和要害部门的计算机<br> 信息系统安全;客观要件是行为人实施了违反国家规定侵入国家重要计算机信息系统的行为;主体要件是<br> 一般主体。主观方面表现为故意。<br>《中华人民共和国刑法》<br>第二百八十五条　【非法侵入计算机信息系统罪】违反国家规定，侵入国家事务、国防建设、尖端科学技<br>术领域的计算机信息系统的，处三年以下有期徒刑或者拘役。<br>【非法获取计算机信息系统数据、非法控制计算机信息系统罪】违反国家规定，侵入前款规定以外的计算<br>机信息系统或者采用其他技术手段，获取该计算机信息系统中存储、处理或者传输的数据，或者对该计算<br>机信息系统实施非法控制，情节严重的，处三年以下有期徒刑或者拘役，并处或者单处罚金;情节特别严重<br>的，处三年以上七年以下有期徒刑，并处罚金。<br>【提供侵入、非法控制计算机信息系统程序、工具罪】提供专门用于侵入、非法控制计算机信息系统的程<br>序、工具，或者明知他人实施侵入、非法控制计算机信息系统的违法犯罪行为而为其提供程序、工具，情<br>节严重的，依照前款的规定处罚。<br></code></pre></td></tr></table></figure><h1 id="前提"><a href="#前提" class="headerlink" title="前提"></a>前提</h1><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">* 遵守中华人民共和国刑法<br>* 请遵守中华人民共和国刑法<br>* 请一定遵守中华人民共和国刑法<br>* 了解kali基本知识<br>* 知道字典什么意思<br>* 知道ssh是什么意思<br>* 一些网络基本知识<br></code></pre></td></tr></table></figure><h1 id="用Kali实现ssh爆破"><a href="#用Kali实现ssh爆破" class="headerlink" title="用Kali实现ssh爆破"></a>用Kali实现ssh爆破</h1><details class="toggle" ><summary class="toggle-button" style="">方法</summary><div class="toggle-content"><h2 id="进入msfconsole程序"><a href="#进入msfconsole程序" class="headerlink" title="进入msfconsole程序"></a>进入msfconsole程序</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">msfconsole<br></code></pre></td></tr></table></figure><h2 id="选择ssh-login模块"><a href="#选择ssh-login模块" class="headerlink" title="选择ssh_login模块"></a>选择ssh_login模块</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">use auxiliary/scanner/ssh/ssh_login<br></code></pre></td></tr></table></figure><h2 id="导入攻击目标IP地址"><a href="#导入攻击目标IP地址" class="headerlink" title="导入攻击目标IP地址"></a>导入攻击目标IP地址</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">set RHOSTS $IP<br></code></pre></td></tr></table></figure><h2 id="导入用户字典-绝对路径"><a href="#导入用户字典-绝对路径" class="headerlink" title="导入用户字典(绝对路径)"></a>导入用户字典(绝对路径)</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">set USER_FILE /root/user.txt<br></code></pre></td></tr></table></figure><h2 id="导入密码字典-绝对路径"><a href="#导入密码字典-绝对路径" class="headerlink" title="导入密码字典(绝对路径)"></a>导入密码字典(绝对路径)</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">set PASS_FILE /root/passwd.txt<br></code></pre></td></tr></table></figure><h2 id="指定ssh登录端口"><a href="#指定ssh登录端口" class="headerlink" title="指定ssh登录端口"></a>指定ssh登录端口</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">set RPORT $port<br></code></pre></td></tr></table></figure><h2 id="运行"><a href="#运行" class="headerlink" title="运行"></a>运行</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">run<br></code></pre></td></tr></table></figure><h2 id="假如成功爆破，那么结果-例如-就是"><a href="#假如成功爆破，那么结果-例如-就是" class="headerlink" title="假如成功爆破，那么结果(例如)就是"></a>假如成功爆破，那么结果(例如)就是</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[*] 192.168.20.100:22 - Starting bruteforce<br>[+] 192.168.20.100:22 - Success: &#x27;root:admin&#x27; &#x27;uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 Linux zhangyulin 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux &#x27;<br>[*] Command shell session 1 opened (192.168.20.90:43727 -&gt; 192.168.20.100:22) at 2022-12-10 15:48:40 +0800<br></code></pre></td></tr></table></figure><ul><li>账号：root</li><li>密码：admin</li></ul><h2 id="少年好自为之"><a href="#少年好自为之" class="headerlink" title="少年好自为之"></a>少年好自为之</h2></div></details><h1 id="ddos"><a href="#ddos" class="headerlink" title="ddos"></a>ddos</h1><details class="toggle" ><summary class="toggle-button" style="">方法</summary><div class="toggle-content"><h2 id="下载包"><a href="#下载包" class="headerlink" title="下载包"></a>下载包</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">git clone https://github.com/Ha3MrX/DDos-Attack<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">cd DDos-Attack<br></code></pre></td></tr></table></figure><h2 id="添加执行权限"><a href="#添加执行权限" class="headerlink" title="添加执行权限"></a>添加执行权限</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">chmod +x ddos-attack.py<br></code></pre></td></tr></table></figure><h2 id="启动"><a href="#启动" class="headerlink" title="启动"></a>启动</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">python ddos-attack.py<br></code></pre></td></tr></table></figure></div></details><h1 id="arp欺骗"><a href="#arp欺骗" class="headerlink" title="arp欺骗"></a>arp欺骗</h1><details class="toggle" ><summary class="toggle-button" style="">方法</summary><div class="toggle-content"><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">* 知道网关地址和被攻击的IP地址<br>* 同一局域网内<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">arpspoof -i eth0 -t &lt;pc-ip&gt; &lt;gateway-ip&gt;<br></code></pre></td></tr></table></figure></div></details>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;中华人民共和国刑法&quot;&gt;&lt;a href=&quot;#中华人民共和国刑法&quot; class=&quot;headerlink&quot; title=&quot;中华人民共和国刑法&quot;&gt;&lt;/a&gt;中华人民共和国刑法&lt;/h1&gt;&lt;figure class=&quot;highlight plaintext&quot;&gt;&lt;table&gt;&lt;t</summary>
      
    
    
    
    <category term="kali" scheme="https://www.linlink.xyz/categories/kali/"/>
    
    
    <category term="kali" scheme="https://www.linlink.xyz/tags/kali/"/>
    
  </entry>
  
  <entry>
    <title>Linux-Centos7--搭建Gitlab私有仓库</title>
    <link href="https://www.linlink.xyz/posts/44facaf0.html"/>
    <id>https://www.linlink.xyz/posts/44facaf0.html</id>
    <published>2022-11-23T07:00:35.000Z</published>
    <updated>2022-12-28T03:12:46.736Z</updated>
    
    <content type="html"><![CDATA[<h1 id="官方链接"><a href="#官方链接" class="headerlink" title="官方链接"></a>官方链接</h1><ul><li><a href="https://gitlab.cn/install/">https://gitlab.cn/install/</a></li></ul><h1 id="环境初始化"><a href="#环境初始化" class="headerlink" title="环境初始化"></a>环境初始化</h1><h2 id="安装一些网络需要的插件"><a href="#安装一些网络需要的插件" class="headerlink" title="安装一些网络需要的插件"></a>安装一些网络需要的插件</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">yum install -y curl policycoreutils-python openssh-server perl<br></code></pre></td></tr></table></figure><h2 id="确认ssh服务开启"><a href="#确认ssh服务开启" class="headerlink" title="确认ssh服务开启"></a>确认ssh服务开启</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">systemctl enable sshd &amp;&amp; systemctl start sshd &amp;&amp; systemctl status sshd<br></code></pre></td></tr></table></figure><h2 id="打开http和https访问"><a href="#打开http和https访问" class="headerlink" title="打开http和https访问"></a>打开http和https访问</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">firewall-cmd --permanent --add-service=http &amp;&amp; firewall-cmd --permanent --add-service=https<br></code></pre></td></tr></table></figure><h2 id="重新读取防火墙规则？应该吧"><a href="#重新读取防火墙规则？应该吧" class="headerlink" title="重新读取防火墙规则？应该吧"></a>重新读取防火墙规则？应该吧</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">systemctl reload firewalld<br></code></pre></td></tr></table></figure><h1 id="安装Postfix以发送电子邮件通知-可选"><a href="#安装Postfix以发送电子邮件通知-可选" class="headerlink" title="安装Postfix以发送电子邮件通知(可选)"></a>安装Postfix以发送电子邮件通知(可选)</h1><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">yum install postfix<br></code></pre></td></tr></table></figure><h2 id="启动Postfix服务"><a href="#启动Postfix服务" class="headerlink" title="启动Postfix服务"></a>启动Postfix服务</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">systemctl enable postfix &amp;&amp; systemctl start postfix<br></code></pre></td></tr></table></figure><h1 id="下载"><a href="#下载" class="headerlink" title="下载"></a>下载</h1><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">curl -fsSL https://packages.gitlab.cn/repository/raw/scripts/setup.sh | /bin/bash<br></code></pre></td></tr></table></figure><h1 id="安装-EXTERNAL-URL-x3D-主机IP-比如EXTERNAL-URL-x3D-http-192-168-16-1"><a href="#安装-EXTERNAL-URL-x3D-主机IP-比如EXTERNAL-URL-x3D-http-192-168-16-1" class="headerlink" title="安装,EXTERNAL_URL&#x3D;主机IP,比如EXTERNAL_URL&#x3D;http://192.168.16.1"></a>安装,EXTERNAL_URL&#x3D;主机IP,比如EXTERNAL_URL&#x3D;<a href="http://192.168.16.1/">http://192.168.16.1</a></h1><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">sudo EXTERNAL_URL=&quot;https://gitlab.example.com&quot; yum install -y gitlab-jh<br></code></pre></td></tr></table></figure><h1 id="查看root密码-浏览器访问登录需要"><a href="#查看root密码-浏览器访问登录需要" class="headerlink" title="查看root密码,浏览器访问登录需要"></a>查看root密码,浏览器访问登录需要</h1><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">cat /etc/gitlab/initial_root_password<br></code></pre></td></tr></table></figure><h1 id="浏览器访问"><a href="#浏览器访问" class="headerlink" title="浏览器访问"></a>浏览器访问</h1><ul><li>账号：root</li><li>密码：***********************(上面获取的)</li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;官方链接&quot;&gt;&lt;a href=&quot;#官方链接&quot; class=&quot;headerlink&quot; title=&quot;官方链接&quot;&gt;&lt;/a&gt;官方链接&lt;/h1&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://gitlab.cn/install/&quot;&gt;https://gitlab.cn/i</summary>
      
    
    
    
    <category term="Gitlab" scheme="https://www.linlink.xyz/categories/Gitlab/"/>
    
    
    <category term="搭建教程" scheme="https://www.linlink.xyz/tags/%E6%90%AD%E5%BB%BA%E6%95%99%E7%A8%8B/"/>
    
  </entry>
  
  <entry>
    <title>Shell入门到放弃</title>
    <link href="https://www.linlink.xyz/posts/9f5e26a4.html"/>
    <id>https://www.linlink.xyz/posts/9f5e26a4.html</id>
    <published>2022-11-06T07:00:34.000Z</published>
    <updated>2023-01-05T12:21:45.790Z</updated>
    
    <content type="html"><![CDATA[<h1 id="正则表达式"><a href="#正则表达式" class="headerlink" title="正则表达式"></a>正则表达式</h1><ul><li>Linux文件中每行都有一个$结尾，空行也有，一般看不见这个$</li></ul><h2 id="基本-BRE"><a href="#基本-BRE" class="headerlink" title="基本-BRE"></a>基本-BRE</h2><table><thead><tr><th align="center">符号</th><th align="center">释义</th></tr></thead><tbody><tr><td align="center">^</td><td align="center">尖角号，用于模式的最左侧，如“^oldboy”，匹配以oldboy单词开头的行</td></tr><tr><td align="center">$</td><td align="center">美元符，用于模式的最右侧，如”oldboy$”，表示以oldboy单词结尾的行</td></tr><tr><td align="center">^$</td><td align="center">组合符，表示空行</td></tr><tr><td align="center">.</td><td align="center">匹配任意一个且只有一个字符，不能匹配空行</td></tr><tr><td align="center">\</td><td align="center">转义字符，让特殊含义的字符，现出原形，还原本意，例如\.代表小数点</td></tr><tr><td align="center">*</td><td align="center">匹配前一个字符（连续出现)0次或1次以上，重复0次代表空，即匹配所有内容</td></tr><tr><td align="center">.*</td><td align="center">组合符，匹配所有内容</td></tr><tr><td align="center">^.*</td><td align="center">组合符，匹配任意多个字符开头的内容</td></tr><tr><td align="center">.*$</td><td align="center">组合符，匹配以任意多个字符结尾的内容</td></tr><tr><td align="center">[abc]</td><td align="center">匹配集合内的任意一个字符，a或b或c，可以写[a-c]</td></tr><tr><td align="center">[^abc]</td><td align="center">匹配除了^后面的任意字符，a或b或c，^表示对[abc]的取反</td></tr></tbody></table><h2 id="扩展-ERE"><a href="#扩展-ERE" class="headerlink" title="扩展-ERE"></a>扩展-ERE</h2><table><thead><tr><th align="center">符号</th><th align="center">释义</th></tr></thead><tbody><tr><td align="center">+</td><td align="center">匹配前一个宁符1次或多次</td></tr><tr><td align="center">[:&#x2F;]+</td><td align="center">匹配括号内的”∵:”或者”&#x2F;“字符1次或多次</td></tr><tr><td align="center">?</td><td align="center">匹配前一个字符0次或1次</td></tr><tr><td align="center">|</td><td align="center">表示或者,同时过滤大哥字符串</td></tr><tr><td align="center">()</td><td align="center">分组过滤，被括起来的内容表示一个整体</td></tr><tr><td align="center">a{n,m}</td><td align="center">匹配前一个字符最少n次，最多m次</td></tr><tr><td align="center">a{n,}</td><td align="center">匹配前一个字符最少n次</td></tr><tr><td align="center">a{n}</td><td align="center">匹配前一个字符正好n次</td></tr><tr><td align="center">a{,m}</td><td align="center">匹配前一个字符最多m次</td></tr></tbody></table><h1 id="grep-对文本内容进行过滤，筛选"><a href="#grep-对文本内容进行过滤，筛选" class="headerlink" title="grep-对文本内容进行过滤，筛选"></a>grep-对文本内容进行过滤，筛选</h1><table><thead><tr><th align="center">参数</th><th align="center">释义</th></tr></thead><tbody><tr><td align="center">-v</td><td align="center">排除匹配结果</td></tr><tr><td align="center">-n</td><td align="center">显示匹配行与行号</td></tr><tr><td align="center">-i</td><td align="center">不区分大小写</td></tr><tr><td align="center">-c</td><td align="center">只统计匹配的行数</td></tr><tr><td align="center">-E</td><td align="center">使用egrep命令(加这个参数可以使用扩展ERE)</td></tr><tr><td align="center">–color&#x3D;auto</td><td align="center">为grep过滤结果添加颜色</td></tr><tr><td align="center">-w</td><td align="center">只匹配过滤的单词</td></tr><tr><td align="center">-o</td><td align="center">只输出匹配的内容</td></tr></tbody></table><h2 id="grep语法"><a href="#grep语法" class="headerlink" title="grep语法"></a>grep语法</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">grep $参数 $匹配模式 $file<br></code></pre></td></tr></table></figure><h1 id="sed-对文件或是数据流进行加工处理"><a href="#sed-对文件或是数据流进行加工处理" class="headerlink" title="sed-对文件或是数据流进行加工处理"></a>sed-对文件或是数据流进行加工处理</h1><ul><li>注意sed和awk使用单引号，双引号有特殊解释</li><li>sed是Stream Editor(字符流编辑器)的缩写，简称流编辑器。</li><li>sed是操作、过滤和转换文本内容的强大工具。</li></ul><h1 id="sed参数"><a href="#sed参数" class="headerlink" title="sed参数"></a>sed参数</h1><table><thead><tr><th align="center">参数</th><th align="center">解释</th></tr></thead><tbody><tr><td align="center">-n</td><td align="center">取消默认sed的输出，常与sed内置命令p一起用</td></tr><tr><td align="center">-i</td><td align="center">直接将修改结果写入文件,不用-i, sed修改的是内存数据</td></tr><tr><td align="center">-e</td><td align="center">多次编辑,不需要管道符了</td></tr><tr><td align="center">-r</td><td align="center">支持正则扩展</td></tr></tbody></table><h2 id="sed内置命令字符"><a href="#sed内置命令字符" class="headerlink" title="sed内置命令字符"></a>sed内置命令字符</h2><table><thead><tr><th align="center">sed的内置命令字符</th><th align="center">解释</th></tr></thead><tbody><tr><td align="center">a</td><td align="center">append，对文本追加，在指定行后面添加一行&#x2F;多行文本</td></tr><tr><td align="center">d</td><td align="center">Delete，删除匹配行</td></tr><tr><td align="center">i</td><td align="center">insert，表示插入文本，在指定行前添加一行&#x2F;多行文本</td></tr><tr><td align="center">p</td><td align="center">Print ,打印匹配行的内容，通常p与-n一起用</td></tr><tr><td align="center">s&#x2F;正则&#x2F;替换内容&#x2F;g</td><td align="center">匹配正则内容，然后替换内容(支持正则)，结尾g代表全局匹配</td></tr></tbody></table><h2 id="sed语法"><a href="#sed语法" class="headerlink" title="sed语法"></a>sed语法</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">grep $参数 $内置命令字符 $file<br></code></pre></td></tr></table></figure><h1 id="sed增删改查操作"><a href="#sed增删改查操作" class="headerlink" title="sed增删改查操作"></a>sed增删改查操作</h1><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@localhost ~]# cat aaa.txt<br>My screen name is linlink<br>My hobby is sleeping<br>I love Linux<br>Learn kubernetes<br>I&#x27;m not a networker<br>My qq is 1234568789<br></code></pre></td></tr></table></figure><h2 id="查"><a href="#查" class="headerlink" title="查"></a>查</h2><h3 id="输出文件第二到三行"><a href="#输出文件第二到三行" class="headerlink" title="输出文件第二到三行"></a>输出文件第二到三行</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@localhost ~]# sed &#x27;2,3p&#x27; aaa.txt<br>My screen name is linlink<br>My hobby is sleeping<br>My hobby is sleeping<br>I love Linux<br>I love Linux<br>Learn kubernetes<br>I&#x27;m not a networker<br>My qq is 1234568789<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@localhost ~]# sed &#x27;2,3p&#x27; aaa.txt -n<br>My hobby is sleeping<br>I love Linux<br></code></pre></td></tr></table></figure><h3 id="输出文件第二及下面三行"><a href="#输出文件第二及下面三行" class="headerlink" title="输出文件第二及下面三行"></a>输出文件第二及下面三行</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@localhost ~]# sed &#x27;2,+3p&#x27; aaa.txt -n<br>My hobby is sleeping<br>I love Linux<br>Learn kubernetes<br>I&#x27;m not a networker<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@localhost ~]# sed &#x27;2,+3p&#x27; aaa.txt<br>My screen name is linlink<br>My hobby is sleeping<br>My hobby is sleeping<br>I love Linux<br>I love Linux<br>Learn kubernetes<br>Learn kubernetes<br>I&#x27;m not a networker<br>I&#x27;m not a networker<br>My qq is 1234568789<br></code></pre></td></tr></table></figure><h3 id="匹配qq所在的行并打印"><a href="#匹配qq所在的行并打印" class="headerlink" title="匹配qq所在的行并打印"></a>匹配qq所在的行并打印</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@localhost ~]# sed &#x27;/qq/p&#x27; aaa.txt -n #-n去掉其它行<br>My qq is 1234568789<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@localhost ~]# sed &#x27;/qq/p&#x27; aaa.txt<br>My screen name is linlink<br>My hobby is sleeping<br>I love Linux<br>Learn kubernetes<br>I&#x27;m not a networker<br>My qq is 1234568789<br>My qq is 1234568789<br></code></pre></td></tr></table></figure><h2 id="增"><a href="#增" class="headerlink" title="增"></a>增</h2><h3 id="第二行下面增加一行数据"><a href="#第二行下面增加一行数据" class="headerlink" title="第二行下面增加一行数据"></a>第二行下面增加一行数据</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">sed -i &quot;2a ************&quot; aaa.txt         #-i增加到文件里<br></code></pre></td></tr></table></figure><h3 id="第二行上面增加一行数据"><a href="#第二行上面增加一行数据" class="headerlink" title="第二行上面增加一行数据"></a>第二行上面增加一行数据</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">sed -i &quot;2i ************&quot; aaa.txt         #-i增加到文件里<br></code></pre></td></tr></table></figure><h3 id="a空模式匹配"><a href="#a空模式匹配" class="headerlink" title="a空模式匹配"></a>a空模式匹配</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">sed -i &quot;a -------------&quot; aaa.txt         #-i增加到文件里<br></code></pre></td></tr></table></figure><h2 id="改"><a href="#改" class="headerlink" title="改"></a>改</h2><h3 id="My全部改为I"><a href="#My全部改为I" class="headerlink" title="My全部改为I"></a>My全部改为I</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">sed -i &#x27;s/My/I/g&#x27; aaa.txt              #修改文件里的数据<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">sed &#x27;s/My/I/g&#x27; aaa.txt              #修改内存里的数据<br></code></pre></td></tr></table></figure><h3 id="多次编辑规则"><a href="#多次编辑规则" class="headerlink" title="多次编辑规则"></a>多次编辑规则</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">sed -e &#x27;s/My/I/g&#x27; -e &#x27;s/qq/wx/g&#x27; aaa.txt <br></code></pre></td></tr></table></figure><h2 id="删"><a href="#删" class="headerlink" title="删"></a>删</h2><h3 id="匹配qq所在的一行并删除"><a href="#匹配qq所在的一行并删除" class="headerlink" title="匹配qq所在的一行并删除"></a>匹配qq所在的一行并删除</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">sed &#x27;/qq/d&#x27; aaa.txt -i                #删除文件里的数据<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@localhost ~]# sed &#x27;/qq/d&#x27; aaa.txt   #删除的是内存的数据<br>My screen name is linlink<br>My hobby is sleeping<br>I love Linux<br>Learn kubernetes<br>I&#x27;m not a networker<br></code></pre></td></tr></table></figure><h3 id="匹配第3行到最后一行并删除"><a href="#匹配第3行到最后一行并删除" class="headerlink" title="匹配第3行到最后一行并删除"></a>匹配第3行到最后一行并删除</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">sed &quot;3,/&amp;/d&quot; aaa.txt  -i                  #删除文件里的数据<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">sed &quot;3,/&amp;/d&quot; aaa.txt                       #删除的是内存的数据<br></code></pre></td></tr></table></figure><h3 id="删除第二行到第三行"><a href="#删除第二行到第三行" class="headerlink" title="删除第二行到第三行"></a>删除第二行到第三行</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">sed &quot;2,3d&quot; aaa.txt  -i                  #删除文件里的数据<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">sed &quot;2,3d&quot; aaa.txt                       #删除的是内存的数据<br></code></pre></td></tr></table></figure><h1 id="awk"><a href="#awk" class="headerlink" title="awk"></a>awk</h1><table><thead><tr><th align="center">参数</th><th align="center">解释</th></tr></thead><tbody><tr><td align="center">-F</td><td align="center">指定分割字段符</td></tr><tr><td align="center">-v</td><td align="center">定义或修改一个awk内部的变量</td></tr><tr><td align="center">-f</td><td align="center">从脚本文件中读取awk命令</td></tr></tbody></table><table><thead><tr><th align="center">内置变量</th><th align="center">解释</th></tr></thead><tbody><tr><td align="center">FS</td><td align="center">输入字段分隔符，默认为空白字符</td></tr><tr><td align="center">oFS</td><td align="center">输出字段分隔符，默认为空白字符</td></tr><tr><td align="center">RS</td><td align="center">输入记录分隔符(输入换行符)，指定输入时的换行符</td></tr><tr><td align="center">ORS</td><td align="center">输出记录分隔符(输出换行符)，输出时用指定符号代替换行符</td></tr><tr><td align="center">NF</td><td align="center">NF: number of Field，当前行的字段的个数(即当前行被分割成了几列)，字段数量</td></tr><tr><td align="center">NR</td><td align="center">NR:行号，当前处理的文本行的行号。</td></tr><tr><td align="center">FNR</td><td align="center">FNR:各文件分别计数的行号</td></tr><tr><td align="center">FILENAME</td><td align="center">FILENAME:当前文件名</td></tr><tr><td align="center">ARGC</td><td align="center">ARGC:命令行参数的个数</td></tr><tr><td align="center">ARGV</td><td align="center">ARGV:数组，保存的是命令行所给定的各参数</td></tr></tbody></table><h3 id="真寄霸多、学尼玛、放弃了"><a href="#真寄霸多、学尼玛、放弃了" class="headerlink" title="真寄霸多、学尼玛、放弃了"></a>真寄霸多、学尼玛、放弃了</h3>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;正则表达式&quot;&gt;&lt;a href=&quot;#正则表达式&quot; class=&quot;headerlink&quot; title=&quot;正则表达式&quot;&gt;&lt;/a&gt;正则表达式&lt;/h1&gt;&lt;ul&gt;
&lt;li&gt;Linux文件中每行都有一个$结尾，空行也有，一般看不见这个$&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;基</summary>
      
    
    
    
    <category term="Shell" scheme="https://www.linlink.xyz/categories/Shell/"/>
    
    
    <category term="Shell" scheme="https://www.linlink.xyz/tags/Shell/"/>
    
  </entry>
  
  <entry>
    <title>Docker基础入门到放弃</title>
    <link href="https://www.linlink.xyz/posts/c74ba58d.html"/>
    <id>https://www.linlink.xyz/posts/c74ba58d.html</id>
    <published>2022-10-08T07:00:34.000Z</published>
    <updated>2023-06-16T12:13:14.468Z</updated>
    
    <content type="html"><![CDATA[<h1 id="操作环境"><a href="#操作环境" class="headerlink" title="操作环境"></a>操作环境</h1><ul><li>Linux内核3.10</li><li>CentOS~7.9发行版</li></ul><h1 id="安装及配置"><a href="#安装及配置" class="headerlink" title="安装及配置"></a>安装及配置</h1><details class="toggle" ><summary class="toggle-button" style="">点击查看</summary><div class="toggle-content"><h2 id="安装需要的软件包"><a href="#安装需要的软件包" class="headerlink" title="安装需要的软件包"></a>安装需要的软件包</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">sudo yum install -y yum-utils<br></code></pre></td></tr></table></figure><h2 id="设置国内镜像仓库"><a href="#设置国内镜像仓库" class="headerlink" title="设置国内镜像仓库"></a>设置国内镜像仓库</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo<br></code></pre></td></tr></table></figure><h2 id="更新yum软件包索引"><a href="#更新yum软件包索引" class="headerlink" title="更新yum软件包索引"></a>更新yum软件包索引</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">yum makecache fast<br></code></pre></td></tr></table></figure><h2 id="安装docker-ce"><a href="#安装docker-ce" class="headerlink" title="安装docker-ce"></a>安装docker-ce</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin<br></code></pre></td></tr></table></figure><h2 id="启动docker-开机自启动"><a href="#启动docker-开机自启动" class="headerlink" title="启动docker+开机自启动"></a>启动docker+开机自启动</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">systemctl start docker &amp;&amp; systemctl enable docker<br></code></pre></td></tr></table></figure><h2 id="配置docker镜像加速"><a href="#配置docker镜像加速" class="headerlink" title="配置docker镜像加速"></a>配置docker镜像加速</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">sudo mkdir -p /etc/docker<br>sudo tee /etc/docker/daemon.json &lt;&lt;-&#x27;EOF&#x27;<br>&#123;<br>  &quot;registry-mirrors&quot;: [&quot;https://jy4tq1fv.mirror.aliyuncs.com&quot;]<br>&#125;<br>EOF<br>sudo systemctl daemon-reload<br>sudo systemctl restart docker<br></code></pre></td></tr></table></figure><h2 id="检查docker是否安装好"><a href="#检查docker是否安装好" class="headerlink" title="检查docker是否安装好"></a>检查docker是否安装好</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker info<br></code></pre></td></tr></table></figure><h2 id="测试一下hello-world"><a href="#测试一下hello-world" class="headerlink" title="测试一下hello-world"></a>测试一下hello-world</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker pull hello-world     # 可以不需要这一步直接下一步，但是初学者建议多敲敲多熟悉熟悉代码<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker run hello-world<br></code></pre></td></tr></table></figure></div></details><h1 id="相关知识"><a href="#相关知识" class="headerlink" title="相关知识"></a>相关知识</h1><details class="toggle" ><summary class="toggle-button" style="">点击查看</summary><div class="toggle-content"><h2 id="虚悬镜像：既没有仓库名，也没有TAG的镜像"><a href="#虚悬镜像：既没有仓库名，也没有TAG的镜像" class="headerlink" title="虚悬镜像：既没有仓库名，也没有TAG的镜像(:)"></a>虚悬镜像：既没有仓库名，也没有TAG的镜像(<none>:<none>)</h2><p>查询：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker images -f dangling=true<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">产生的原因：<br>1、docker build命令未使用-t参数指定仓库名<br>2、docker pull最新版本的某仓库镜像，则原来的最新版镜像会重命名为&lt;none&gt;:&lt;none&gt;<br>3、强制删除被运行中的容器占用的镜像<br>4、docker save命令导出时，使用的是镜像ID，再次导入镜像会变成虚悬镜像<br></code></pre></td></tr></table></figure></div></details><h1 id="镜像管理"><a href="#镜像管理" class="headerlink" title="镜像管理"></a>镜像管理</h1><details class="toggle" ><summary class="toggle-button" style="">点击查看</summary><div class="toggle-content"><h2 id="增加镜像方法"><a href="#增加镜像方法" class="headerlink" title="增加镜像方法"></a>增加镜像方法</h2><h3 id="通过仓库获取镜像"><a href="#通过仓库获取镜像" class="headerlink" title="通过仓库获取镜像"></a>通过仓库获取镜像</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker pull $image_name<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker pull $image_name:$version type<br></code></pre></td></tr></table></figure><h3 id="通过别人打包的镜像导入"><a href="#通过别人打包的镜像导入" class="headerlink" title="通过别人打包的镜像导入"></a>通过别人打包的镜像导入</h3><ul><li>导出<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker image save $image_name -o 目录/镜像名.tgz        #-o === &gt;<br></code></pre></td></tr></table></figure></li><li>导入<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker image load -i 目录/镜像名字.tgz                  #-i === &lt;<br></code></pre></td></tr></table></figure></li></ul><h3 id="通过容器构建镜像"><a href="#通过容器构建镜像" class="headerlink" title="通过容器构建镜像"></a>通过容器构建镜像</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker commit $container_id $image_name<br></code></pre></td></tr></table></figure><h3 id="通过Dockerfile构建镜像"><a href="#通过Dockerfile构建镜像" class="headerlink" title="通过Dockerfile构建镜像"></a>通过Dockerfile构建镜像</h3><h4 id="Dockerfile参数"><a href="#Dockerfile参数" class="headerlink" title="Dockerfile参数"></a>Dockerfile参数</h4><table><thead><tr><th align="center">参数</th><th align="center">解释</th></tr></thead><tbody><tr><td align="center">FROM</td><td align="center">基于什么系统发行版</td></tr><tr><td align="center">MAINTAINER</td><td align="center">作者信息</td></tr><tr><td align="center">RUN</td><td align="center">运行Linux命令</td></tr><tr><td align="center">ADD</td><td align="center">添加文件到容器</td></tr><tr><td align="center">COPY</td><td align="center">复制文件到容器</td></tr><tr><td align="center">WORKDIR</td><td align="center">指定工作目录</td></tr><tr><td align="center">VOLUME</td><td align="center">容器数据挂载</td></tr><tr><td align="center">EXPOSE</td><td align="center">指定容器对外开放的端口</td></tr><tr><td align="center">CMD</td><td align="center">cmd指令</td></tr><tr><td align="center">ENTRYPOINT</td><td align="center">替换cmd,cmd给它传递参数</td></tr><tr><td align="center">ENV</td><td align="center">给容器设置环境变量(构建镜像，及容器运行都可以使用)</td></tr><tr><td align="center">ARG</td><td align="center">给容器设置环境变量(仅构建镜像使用)</td></tr><tr><td align="center">USER</td><td align="center">用于改变环境，用于切换用户</td></tr></tbody></table><h4 id="创建Dockerfile"><a href="#创建Dockerfile" class="headerlink" title="创建Dockerfile"></a>创建Dockerfile</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">touch Dockerfile<br></code></pre></td></tr></table></figure><h4 id="编辑Dockerfile"><a href="#编辑Dockerfile" class="headerlink" title="编辑Dockerfile"></a>编辑Dockerfile</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">vi Dockerfile<br></code></pre></td></tr></table></figure><h4 id="构建镜像"><a href="#构建镜像" class="headerlink" title="构建镜像"></a>构建镜像</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker build .<br></code></pre></td></tr></table></figure><h4 id="构建镜像并自定义镜像名"><a href="#构建镜像并自定义镜像名" class="headerlink" title="构建镜像并自定义镜像名"></a>构建镜像并自定义镜像名</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker build -t &#x27;镜像名&#x27; .<br></code></pre></td></tr></table></figure><hr><h2 id="删除指定镜像"><a href="#删除指定镜像" class="headerlink" title="删除指定镜像"></a>删除指定镜像</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker rmi $image_name/id<br></code></pre></td></tr></table></figure><h2 id="强行删除指定镜像"><a href="#强行删除指定镜像" class="headerlink" title="强行删除指定镜像"></a>强行删除指定镜像</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker rmi -f $image_name/id<br></code></pre></td></tr></table></figure><h2 id="删除全部镜像-危险-—需要没有运行中的容器"><a href="#删除全部镜像-危险-—需要没有运行中的容器" class="headerlink" title="删除全部镜像(危险)—需要没有运行中的容器"></a>删除全部镜像(危险)—需要没有运行中的容器</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker rmi `docker images -aq`<br></code></pre></td></tr></table></figure><h2 id="改镜像名字"><a href="#改镜像名字" class="headerlink" title="改镜像名字"></a>改镜像名字</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker tag $image_id $new_name<br></code></pre></td></tr></table></figure><h2 id="查看"><a href="#查看" class="headerlink" title="查看"></a>查看</h2><h3 id="查看仓库镜像列表"><a href="#查看仓库镜像列表" class="headerlink" title="查看仓库镜像列表"></a>查看仓库镜像列表</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker search $image_name<br></code></pre></td></tr></table></figure><h3 id="查看本地镜像列表"><a href="#查看本地镜像列表" class="headerlink" title="查看本地镜像列表"></a>查看本地镜像列表</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker iimages<br></code></pre></td></tr></table></figure><h3 id="查看镜像id"><a href="#查看镜像id" class="headerlink" title="查看镜像id"></a>查看镜像id</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker images<br></code></pre></td></tr></table></figure><h3 id="自定义查看镜像id和name-其它格式照推"><a href="#自定义查看镜像id和name-其它格式照推" class="headerlink" title="自定义查看镜像id和name,其它格式照推"></a>自定义查看镜像id和name,其它格式照推</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker images --format &quot;table &#123;&#123;.ID&#125;&#125;\t&#123;&#123;.Repository&#125;&#125;\t&quot;<br></code></pre></td></tr></table></figure><h3 id="查看镜像详细信息"><a href="#查看镜像详细信息" class="headerlink" title="查看镜像详细信息"></a>查看镜像详细信息</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker image inspcet $image_id<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker image inspcet afb<br></code></pre></td></tr></table></figure><h3 id="查询镜像的构建历史或分层"><a href="#查询镜像的构建历史或分层" class="headerlink" title="查询镜像的构建历史或分层"></a>查询镜像的构建历史或分层</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker history $image_id<br></code></pre></td></tr></table></figure></div></details><h1 id="容器管理"><a href="#容器管理" class="headerlink" title="容器管理"></a>容器管理</h1><details class="toggle" ><summary class="toggle-button" style="">点击查看</summary><div class="toggle-content"><h2 id="参数"><a href="#参数" class="headerlink" title="参数"></a>参数</h2><table><thead><tr><th align="center">参数</th><th align="center">解释</th></tr></thead><tbody><tr><td align="center">-d</td><td align="center">在容器内运行不占用当前终端</td></tr><tr><td align="center">–rm</td><td align="center">中止进程后自动删除容器</td></tr><tr><td align="center">–name $image_name</td><td align="center">自定义容器名字</td></tr><tr><td align="center">-it</td><td align="center">开启交互式,进入容器内</td></tr><tr><td align="center">-v</td><td align="center">数据挂载</td></tr><tr><td align="center">-p 主机端口:容器端口</td><td align="center">端口映射</td></tr><tr><td align="center">-P</td><td align="center">随机端口映射</td></tr><tr><td align="center">–restart&#x3D;always</td><td align="center">监听容器，挂了重启,不和–rm一起用</td></tr></tbody></table><h2 id="运行容器"><a href="#运行容器" class="headerlink" title="运行容器"></a>运行容器</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker run 参数 $image_name CMD<br></code></pre></td></tr></table></figure><h2 id="进入容器"><a href="#进入容器" class="headerlink" title="进入容器"></a>进入容器</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker run -it $container_id bash<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker exec -it $container_id bash<br></code></pre></td></tr></table></figure><h2 id="退出容器"><a href="#退出容器" class="headerlink" title="退出容器"></a>退出容器</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">exit<br></code></pre></td></tr></table></figure><h2 id="重启容器"><a href="#重启容器" class="headerlink" title="重启容器"></a>重启容器</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker restart $container_id<br></code></pre></td></tr></table></figure><h2 id="删除容器"><a href="#删除容器" class="headerlink" title="删除容器"></a>删除容器</h2><h3 id="删除指定容器"><a href="#删除指定容器" class="headerlink" title="删除指定容器"></a>删除指定容器</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker rm $container_id<br></code></pre></td></tr></table></figure><h3 id="强行删除指定容器"><a href="#强行删除指定容器" class="headerlink" title="强行删除指定容器"></a>强行删除指定容器</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker rm -f $container_id<br></code></pre></td></tr></table></figure><h3 id="删除全部容器-危险"><a href="#删除全部容器-危险" class="headerlink" title="删除全部容器(危险)"></a>删除全部容器(危险)</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker rm -f `docker ps -aq`<br></code></pre></td></tr></table></figure><h2 id="查看"><a href="#查看" class="headerlink" title="查看"></a>查看</h2><h3 id="查看活着的容器id"><a href="#查看活着的容器id" class="headerlink" title="查看活着的容器id"></a>查看活着的容器id</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker ps<br></code></pre></td></tr></table></figure><h3 id="查看活着和挂了的容器id"><a href="#查看活着和挂了的容器id" class="headerlink" title="查看活着和挂了的容器id"></a>查看活着和挂了的容器id</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker container ls -a<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker container ls -a<br></code></pre></td></tr></table></figure><h3 id="查看容器日志"><a href="#查看容器日志" class="headerlink" title="查看容器日志"></a>查看容器日志</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker logs $container_id<br></code></pre></td></tr></table></figure><h3 id="查看容器日志-实时更新"><a href="#查看容器日志-实时更新" class="headerlink" title="查看容器日志(实时更新)"></a>查看容器日志(实时更新)</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker logs -f $container_id<br></code></pre></td></tr></table></figure><h3 id="查看容器的详细信息"><a href="#查看容器的详细信息" class="headerlink" title="查看容器的详细信息"></a>查看容器的详细信息</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker container inspect $container_id<br></code></pre></td></tr></table></figure><h3 id="查看容器内资源情况命令"><a href="#查看容器内资源情况命令" class="headerlink" title="查看容器内资源情况命令"></a>查看容器内资源情况命令</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker inspect $container_id<br></code></pre></td></tr></table></figure><h3 id="查看容器内进程命令"><a href="#查看容器内进程命令" class="headerlink" title="查看容器内进程命令"></a>查看容器内进程命令</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker top $container_id<br></code></pre></td></tr></table></figure><h3 id="查看容器的所有信息"><a href="#查看容器的所有信息" class="headerlink" title="查看容器的所有信息"></a>查看容器的所有信息</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker inspect $container_id<br></code></pre></td></tr></table></figure><h3 id="查看容器端口转发情况"><a href="#查看容器端口转发情况" class="headerlink" title="查看容器端口转发情况"></a>查看容器端口转发情况</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker port $container_id<br></code></pre></td></tr></table></figure><h3 id="查看容器内ip"><a href="#查看容器内ip" class="headerlink" title="查看容器内ip"></a>查看容器内ip</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker inspect --format &#x27;&#123;&#123;.NetworkSettings.IPAddress&#125;&#125;&#x27; $container_id<br></code></pre></td></tr></table></figure></div></details><h1 id="网络管理"><a href="#网络管理" class="headerlink" title="网络管理"></a>网络管理</h1><details class="toggle" ><summary class="toggle-button" style="">点击查看</summary><div class="toggle-content"><h2 id="安装brctl工具"><a href="#安装brctl工具" class="headerlink" title="安装brctl工具"></a>安装brctl工具</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">yum -y install bridge-utils<br></code></pre></td></tr></table></figure><h2 id="自定义docker容器网络"><a href="#自定义docker容器网络" class="headerlink" title="自定义docker容器网络"></a>自定义docker容器网络</h2><h3 id="运行一个没有网卡的容器-保留当前窗口"><a href="#运行一个没有网卡的容器-保留当前窗口" class="headerlink" title="运行一个没有网卡的容器(保留当前窗口)"></a>运行一个没有网卡的容器(保留当前窗口)</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker run -it --network none centos bash<br></code></pre></td></tr></table></figure><h3 id="获取容器ID-新打开ssh窗口"><a href="#获取容器ID-新打开ssh窗口" class="headerlink" title="获取容器ID(新打开ssh窗口)"></a>获取容器ID(新打开ssh窗口)</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker inspect -f &#123;&#123;.State.Pid&#125;&#125; $container_ID<br>pid<br></code></pre></td></tr></table></figure><h3 id="创建netns"><a href="#创建netns" class="headerlink" title="创建netns"></a>创建netns</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">mkdir /var/run/netns<br>ln -s /proc/$pid/ns/net /var/run/netns/$pid<br></code></pre></td></tr></table></figure><h3 id="创建VETH接口对"><a href="#创建VETH接口对" class="headerlink" title="创建VETH接口对"></a>创建VETH接口对</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">ip link add A type veth peer name B<br></code></pre></td></tr></table></figure><h3 id="将A端添加到容器并改名"><a href="#将A端添加到容器并改名" class="headerlink" title="将A端添加到容器并改名"></a>将A端添加到容器并改名</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">添加到容器：ip link set A netns $pid<br>修改网卡名：ip netns exec $pid ip link set dev A name eth0<br>启动网卡：ip netns exec $pid ip link set dev eth0 up<br>添加网卡IP地址：ip netns exec $pid ip addr add 172.17.0.16/16 dev eth0<br>配置网关：ip netns exec $pid ip route add default via 172.17.0.1<br></code></pre></td></tr></table></figure><h3 id="将B端添加到docker0"><a href="#将B端添加到docker0" class="headerlink" title="将B端添加到docker0"></a>将B端添加到docker0</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">添加：brctl addif docker0 B<br>启动网卡B：ip link set B up<br></code></pre></td></tr></table></figure><h2 id="自定义网桥"><a href="#自定义网桥" class="headerlink" title="自定义网桥"></a>自定义网桥</h2><h3 id="创建"><a href="#创建" class="headerlink" title="创建"></a>创建</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker network create [OPTIONS] NETWORK<br></code></pre></td></tr></table></figure><h3 id="容器加入网桥"><a href="#容器加入网桥" class="headerlink" title="容器加入网桥"></a>容器加入网桥</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker network connect &lt;bridge&gt; container<br></code></pre></td></tr></table></figure><h3 id="容器断开网桥"><a href="#容器断开网桥" class="headerlink" title="容器断开网桥"></a>容器断开网桥</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker network disconnect &lt;bridge&gt; container<br></code></pre></td></tr></table></figure><h3 id="查看本地网络列表"><a href="#查看本地网络列表" class="headerlink" title="查看本地网络列表"></a>查看本地网络列表</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker network ls<br></code></pre></td></tr></table></figure><h3 id="删除自定义网桥"><a href="#删除自定义网桥" class="headerlink" title="删除自定义网桥"></a>删除自定义网桥</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">docker network rm &lt;bridge&gt;<br></code></pre></td></tr></table></figure><h2 id="docker-run命令的网络配置参数"><a href="#docker-run命令的网络配置参数" class="headerlink" title="docker run命令的网络配置参数"></a>docker run命令的网络配置参数</h2><h3 id="设置容器的网络链接"><a href="#设置容器的网络链接" class="headerlink" title="设置容器的网络链接"></a>设置容器的网络链接</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">示例1：docker run --net bridge/host/container:container_id/none image_name<br>示例2：docker run --network bridge/host/container:container_id/none image_name  <br></code></pre></td></tr></table></figure><h3 id="设置容器的IP地址"><a href="#设置容器的IP地址" class="headerlink" title="设置容器的IP地址"></a>设置容器的IP地址</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">例子1：docker run -it --rm --network mynet --ip x.x.x.x image bash<br>例子2：docker network connect --ip 172.50.100.22 network_name container<br>注意：该方法只适用于用户自定义网络，并且需要人为指定自定义网络的子网信息，即<br>docker network create --subnet x.x.x.x/x [--gateway *.*.*.*] network_name<br></code></pre></td></tr></table></figure><h3 id="设置网络接口MAC地址-DNS-主机名"><a href="#设置网络接口MAC地址-DNS-主机名" class="headerlink" title="设置网络接口MAC地址,DNS,主机名"></a>设置网络接口MAC地址,DNS,主机名</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">例子：docker run -it --rm --mac-address 32:56:ac:ef:22:33 centos bash<br>设置容器的DNS<br>--dns：设置容器的DNS服务器的IP地址，可以设置多个<br>--dns-search：设置容器的DNS搜索域<br>设置主机名<br>--hostname：为容器指定自定义的主机名<br></code></pre></td></tr></table></figure><h2 id="容器之间的网络通信"><a href="#容器之间的网络通信" class="headerlink" title="容器之间的网络通信"></a>容器之间的网络通信</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">* 容器都连接到同一个网络（参见前面《自定义桥接网络》）<br>* 多个容器使用host模式<br>* 容器间使用挂载主机目录<br>* 容器通过端口映射<br>* 链接<br>命令<br>docker run --link container[:alias]<br>过程<br>* 关闭docker服务中的容器互通配置<br>vi /usr/lib/systemd/system/docker.service<br>在ExecStart后面添加--icc=false参数<br>docker daemon-reload<br>systemctl restart docker<br>* 启动一个普通容器(使用training/posetgres镜像)<br>docker run -d --name db training/posetgres<br>* 使用webapp镜像启动一个连接到db容器的名为web容器<br>docker run -d --name web --link db:yun1 training/webapp<br>* 测试<br>在web容器中安装测试工具<br>apt-get -y install telnet<br>telnet db容器的端口<br>telnet db 5432<br>* 对立测试<br>查看db容器的ip地址<br>使用centos:telnet镜像启动一个容器<br>在容器中使用telnet命令测试<br>telnet db_ip 5432<br></code></pre></td></tr></table></figure><h2 id="修改docker服务配置文件"><a href="#修改docker服务配置文件" class="headerlink" title="修改docker服务配置文件"></a>修改docker服务配置文件</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">* 修改docker0网桥的默认网段<br>vi /usr/lib/systemd/system/docker.service<br>在“ExecStart=”后面添加“--bip 172.56.0.1/16”<br>* 修改默认网桥<br>添加网桥(brctl命令需要使用yum -y install bridge-utils命令安装)<br>brctl addbr br0<br>ip addr add x.x.x.x/x dev br0<br>ip link set br0 up<br>修改docker服务文件<br>vi /usr/lib/systemd/system/docker.servic<br>在“ExecStart=”后面添加“--bridge br0”<br>注意：<br>-b,--bridge和--bip不可同时存在，只能存在一个<br>* 添加远程管理docker服务<br>vi /usr/lib/systemd/system/docker.servic<br>在“ExecStart=”后面添加“-H tcp://0.0.0.0:2375”<br>注意：<br>如果要本地和远程都可以访问，需要保留原有的-H fd://<br>* 以上操作需要重新加载服务配置并重新启动docker服务<br>systemctl daemon-reload<br>systemctl restart docker<br></code></pre></td></tr></table></figure></div></details><h1 id="存储管理"><a href="#存储管理" class="headerlink" title="存储管理"></a>存储管理</h1><details class="toggle" ><summary class="toggle-button" style="">点击查看</summary><div class="toggle-content"><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">1、联合文件系统<br>* Union file system<br>将其他文件系统合并到一个联合挂载点的文件系统<br>* docker支持的联合文件系统<br>AUFS、overlayFS、Btrfs、BFS、devicemapper<br>aufs、overlay、overlay2、btrfs、zfs、devicemapper、vfs<br>* docker ce支持的Linux发行版的存储驱动<br>Ubuntu：overlay2、aufs<br>Debian：overlay2、aufs、devicemapper<br>CentOS：overlay2<br>Fedora：overlay2<br>* 使用overlay2存储驱动的要求<br>docker版本要求<br>Docker EE：17.06.02-ee5及以上版本<br>Docker CE：都支持<br>Linux内核版本<br>4.0或更高<br>RHEL或CentOS：3.10.0-514及更高版本<br>底层文件系统的要求<br>ext4<br>xfs：限于启动d_type的情形<br>2、docker数据卷<br>* 卷<br>默认位置：/var/lib/docker/volume<br>* 卷分类<br>命名卷<br>匿名卷<br>* 卷的优势<br>比绑定挂载更容易备份和迁移<br>可以通过docker命令行或API进行管理<br>可以在Linux容器和Windows容器中工作<br>多个容器间共享文件时更安全<br>支持远程主机或云端存储卷<br>新卷的内容可以由容器预填充<br>3、数据卷的使用<br>* 匿名卷<br>匿名卷：即不为卷起名字<br>docker run -v参数<br>docker run -v [host_src:]container-dest[:&lt;options&gt;]<br>说明：<br>host_src：是主机上的文件，可以是文件也可以是目录，匿名卷省略该选项<br>container-dest：是容器中的挂载点<br>options：一般使用的是ro和rw，rw是默认的<br>使用匿名卷，默认存储的位置为/var/lib/docker/volume/$&#123;随机码&#125;/_data<br>随机码如何查看：<br>docker inspect -f &#123;&#123;.Mounts&#125;&#125; $&#123;容器名|容器ID&#125; |awk &#x27;&#123;print $2&#125;&#x27;<br>完整路径查看：<br>docker inspect -f &#123;&#123;.Mounts&#125;&#125; $&#123;容器名|容器ID&#125;|awk &#x27;&#123;print $3&#125;&#x27;<br>dockerfile中的VOLUME指令<br>语法：<br>VOLUME [&quot;/data&quot;]<br>VOLUME mouter1 mounter2...<br>注意：<br>dockerfile方式只能挂载匿名卷，默认存储的位置为/var/lib/docker/volume/$&#123;随机码&#125;/_data<br>随机码如何查看：<br>docker inspect -f &#123;&#123;.Mounts&#125;&#125; $&#123;容器名|容器ID&#125; |awk &#x27;&#123;print $2&#125;&#x27;<br>完整路径查看：<br>docker inspect -f &#123;&#123;.Mounts&#125;&#125; $&#123;容器名|容器ID&#125;|awk &#x27;&#123;print $3&#125;&#x27;<br>docker volume create<br>使用该命令不指定数据卷名也是匿名卷<br> * 命名卷<br> # 有名字的数据卷<br> # 创建：<br> docker volume create [OPTIONS] [VOLUME]<br> 参数：<br> -d, --driver string：指定驱动类型，默认为local<br> # 查看本地卷列表<br> docker volume ls<br> # 存储位置<br> /var/lib/docker/volumes/$&#123;volume_name&#125;/_data/<br> # 使用<br> docker run -v $&#123;volume_name&#125;:mounter[:options] image<br> * 删除数据卷<br> 命名卷<br> docker volume rm [OPTIONS] VOLUME [VOLUME...]<br> 匿名卷<br> 只能删除容器<br> 所有卷(所有未被使用的卷)<br> docker volume prune<br></code></pre></td></tr></table></figure></div></details><h1 id="卸载"><a href="#卸载" class="headerlink" title="卸载"></a>卸载</h1><details class="toggle" ><summary class="toggle-button" style="">点击查看</summary><div class="toggle-content"><h2 id="命令真TM多，不学了，卸载了"><a href="#命令真TM多，不学了，卸载了" class="headerlink" title="命令真TM多，不学了，卸载了"></a>命令真TM多，不学了，卸载了</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">systemctl stop docker<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">yum -y remove docker-ce docker-ce-cli containerd.io docker-compose-plugin<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">rm -rf /var/lib/docker<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">sudo yum remove docker \<br>                  docker-client \<br>                  docker-client-latest \<br>                  docker-common \<br>                  docker-latest \<br>                  docker-latest-logrotate \<br>                  docker-logrotate \<br>                  docker-engine<br></code></pre></td></tr></table></figure></div></details>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;操作环境&quot;&gt;&lt;a href=&quot;#操作环境&quot; class=&quot;headerlink&quot; title=&quot;操作环境&quot;&gt;&lt;/a&gt;操作环境&lt;/h1&gt;&lt;ul&gt;
&lt;li&gt;Linux内核3.10&lt;/li&gt;
&lt;li&gt;CentOS~7.9发行版&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;安装</summary>
      
    
    
    
    <category term="docker" scheme="https://www.linlink.xyz/categories/docker/"/>
    
    
    <category term="docker" scheme="https://www.linlink.xyz/tags/docker/"/>
    
    <category term="容器" scheme="https://www.linlink.xyz/tags/%E5%AE%B9%E5%99%A8/"/>
    
  </entry>
  
  <entry>
    <title>Kubernetes(k8s)搭建</title>
    <link href="https://www.linlink.xyz/posts/ad8c5d4b.html"/>
    <id>https://www.linlink.xyz/posts/ad8c5d4b.html</id>
    <published>2022-10-02T07:00:34.000Z</published>
    <updated>2022-12-22T09:35:53.624Z</updated>
    
    <content type="html"><![CDATA[<h1 id="写的很乱、建议前往文档"><a href="#写的很乱、建议前往文档" class="headerlink" title="写的很乱、建议前往文档"></a>写的很乱、建议前往文档</h1><ul><li><a href="https://www.kkklll.ml/config/Kubernetes/da.html">https://www.kkklll.ml/config/Kubernetes/da.html</a></li></ul><h1 id="搭建环境"><a href="#搭建环境" class="headerlink" title="搭建环境"></a>搭建环境</h1><ul><li>VMware虚拟机平台</li><li>Linux内核3.10</li><li>CentOS~7.9发行版</li><li>最小安装版</li><li>主节点一个，工作节点两个及以上(至少三台虚拟机)</li><li>k8s,因为k到s中间有8个字母</li></ul><h1 id="搭建需要"><a href="#搭建需要" class="headerlink" title="搭建需要"></a>搭建需要</h1><h2 id="主节点需要组件"><a href="#主节点需要组件" class="headerlink" title="主节点需要组件"></a>主节点需要组件</h2><ul><li>docker</li><li>kubectl - 集群命令行交互工具</li><li>kubeadm - 集群初始化工具</li></ul><h2 id="工作节点需要组件"><a href="#工作节点需要组件" class="headerlink" title="工作节点需要组件"></a>工作节点需要组件</h2><ul><li>docker</li><li>kubelet - 管理 Pod 和容器，确保他们健康稳定运行</li><li>kube-proxy - 网络代理，负责网络相关的工作</li></ul><h1 id="所有节点配置"><a href="#所有节点配置" class="headerlink" title="所有节点配置"></a>所有节点配置</h1><h3 id="修改hosts"><a href="#修改hosts" class="headerlink" title="修改hosts"></a>修改hosts</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">vi /etc/hosts<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">主节点ip master<br>工作节点1ip work1<br>工作节点2ip work2<br>工作节点3ip work3<br></code></pre></td></tr></table></figure><h3 id="关闭selinux"><a href="#关闭selinux" class="headerlink" title="关闭selinux"></a>关闭selinux</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">sed -i &#x27;s/SELINUX=enforcing/SELINUX=disabled/g&#x27; /etc/sysconfig/selinux<br></code></pre></td></tr></table></figure><h3 id="添加k8s安装源"><a href="#添加k8s安装源" class="headerlink" title="添加k8s安装源"></a>添加k8s安装源</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">cat &lt;&lt;EOF &gt; kubernetes.repo<br>[kubernetes]<br>name=Kubernetes<br>baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64<br>enabled=1<br>gpgcheck=0<br>repo_gpgcheck=0<br>gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg<br>EOF<br>mv kubernetes.repo /etc/yum.repos.d/<br></code></pre></td></tr></table></figure><h3 id="添加Docker安装源"><a href="#添加Docker安装源" class="headerlink" title="添加Docker安装源"></a>添加Docker安装源</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">sudo yum install -y yum-utils<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">sudo yum-config-manager     --add-repo     http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo<br></code></pre></td></tr></table></figure><h3 id="安装所需组件"><a href="#安装所需组件" class="headerlink" title="安装所需组件"></a>安装所需组件</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">yum install -y kubelet-1.22.4 kubectl-1.22.4 kubeadm-1.22.4 docker-ce<br></code></pre></td></tr></table></figure><h3 id="启动-kubelet、docker，并设置开机启动"><a href="#启动-kubelet、docker，并设置开机启动" class="headerlink" title="启动 kubelet、docker，并设置开机启动"></a>启动 kubelet、docker，并设置开机启动</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">systemctl enable kubelet<br>systemctl start kubelet<br>systemctl enable docker<br>systemctl start docker<br></code></pre></td></tr></table></figure><h3 id="修改-docker-配置"><a href="#修改-docker-配置" class="headerlink" title="修改 docker 配置"></a>修改 docker 配置</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">sudo mkdir -p /etc/docker<br>sudo tee /etc/docker/daemon.json &lt;&lt;-&#x27;EOF&#x27;<br>&#123;<br>  &quot;exec-opts&quot;: [&quot;native.cgroupdriver=systemd&quot;],<br>  &quot;registry-mirrors&quot;: [&quot;你自己的加速地址&quot;]<br>&#125;<br>EOF<br>sudo systemctl daemon-reload<br>sudo systemctl restart docker<br></code></pre></td></tr></table></figure><ul><li>加速地址在阿里云获取</li><li>获取地址：<a href="https://account.aliyun.com/">https://account.aliyun.com</a></li></ul><h1 id="主节点配置"><a href="#主节点配置" class="headerlink" title="主节点配置"></a>主节点配置</h1><h3 id="修改主机名"><a href="#修改主机名" class="headerlink" title="修改主机名"></a>修改主机名</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">hostnamectl set-hostname master<br></code></pre></td></tr></table></figure><h3 id="用kubeadm初始化集群"><a href="#用kubeadm初始化集群" class="headerlink" title="用kubeadm初始化集群"></a>用kubeadm初始化集群</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">kubeadm init --image-repository=registry.aliyuncs.com/google_containers<br></code></pre></td></tr></table></figure><ul><li>记得把 kubeadm join xxx 保存起来</li><li>忘记了重新获取：kubeadm token create –print-join-command</li></ul><h3 id="安装网络插件"><a href="#安装网络插件" class="headerlink" title="安装网络插件"></a>安装网络插件</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml<br></code></pre></td></tr></table></figure><h3 id="等待STATUS全变为Ready"><a href="#等待STATUS全变为Ready" class="headerlink" title="等待STATUS全变为Ready"></a>等待STATUS全变为Ready</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@master ~]# kubectl get nodes<br>NAME     STATUS   ROLES                  AGE     VERSION<br>master   Ready    control-plane,master   2d23h   v1.22.4<br>work1    Ready    &lt;none&gt;                 2d23h   v1.22.4<br>work2    Ready    &lt;none&gt;                 2d23h   v1.22.4<br>work3    Ready    &lt;none&gt;                 2d23h   v1.22.4<br></code></pre></td></tr></table></figure><h3 id="ping-work1-确保内网连通性"><a href="#ping-work1-确保内网连通性" class="headerlink" title="ping work1 确保内网连通性"></a>ping work1 确保内网连通性</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@master ~]# ping work1<br>PING work1 (192.168.144.167) 56(84) bytes of data.<br>64 bytes from work1 (192.168.144.167): icmp_seq=1 ttl=64 time=0.568 ms<br>64 bytes from work1 (192.168.144.167): icmp_seq=2 ttl=64 time=0.341 ms<br>64 bytes from work1 (192.168.144.167): icmp_seq=3 ttl=64 time=0.338 ms<br>64 bytes from work1 (192.168.144.167): icmp_seq=4 ttl=64 time=0.273 ms<br></code></pre></td></tr></table></figure><h1 id="工作节点配置"><a href="#工作节点配置" class="headerlink" title="工作节点配置"></a>工作节点配置</h1><h3 id="修改主机名-有几个工作节点就配置几个"><a href="#修改主机名-有几个工作节点就配置几个" class="headerlink" title="修改主机名,有几个工作节点就配置几个"></a>修改主机名,有几个工作节点就配置几个</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">hostnamectl set-hostname work1<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">hostnamectl set-hostname work2<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">hostnamectl set-hostname work3<br></code></pre></td></tr></table></figure><h3 id="把工作节点加入集群"><a href="#把工作节点加入集群" class="headerlink" title="把工作节点加入集群"></a>把工作节点加入集群</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">kubeadm join ip:6443 --token xxx --discovery-token-ca-cert-hash xxx<br></code></pre></td></tr></table></figure><h3 id="ping-master-确保内网连通性"><a href="#ping-master-确保内网连通性" class="headerlink" title="ping master 确保内网连通性"></a>ping master 确保内网连通性</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@work1 ~]# ping master<br>PING master (192.168.144.166) 56(84) bytes of data.<br>64 bytes from master (192.168.144.166): icmp_seq=1 ttl=64 time=0.223 ms<br>64 bytes from master (192.168.144.166): icmp_seq=2 ttl=64 time=0.336 ms<br>64 bytes from master (192.168.144.166): icmp_seq=3 ttl=64 time=0.258 ms<br>64 bytes from master (192.168.144.166): icmp_seq=4 ttl=64 time=0.234 ms<br></code></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;写的很乱、建议前往文档&quot;&gt;&lt;a href=&quot;#写的很乱、建议前往文档&quot; class=&quot;headerlink&quot; title=&quot;写的很乱、建议前往文档&quot;&gt;&lt;/a&gt;写的很乱、建议前往文档&lt;/h1&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.kkklll.</summary>
      
    
    
    
    <category term="uncategorized" scheme="https://www.linlink.xyz/categories/uncategorized/"/>
    
    
  </entry>
  
  <entry>
    <title>OpenStack命令小全</title>
    <link href="https://www.linlink.xyz/posts/b03a1ef.html"/>
    <id>https://www.linlink.xyz/posts/b03a1ef.html</id>
    <published>2022-10-01T07:00:35.000Z</published>
    <updated>2022-12-28T02:43:08.015Z</updated>
    
    <content type="html"><![CDATA[<h1 id="Project、User、Role管理"><a href="#Project、User、Role管理" class="headerlink" title="Project、User、Role管理"></a>Project、User、Role管理</h1><h2 id="Project"><a href="#Project" class="headerlink" title="Project"></a>Project</h2><h3 id="查询"><a href="#查询" class="headerlink" title="查询"></a>查询</h3><h4 id="项目列表查询"><a href="#项目列表查询" class="headerlink" title="项目列表查询"></a>项目列表查询</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@controller ~]# openstack project list<br>+----------------------------------+---------+<br>| ID                               | Name    |<br>+----------------------------------+---------+<br>| 18d38184ac324b7c8c849171d087e409 | admin   |<br>| 74ded9a243c34cbf9516103178a048fd | project |<br>+----------------------------------+---------+<br></code></pre></td></tr></table></figure><h4 id="项目详情查询"><a href="#项目详情查询" class="headerlink" title="项目详情查询"></a>项目详情查询</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack project show $admin/project<br></code></pre></td></tr></table></figure><h4 id="查询某项目下的所有用户"><a href="#查询某项目下的所有用户" class="headerlink" title="查询某项目下的所有用户"></a>查询某项目下的所有用户</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack user list --project=$admin/project<br></code></pre></td></tr></table></figure><h3 id="编辑"><a href="#编辑" class="headerlink" title="编辑"></a>编辑</h3><h4 id="创建项目"><a href="#创建项目" class="headerlink" title="创建项目"></a>创建项目</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack project create --domain $域 --description &quot;对创建项目的描述&quot; 项目名<br></code></pre></td></tr></table></figure><h4 id="比如创建一个属于default域的project项目"><a href="#比如创建一个属于default域的project项目" class="headerlink" title="比如创建一个属于default域的project项目"></a>比如创建一个属于default域的project项目</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack project create --domain default  project<br></code></pre></td></tr></table></figure><h4 id="更新项目名称"><a href="#更新项目名称" class="headerlink" title="更新项目名称"></a>更新项目名称</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack project set $project-ID/name --name $new-ProjectName<br></code></pre></td></tr></table></figure><h4 id="比如admin换admins"><a href="#比如admin换admins" class="headerlink" title="比如admin换admins"></a>比如admin换admins</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack project set admin --name admins<br></code></pre></td></tr></table></figure><h4 id="删除项目"><a href="#删除项目" class="headerlink" title="删除项目"></a>删除项目</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack project delete $project-name/id<br></code></pre></td></tr></table></figure><h2 id="User"><a href="#User" class="headerlink" title="User"></a>User</h2><h3 id="查询-1"><a href="#查询-1" class="headerlink" title="查询"></a>查询</h3><h4 id="User列表查询"><a href="#User列表查询" class="headerlink" title="User列表查询"></a>User列表查询</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack user list<br></code></pre></td></tr></table></figure><h4 id="查询User详情"><a href="#查询User详情" class="headerlink" title="查询User详情"></a>查询User详情</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack user show $User-name/id<br></code></pre></td></tr></table></figure><h4 id="查询某User与project、Role的关系"><a href="#查询某User与project、Role的关系" class="headerlink" title="查询某User与project、Role的关系"></a>查询某User与project、Role的关系</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack role assignment list --user=$username<br></code></pre></td></tr></table></figure><h3 id="编辑-1"><a href="#编辑-1" class="headerlink" title="编辑"></a>编辑</h3><h4 id="创建User"><a href="#创建User" class="headerlink" title="创建User"></a>创建User</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack user create --domain $域 --password $password $username<br></code></pre></td></tr></table></figure><h4 id="删除User"><a href="#删除User" class="headerlink" title="删除User"></a>删除User</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack user delete $user-name/id<br></code></pre></td></tr></table></figure><h4 id="更新User名"><a href="#更新User名" class="headerlink" title="更新User名"></a>更新User名</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack user set $user-name/id --name $new-name<br></code></pre></td></tr></table></figure><h4 id="启用User"><a href="#启用User" class="headerlink" title="启用User"></a>启用User</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack user set $user-name/id --enable<br></code></pre></td></tr></table></figure><h4 id="禁用User"><a href="#禁用User" class="headerlink" title="禁用User"></a>禁用User</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack user set $user_name/id --disable<br></code></pre></td></tr></table></figure><h2 id="Role"><a href="#Role" class="headerlink" title="Role"></a>Role</h2><h3 id="查询-2"><a href="#查询-2" class="headerlink" title="查询"></a>查询</h3><h4 id="Role列表查询"><a href="#Role列表查询" class="headerlink" title="Role列表查询"></a>Role列表查询</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack role list<br></code></pre></td></tr></table></figure><h4 id="Role详情查询"><a href="#Role详情查询" class="headerlink" title="Role详情查询"></a>Role详情查询</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack role show $user-name/id<br></code></pre></td></tr></table></figure><h3 id="编辑-2"><a href="#编辑-2" class="headerlink" title="编辑"></a>编辑</h3><h4 id="创建Role"><a href="#创建Role" class="headerlink" title="创建Role"></a>创建Role</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack role create $role-name<br></code></pre></td></tr></table></figure><h4 id="将project和User加入到Role中"><a href="#将project和User加入到Role中" class="headerlink" title="将project和User加入到Role中"></a>将project和User加入到Role中</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack role add --project $project-name --user $user-name $role-name<br></code></pre></td></tr></table></figure><h4 id="将role移除project和User"><a href="#将role移除project和User" class="headerlink" title="将role移除project和User"></a>将role移除project和User</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack role remove --user $user-name --project $project-name $role-name<br></code></pre></td></tr></table></figure><h1 id="Authentication-service命令"><a href="#Authentication-service命令" class="headerlink" title="Authentication service命令"></a>Authentication service命令</h1><h2 id="查询-3"><a href="#查询-3" class="headerlink" title="查询"></a>查询</h2><h3 id="domain查询"><a href="#domain查询" class="headerlink" title="domain查询"></a>domain查询</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack domain list<br></code></pre></td></tr></table></figure><h3 id="service查询"><a href="#service查询" class="headerlink" title="service查询"></a>service查询</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack service list<br></code></pre></td></tr></table></figure><h3 id="endpoint查询"><a href="#endpoint查询" class="headerlink" title="endpoint查询"></a>endpoint查询</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack endpoint list<br></code></pre></td></tr></table></figure><h2 id="编辑-3"><a href="#编辑-3" class="headerlink" title="编辑"></a>编辑</h2><h3 id="创建domain"><a href="#创建domain" class="headerlink" title="创建domain"></a>创建domain</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack domain create --description &quot;对创建域的描述&quot; $domain-name<br></code></pre></td></tr></table></figure><h3 id="创建service"><a href="#创建service" class="headerlink" title="创建service"></a>创建service</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack service create --name $service-name --description &quot;对服务的描述&quot; $type<br></code></pre></td></tr></table></figure><h3 id="创建api端点"><a href="#创建api端点" class="headerlink" title="创建api端点"></a>创建api端点</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack endpoint create --region RegionOne $service-type 连接对象 http://ip地址：端口号<br></code></pre></td></tr></table></figure><h1 id="Image服务命令"><a href="#Image服务命令" class="headerlink" title="Image服务命令"></a>Image服务命令</h1><h2 id="查询-4"><a href="#查询-4" class="headerlink" title="查询"></a>查询</h2><h3 id="镜像服务列表查询"><a href="#镜像服务列表查询" class="headerlink" title="镜像服务列表查询"></a>镜像服务列表查询</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack image list<br></code></pre></td></tr></table></figure><h3 id="查看某个具体的镜像"><a href="#查看某个具体的镜像" class="headerlink" title="查看某个具体的镜像"></a>查看某个具体的镜像</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack image show $image_name<br></code></pre></td></tr></table></figure><h3 id="查看安全组"><a href="#查看安全组" class="headerlink" title="查看安全组"></a>查看安全组</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack group list<br></code></pre></td></tr></table></figure><h2 id="制作镜像"><a href="#制作镜像" class="headerlink" title="制作镜像"></a>制作镜像</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack image create --file cirros-0.5.1-x86_64-disk.img --disk-format qcow2 --container-format bare --public cirros<br></code></pre></td></tr></table></figure><h2 id="增加安全组"><a href="#增加安全组" class="headerlink" title="增加安全组"></a>增加安全组</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack group create $group_name --description &quot;描述&quot;<br></code></pre></td></tr></table></figure><h1 id="Compute服务命令"><a href="#Compute服务命令" class="headerlink" title="Compute服务命令"></a>Compute服务命令</h1><h2 id="查询-5"><a href="#查询-5" class="headerlink" title="查询"></a>查询</h2><h3 id="查询nova服务的命令-查看所有nova主机up状态的"><a href="#查询nova服务的命令-查看所有nova主机up状态的" class="headerlink" title="查询nova服务的命令[查看所有nova主机up状态的]"></a>查询nova服务的命令[查看所有nova主机up状态的]</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack compute service list<br></code></pre></td></tr></table></figure><h3 id="查询nova组件的更新检查"><a href="#查询nova组件的更新检查" class="headerlink" title="查询nova组件的更新检查"></a>查询nova组件的更新检查</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">nova-status upgrade check<br></code></pre></td></tr></table></figure><h1 id="Network服务命令"><a href="#Network服务命令" class="headerlink" title="Network服务命令"></a>Network服务命令</h1><h2 id="查询类"><a href="#查询类" class="headerlink" title="查询类"></a>查询类</h2><h3 id="查询网络信息"><a href="#查询网络信息" class="headerlink" title="查询网络信息"></a>查询网络信息</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack network list<br></code></pre></td></tr></table></figure><h3 id="查看端口信息"><a href="#查看端口信息" class="headerlink" title="查看端口信息"></a>查看端口信息</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack port list<br></code></pre></td></tr></table></figure><h1 id="Storage命令"><a href="#Storage命令" class="headerlink" title="Storage命令"></a>Storage命令</h1><h2 id="查询-6"><a href="#查询-6" class="headerlink" title="查询"></a>查询</h2><h3 id="查看块存储服务组件信息"><a href="#查看块存储服务组件信息" class="headerlink" title="查看块存储服务组件信息"></a>查看块存储服务组件信息</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">cinder service-list<br></code></pre></td></tr></table></figure><h1 id="虚拟机管理命令"><a href="#虚拟机管理命令" class="headerlink" title="虚拟机管理命令"></a>虚拟机管理命令</h1><h2 id="查询类-1"><a href="#查询类-1" class="headerlink" title="查询类"></a>查询类</h2><h3 id="查看opens-tack环境主机列表"><a href="#查看opens-tack环境主机列表" class="headerlink" title="查看opens tack环境主机列表"></a>查看opens tack环境主机列表</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack host list<br></code></pre></td></tr></table></figure><h3 id="查看某台主机资源情况"><a href="#查看某台主机资源情况" class="headerlink" title="查看某台主机资源情况"></a>查看某台主机资源情况</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack host show $host-name<br></code></pre></td></tr></table></figure><h3 id="查看虚拟机列表"><a href="#查看虚拟机列表" class="headerlink" title="查看虚拟机列表"></a>查看虚拟机列表</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack server list<br></code></pre></td></tr></table></figure><h3 id="查看虚拟机详情"><a href="#查看虚拟机详情" class="headerlink" title="查看虚拟机详情"></a>查看虚拟机详情</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack server show $虚机名<br></code></pre></td></tr></table></figure><h2 id="编辑类"><a href="#编辑类" class="headerlink" title="编辑类"></a>编辑类</h2><h3 id="创建虚拟机"><a href="#创建虚拟机" class="headerlink" title="创建虚拟机"></a>创建虚拟机</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack network list<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack flavor list<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack image list<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack security group list<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack server create --image $镜像名 --flavor flavor规格名 –security-groups $安全组名 --nic net-id=网络ID 虚机名<br></code></pre></td></tr></table></figure><h3 id="虚拟机暂停"><a href="#虚拟机暂停" class="headerlink" title="虚拟机暂停"></a>虚拟机暂停</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack server pause $虚机名<br></code></pre></td></tr></table></figure><h3 id="虚拟机启动"><a href="#虚拟机启动" class="headerlink" title="虚拟机启动"></a>虚拟机启动</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack server unpause $虚机名<br></code></pre></td></tr></table></figure><h3 id="虚拟机重启"><a href="#虚拟机重启" class="headerlink" title="虚拟机重启"></a>虚拟机重启</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack server reboot $虚机名<br></code></pre></td></tr></table></figure><h3 id="虚拟机删除"><a href="#虚拟机删除" class="headerlink" title="虚拟机删除"></a>虚拟机删除</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">openstack server delete $虚机名<br></code></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;Project、User、Role管理&quot;&gt;&lt;a href=&quot;#Project、User、Role管理&quot; class=&quot;headerlink&quot; title=&quot;Project、User、Role管理&quot;&gt;&lt;/a&gt;Project、User、Role管理&lt;/h1&gt;&lt;h2 i</summary>
      
    
    
    
    <category term="OpenStack" scheme="https://www.linlink.xyz/categories/OpenStack/"/>
    
    
    <category term="OpenStack" scheme="https://www.linlink.xyz/tags/OpenStack/"/>
    
  </entry>
  
  <entry>
    <title>Linux搭建LNMP环境</title>
    <link href="https://www.linlink.xyz/posts/df55e034.html"/>
    <id>https://www.linlink.xyz/posts/df55e034.html</id>
    <published>2022-09-20T07:00:35.000Z</published>
    <updated>2022-12-28T02:42:25.861Z</updated>
    
    <content type="html"><![CDATA[<h1 id="安装环境"><a href="#安装环境" class="headerlink" title="安装环境"></a>安装环境</h1><ul><li>CentOS 7 Linux系统安装nginx，php，mysql简写为LNMP</li></ul><h1 id="磨刀不误砍柴功-准备工作做好"><a href="#磨刀不误砍柴功-准备工作做好" class="headerlink" title="磨刀不误砍柴功,准备工作做好"></a>磨刀不误砍柴功,准备工作做好</h1><h2 id="关闭selinux"><a href="#关闭selinux" class="headerlink" title="关闭selinux"></a>关闭selinux</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">vi /etc/sysconfig/selinux<br></code></pre></td></tr></table></figure><h3 id="修改成SELinux-x3D-disabled，需要重启系统生效"><a href="#修改成SELinux-x3D-disabled，需要重启系统生效" class="headerlink" title="修改成SELinux&#x3D;disabled，需要重启系统生效"></a>修改成SELinux&#x3D;disabled，需要重启系统生效</h3><h2 id="检查网络连通性，保证设备能访问外网"><a href="#检查网络连通性，保证设备能访问外网" class="headerlink" title="检查网络连通性，保证设备能访问外网"></a>检查网络连通性，保证设备能访问外网</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><code class="hljs angular2html">[root@localhost ~]# ping baidu.com<br>PING baidu.com (110.242.68.66) 56(84) bytes of data.<br>64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=1 ttl=128 time=44.8 ms<br>64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=2 ttl=128 time=63.2 ms<br>64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=3 ttl=128 time=44.8 ms<br>64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=4 ttl=128 time=44.5 ms<br>^C<br>--- baidu.com ping statistics ---<br>4 packets transmitted, 4 received, 0% packet loss, time 3006ms<br>rtt min/avg/max/mdev = 44.513/49.378/63.281/8.032 ms<br></code></pre></td></tr></table></figure><h2 id="关闭防火墙"><a href="#关闭防火墙" class="headerlink" title="关闭防火墙"></a>关闭防火墙</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs angular2html">systemctl stop firewalld.service &amp; systemctl disable firewalld.service<br></code></pre></td></tr></table></figure><h3 id="如果遇到这样的报错Failed-to-start-firewalld-service-Unit-not-found-解决办法如下-依次执行"><a href="#如果遇到这样的报错Failed-to-start-firewalld-service-Unit-not-found-解决办法如下-依次执行" class="headerlink" title="如果遇到这样的报错Failed to start firewalld.service: Unit not found.解决办法如下(依次执行)"></a>如果遇到这样的报错Failed to start firewalld.service: Unit not found.解决办法如下(依次执行)</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><code class="hljs angular2html">yum install firewalld<br>systemctl unmask firewalld<br>systemctl enable firewalld<br>systemctl start firewalld<br>systemctl stop firewalld.service<br>systemctl disable firewalld.service<br></code></pre></td></tr></table></figure><h1 id="配置阿里云yum源"><a href="#配置阿里云yum源" class="headerlink" title="配置阿里云yum源"></a>配置阿里云yum源</h1><h2 id="安装wget"><a href="#安装wget" class="headerlink" title="安装wget"></a>安装wget</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">yum -y install wget<br></code></pre></td></tr></table></figure><h2 id="备份原来的yum源"><a href="#备份原来的yum源" class="headerlink" title="备份原来的yum源"></a>备份原来的yum源</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">cd /etc/yum.repos.d/<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">mkdir bak<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">mv *.repo bak<br></code></pre></td></tr></table></figure><h2 id="配置阿里云yum源-1"><a href="#配置阿里云yum源-1" class="headerlink" title="配置阿里云yum源"></a>配置阿里云yum源</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo<br></code></pre></td></tr></table></figure><h2 id="清里yum缓存-重要"><a href="#清里yum缓存-重要" class="headerlink" title="清里yum缓存(重要)"></a>清里yum缓存(重要)</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">yum clean all &amp;&amp; yum makecache<br></code></pre></td></tr></table></figure><h1 id="方法一：编译安装nginx-更适合专业人员"><a href="#方法一：编译安装nginx-更适合专业人员" class="headerlink" title="方法一：编译安装nginx(更适合专业人员)"></a>方法一：编译安装nginx(更适合专业人员)</h1><h2 id="安装c-编译环境"><a href="#安装c-编译环境" class="headerlink" title="安装c++编译环境"></a>安装c++编译环境</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs angular2html">yum -y install gcc-c++<br></code></pre></td></tr></table></figure><h2 id="安装openssl-pcre-zlib-vim-httpd-tools"><a href="#安装openssl-pcre-zlib-vim-httpd-tools" class="headerlink" title="安装openssl,pcre,zlib,vim,httpd-tools"></a>安装openssl,pcre,zlib,vim,httpd-tools</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs angular2html">yum -y install openssl openssl-devel pcre pcre-devel zlib zlib-devel vim httpd-tools<br></code></pre></td></tr></table></figure><h2 id="编译安装nginx"><a href="#编译安装nginx" class="headerlink" title="编译安装nginx"></a>编译安装nginx</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">wget http://nginx.org/download/nginx-1.22.0.tar.gz<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">cd /usr/local/src/     # 默认下载路径<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">tar -zxvf nginx-1.22.0.tar.gz<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">cd nginx-1.22.0<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">./configure &amp;&amp; make &amp;&amp; make install<br></code></pre></td></tr></table></figure><h2 id="环境变量部分，配置好了就可以在任何目录执行nginx命令，感觉很有必要"><a href="#环境变量部分，配置好了就可以在任何目录执行nginx命令，感觉很有必要" class="headerlink" title="环境变量部分，配置好了就可以在任何目录执行nginx命令，感觉很有必要"></a>环境变量部分，配置好了就可以在任何目录执行nginx命令，感觉很有必要</h2><h2 id="查看nginx安装目录"><a href="#查看nginx安装目录" class="headerlink" title="查看nginx安装目录"></a>查看nginx安装目录</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">whereis nginx<br></code></pre></td></tr></table></figure><h2 id="配置环境变量"><a href="#配置环境变量" class="headerlink" title="配置环境变量"></a>配置环境变量</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">vi /etc/profile.d/nginx.sh<br></code></pre></td></tr></table></figure><h3 id="里面写"><a href="#里面写" class="headerlink" title="里面写"></a>里面写</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs angular2html">export PATH=&quot;$PATH:/usr/local/nginx/sbin&quot;<br></code></pre></td></tr></table></figure><h2 id="重新ssh连接使环境变量生效，不用重启系统"><a href="#重新ssh连接使环境变量生效，不用重启系统" class="headerlink" title="重新ssh连接使环境变量生效，不用重启系统"></a>重新ssh连接使环境变量生效，不用重启系统</h2><h2 id="检查nginx环境变量是否配置成功，出现-x2F-usr-x2F-local-x2F-nginx-x2F-sbin就成功了，即出现你的安装路径-x2F-sbin"><a href="#检查nginx环境变量是否配置成功，出现-x2F-usr-x2F-local-x2F-nginx-x2F-sbin就成功了，即出现你的安装路径-x2F-sbin" class="headerlink" title="检查nginx环境变量是否配置成功，出现&#x2F;usr&#x2F;local&#x2F;nginx&#x2F;sbin就成功了，即出现你的安装路径&#x2F;sbin"></a>检查nginx环境变量是否配置成功，出现&#x2F;usr&#x2F;local&#x2F;nginx&#x2F;sbin就成功了，即出现你的安装路径&#x2F;sbin</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@localhost ~]# echo $PATH<br>/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/nginx/sbin:/root/bin<br></code></pre></td></tr></table></figure><h1 id="方法二：rpm包安装-简单"><a href="#方法二：rpm包安装-简单" class="headerlink" title="方法二：rpm包安装(简单)"></a>方法二：rpm包安装(简单)</h1><h2 id="下载rpm包"><a href="#下载rpm包" class="headerlink" title="下载rpm包"></a>下载rpm包</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">wget https://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.20.2-1.el7.ngx.x86_64.rpm<br></code></pre></td></tr></table></figure><h2 id="安装，默认安装路径-x2F-etc-x2F-nginx"><a href="#安装，默认安装路径-x2F-etc-x2F-nginx" class="headerlink" title="安装，默认安装路径&#x2F;etc&#x2F;nginx"></a>安装，默认安装路径&#x2F;etc&#x2F;nginx</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">rpm -ivh nginx-1.20.2-1.el7.ngx.x86_64.rpm<br></code></pre></td></tr></table></figure><h2 id="启动"><a href="#启动" class="headerlink" title="启动"></a>启动</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">systemctl start nginx<br></code></pre></td></tr></table></figure><h2 id="开机自启-记得关selinux-上面有"><a href="#开机自启-记得关selinux-上面有" class="headerlink" title="开机自启(记得关selinux,上面有)"></a>开机自启(记得关selinux,上面有)</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">systemctl enable nginx<br></code></pre></td></tr></table></figure><h2 id="浏览器访问虚拟机或者服务器ip，出现Welcome-to-nginx-就安装成功啦"><a href="#浏览器访问虚拟机或者服务器ip，出现Welcome-to-nginx-就安装成功啦" class="headerlink" title="浏览器访问虚拟机或者服务器ip，出现Welcome to nginx!就安装成功啦"></a>浏览器访问虚拟机或者服务器ip，出现Welcome to nginx!就安装成功啦</h2><h1 id="基本操作命令"><a href="#基本操作命令" class="headerlink" title="基本操作命令"></a>基本操作命令</h1><h2 id="相关常用指令及参数"><a href="#相关常用指令及参数" class="headerlink" title="相关常用指令及参数"></a>相关常用指令及参数</h2><table><thead><tr><th align="center">参数</th><th align="center">释义</th></tr></thead><tbody><tr><td align="center">nginx -h&#x2F;-?</td><td align="center">输出nginx的帮助信息</td></tr><tr><td align="center">nginx -v</td><td align="center">输出nginx版本信息</td></tr><tr><td align="center">nginx -t</td><td align="center">检查nginx配置文件语法是否正确</td></tr><tr><td align="center">nginx -T</td><td align="center">检查配置输出配置信息</td></tr><tr><td align="center">nginx -s [参数]</td><td align="center">参数&#x3D;stop,quit,reopen,reload</td></tr><tr><td align="center">nginx -c</td><td align="center">设置自定义的nginx配置文件路径</td></tr><tr><td align="center">nginx -g</td><td align="center">设置覆盖一些默认的参数</td></tr><tr><td align="center">nginx -q</td><td align="center">检测配置文件期间屏蔽非错误信息</td></tr></tbody></table><h2 id="启动nginx"><a href="#启动nginx" class="headerlink" title="启动nginx"></a>启动nginx</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">nginx <br></code></pre></td></tr></table></figure><h2 id="访问ip-80-能访问则启动成功"><a href="#访问ip-80-能访问则启动成功" class="headerlink" title="访问ip:80,能访问则启动成功"></a>访问ip:80,能访问则启动成功</h2><h2 id="停止nginx"><a href="#停止nginx" class="headerlink" title="停止nginx"></a>停止nginx</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">nginx -s stop<br></code></pre></td></tr></table></figure><h2 id="平滑重启"><a href="#平滑重启" class="headerlink" title="平滑重启"></a>平滑重启</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">nginx -s reload<br></code></pre></td></tr></table></figure><h2 id="查看nginx相关进程"><a href="#查看nginx相关进程" class="headerlink" title="查看nginx相关进程"></a>查看nginx相关进程</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">ps -ef|grep nginx |grep -v grep<br></code></pre></td></tr></table></figure><h2 id="每次启动nginx前记得检查配置文件语法-ok就是没有问题"><a href="#每次启动nginx前记得检查配置文件语法-ok就是没有问题" class="headerlink" title="每次启动nginx前记得检查配置文件语法,ok就是没有问题"></a>每次启动nginx前记得检查配置文件语法,ok就是没有问题</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@localhost nginx]# nginx -t<br>nginx: the configuration file /etc/nginx/nginx.conf syntax is ok<br>nginx: configuration file /etc/nginx/nginx.conf test is successful<br></code></pre></td></tr></table></figure><h1 id="安装php7-0"><a href="#安装php7-0" class="headerlink" title="安装php7.0"></a>安装php7.0</h1><h2 id="添加epel第三方依赖库，安装YUM源"><a href="#添加epel第三方依赖库，安装YUM源" class="headerlink" title="添加epel第三方依赖库，安装YUM源"></a>添加epel第三方依赖库，安装YUM源</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">yum -y install epel-release yum-utils<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">rpm -Uvh http://mirror.webtatic.com/yum/el7/epel-release.rpm<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">rpm -ivh http://mirror.webtatic.com/yum/el7/webtatic-release.rpm<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">yum clean all &amp;&amp; yum makecache<br></code></pre></td></tr></table></figure><h2 id="安装PHP相关依赖库和模块"><a href="#安装PHP相关依赖库和模块" class="headerlink" title="安装PHP相关依赖库和模块"></a>安装PHP相关依赖库和模块</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">yum install -y php70w-tidy php70w-common php70w-devel php70w-pdo php70w-mysql php70w-gd php70w-ldap php70w-mbstring php70w-mcrypt php70w-fpm<br></code></pre></td></tr></table></figure><h2 id="检查php版本"><a href="#检查php版本" class="headerlink" title="检查php版本"></a>检查php版本</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">php -v<br></code></pre></td></tr></table></figure><h2 id="启动php-fpm，并设置开机自启"><a href="#启动php-fpm，并设置开机自启" class="headerlink" title="启动php-fpm，并设置开机自启"></a>启动php-fpm，并设置开机自启</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">systemctl start php-fpm &amp;&amp; systemctl enable php-fpm<br></code></pre></td></tr></table></figure><h1 id="安装mysql"><a href="#安装mysql" class="headerlink" title="安装mysql"></a>安装mysql</h1><h2 id="下载mysql压缩包"><a href="#下载mysql压缩包" class="headerlink" title="下载mysql压缩包"></a>下载mysql压缩包</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">wget https://llwp.linlink.xyz/%E8%BD%AF%E4%BB%B6%E7%B3%BB%E5%88%97/Linux_x64%20mysql/mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar<br></code></pre></td></tr></table></figure><h2 id="解压"><a href="#解压" class="headerlink" title="解压"></a>解压</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">tar -xvf mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar<br></code></pre></td></tr></table></figure><h2 id="本地安装MySQL"><a href="#本地安装MySQL" class="headerlink" title="本地安装MySQL"></a>本地安装MySQL</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">sudo yum localinstall *.rpm<br></code></pre></td></tr></table></figure><h2 id="查看MySQL版本"><a href="#查看MySQL版本" class="headerlink" title="查看MySQL版本"></a>查看MySQL版本</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">mysql --version<br></code></pre></td></tr></table></figure><h2 id="重启MySQL，并设置开启自启"><a href="#重启MySQL，并设置开启自启" class="headerlink" title="重启MySQL，并设置开启自启"></a>重启MySQL，并设置开启自启</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">systemctl restart mysqld &amp;&amp; systemctl enable mysqld<br></code></pre></td></tr></table></figure><h2 id="获取密码-最后一段就是密码"><a href="#获取密码-最后一段就是密码" class="headerlink" title="获取密码,最后一段就是密码"></a>获取密码,最后一段就是密码</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">grep &#x27;temporary password&#x27; /var/log/mysqld.log<br></code></pre></td></tr></table></figure><h2 id="登录MySQL"><a href="#登录MySQL" class="headerlink" title="登录MySQL"></a>登录MySQL</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">mysql -u root -p<br></code></pre></td></tr></table></figure><h2 id="先设置一个复杂的密码"><a href="#先设置一个复杂的密码" class="headerlink" title="先设置一个复杂的密码"></a>先设置一个复杂的密码</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">ALTER USER &#x27;root&#x27;@&#x27;localhost&#x27; IDENTIFIED WITH mysql_native_password BY &#x27;000Plinlink%&#x27;;<br></code></pre></td></tr></table></figure><h2 id="修改密码规则"><a href="#修改密码规则" class="headerlink" title="修改密码规则"></a>修改密码规则</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">set global validate_password.length=6;<br>set global validate_password.mixed_case_count=0;<br>set global validate_password.number_count=0;<br>set global validate_password.policy=LOW;<br>set global validate_password.special_char_count=0;<br></code></pre></td></tr></table></figure><h2 id="现在可以设置简单的密码"><a href="#现在可以设置简单的密码" class="headerlink" title="现在可以设置简单的密码"></a>现在可以设置简单的密码</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">ALTER USER &#x27;root&#x27;@&#x27;localhost&#x27; IDENTIFIED WITH mysql_native_password BY &#x27;123456&#x27;;<br></code></pre></td></tr></table></figure><h2 id="进入MySQL数据库"><a href="#进入MySQL数据库" class="headerlink" title="进入MySQL数据库"></a>进入MySQL数据库</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">use mysql;<br></code></pre></td></tr></table></figure><h2 id="修改权限、允许远程登陆"><a href="#修改权限、允许远程登陆" class="headerlink" title="修改权限、允许远程登陆"></a>修改权限、允许远程登陆</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">update user set host = &#x27;%&#x27; where user = &#x27;root&#x27;;<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">flush privileges;<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">select host, user from user;<br></code></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">quit<br></code></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;安装环境&quot;&gt;&lt;a href=&quot;#安装环境&quot; class=&quot;headerlink&quot; title=&quot;安装环境&quot;&gt;&lt;/a&gt;安装环境&lt;/h1&gt;&lt;ul&gt;
&lt;li&gt;CentOS 7 Linux系统安装nginx，php，mysql简写为LNMP&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 </summary>
      
    
    
    
    <category term="LNMP" scheme="https://www.linlink.xyz/categories/LNMP/"/>
    
    
    <category term="搭建教程" scheme="https://www.linlink.xyz/tags/%E6%90%AD%E5%BB%BA%E6%95%99%E7%A8%8B/"/>
    
  </entry>
  
  <entry>
    <title>VMware安装CentOS~7.9</title>
    <link href="https://www.linlink.xyz/posts/19bfdc81.html"/>
    <id>https://www.linlink.xyz/posts/19bfdc81.html</id>
    <published>2022-09-15T07:00:35.000Z</published>
    <updated>2022-12-28T02:35:19.055Z</updated>
    
    <content type="html"><![CDATA[<h1 id="下载CentOS-7-9镜像"><a href="#下载CentOS-7-9镜像" class="headerlink" title="下载CentOS~7.9镜像"></a>下载CentOS~7.9镜像</h1><p>下载地址：<a href="https://llwp.linlink.xyz/%E8%BD%AF%E4%BB%B6%E7%B3%BB%E5%88%97/%E8%99%9A%E6%8B%9F%E6%9C%BA%E7%B3%BB%E5%88%97/%E7%B3%BB%E7%BB%9F%E9%95%9C%E5%83%8F/CentOS-7-x86_64-DVD-2009.iso">https://llwp.linlink.xyz/%E8%BD%AF%E4%BB%B6%E7%B3%BB%E5%88%97/%E8%99%9A%E6%8B%9F%E6%9C%BA%E7%B3%BB%E5%88%97/%E7%B3%BB%E7%BB%9F%E9%95%9C%E5%83%8F/CentOS-7-x86_64-DVD-2009.iso</a></p><h1 id="配置VMware网络"><a href="#配置VMware网络" class="headerlink" title="配置VMware网络"></a>配置VMware网络</h1><p><img src="/pic/centos/1.png" alt="img"><br><img src="/pic/centos/2.png" alt="img"><br><img src="/pic/centos/3.png" alt="img"><br><img src="/pic/centos/4.png" alt="img"></p><h1 id="开始安装CentOS"><a href="#开始安装CentOS" class="headerlink" title="开始安装CentOS"></a>开始安装CentOS</h1><p><img src="/pic/centos/5.png" alt="img"><br><img src="/pic/centos/6.png" alt="img"><br><img src="/pic/centos/7.png" alt="img"><br><img src="/pic/centos/8.png" alt="img"><br><img src="/pic/centos/9.png" alt="img"><br><img src="/pic/centos/10.png" alt="img"><br><img src="/pic/centos/11.png" alt="img"><br><img src="/pic/centos/12.png" alt="img"><br><img src="/pic/centos/13.png" alt="img"><br><img src="/pic/centos/14.png" alt="img"></p><h2 id="选择Install-CentOS-7"><a href="#选择Install-CentOS-7" class="headerlink" title="选择Install CentOS 7"></a>选择Install CentOS 7</h2><p><img src="/pic/centos/15.png" alt="img"></p><h2 id="选择语言"><a href="#选择语言" class="headerlink" title="选择语言"></a>选择语言</h2><p><img src="/pic/centos/16.png" alt="img"></p><h2 id="分区-怎么都行"><a href="#分区-怎么都行" class="headerlink" title="分区(怎么都行)"></a>分区(怎么都行)</h2><p><img src="/pic/centos/17.png" alt="img"><br><img src="/pic/centos/18.png" alt="img"></p><h2 id="直接安装"><a href="#直接安装" class="headerlink" title="直接安装"></a>直接安装</h2><p><img src="/pic/centos/19.png" alt="img"></p><h2 id="设置root密码"><a href="#设置root密码" class="headerlink" title="设置root密码"></a>设置root密码</h2><p><img src="/pic/centos/20.png" alt="img"></p><h2 id="弱密码点两次"><a href="#弱密码点两次" class="headerlink" title="弱密码点两次"></a>弱密码点两次</h2><p><img src="/pic/centos/21.png" alt="img"></p><h2 id="重启"><a href="#重启" class="headerlink" title="重启"></a>重启</h2><p><img src="/pic/centos/22.png" alt="img"><br><img src="/pic/centos/23.png" alt="img"></p><h2 id="配置NAT静态ip"><a href="#配置NAT静态ip" class="headerlink" title="配置NAT静态ip"></a>配置NAT静态ip</h2><h3 id="查看网卡得知NAT的配置文件为ens33"><a href="#查看网卡得知NAT的配置文件为ens33" class="headerlink" title="查看网卡得知NAT的配置文件为ens33"></a>查看网卡得知NAT的配置文件为ens33</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@localhost ~]# ip a<br>1: lo: &lt;LOOPBACK,UP,LOWER_UP&gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000<br>    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00<br>    inet 127.0.0.1/8 scope host lo<br>       valid_lft forever preferred_lft forever<br>    inet6 ::1/128 scope host <br>       valid_lft forever preferred_lft forever<br>2: ens33: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000<br>    link/ether 00:0c:29:d5:f7:1b brd ff:ff:ff:ff:ff:ff<br>    inet 192.168.20.200/24 brd 192.168.20.255 scope global noprefixroute dynamic ens33<br>       valid_lft 1489sec preferred_lft 1489sec<br>    inet6 fe80::f230:6540:5c24:735/64 scope link noprefixroute <br>       valid_lft forever preferred_lft forever<br></code></pre></td></tr></table></figure><h3 id="编辑ens33"><a href="#编辑ens33" class="headerlink" title="编辑ens33"></a>编辑ens33</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">vi /etc/sysconfig/network-scripts/ifcfg-ens33<br></code></pre></td></tr></table></figure><h3 id="有的有双引号，有的没有，自己注意"><a href="#有的有双引号，有的没有，自己注意" class="headerlink" title="有的有双引号，有的没有，自己注意"></a>有的有双引号，有的没有，自己注意</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">TYPE=&quot;Ethernet&quot;<br>PROXY_METHOD=&quot;none&quot;<br>BROWSER_ONLY=&quot;no&quot;<br>BOOTPROTO=&quot;static&quot;<br>DEFROUTE=&quot;yes&quot;<br>IPV4_FAILURE_FATAL=&quot;no&quot;<br>IPV6INIT=&quot;yes&quot;<br>IPV6_AUTOCONF=&quot;yes&quot;<br>IPV6_DEFROUTE=&quot;yes&quot;<br>IPV6_FAILURE_FATAL=&quot;no&quot;<br>IPV6_ADDR_GEN_MODE=&quot;stable-privacy&quot;<br>NAME=&quot;ens33&quot;<br>UUID=&quot;d6084321-b13a-43b9-a474-26cb3ca78413&quot;<br>DEVICE=&quot;ens33&quot;<br>ONBOOT=&quot;yes&quot;<br>IPV6_PRIVACY=&quot;no&quot;<br>IPADDR=&quot;192.168.20.10&quot;<br>NETMASK=&quot;255.255.255.0&quot;<br>GATEWAY=&quot;192.168.20.2&quot;<br>DNS1=&quot;192.168.20.2&quot;<br></code></pre></td></tr></table></figure><h1 id="关机"><a href="#关机" class="headerlink" title="关机"></a>关机</h1><h1 id="添加第二个网卡-放后面不容易出错-需要就操作不需要就跳过"><a href="#添加第二个网卡-放后面不容易出错-需要就操作不需要就跳过" class="headerlink" title="添加第二个网卡,放后面不容易出错(需要就操作不需要就跳过)"></a>添加第二个网卡,放后面不容易出错(需要就操作不需要就跳过)</h1><p><img src="/pic/centos/24.png" alt="img"></p><h2 id="必须确定第一张网卡是NAT-第二张网卡是仅主机"><a href="#必须确定第一张网卡是NAT-第二张网卡是仅主机" class="headerlink" title="必须确定第一张网卡是NAT,第二张网卡是仅主机"></a>必须确定第一张网卡是NAT,第二张网卡是仅主机</h2><p><img src="/pic/centos/25.png" alt="img"></p><h2 id="配置仅主机模式静态ip"><a href="#配置仅主机模式静态ip" class="headerlink" title="配置仅主机模式静态ip"></a>配置仅主机模式静态ip</h2><h3 id="查看网卡得知仅主机模式的配置文件为ens36，有的是ens34或者其它"><a href="#查看网卡得知仅主机模式的配置文件为ens36，有的是ens34或者其它" class="headerlink" title="查看网卡得知仅主机模式的配置文件为ens36，有的是ens34或者其它"></a>查看网卡得知仅主机模式的配置文件为ens36，有的是ens34或者其它</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@localhost ~]# ip a<br>1: lo: &lt;LOOPBACK,UP,LOWER_UP&gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000<br>    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00<br>    inet 127.0.0.1/8 scope host lo<br>       valid_lft forever preferred_lft forever<br>    inet6 ::1/128 scope host <br>       valid_lft forever preferred_lft forever<br>2: ens33: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000<br>    link/ether 00:0c:29:d5:f7:1b brd ff:ff:ff:ff:ff:ff<br>    inet 192.168.20.200/24 brd 192.168.20.255 scope global noprefixroute dynamic ens33<br>       valid_lft 1730sec preferred_lft 1730sec<br>    inet6 fe80::f230:6540:5c24:735/64 scope link noprefixroute <br>       valid_lft forever preferred_lft forever<br>3: ens36: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000<br>    link/ether 00:0c:29:d5:f7:25 brd ff:ff:ff:ff:ff:ff<br>    inet 192.168.10.200/24 brd 192.168.10.255 scope global noprefixroute dynamic ens36<br>       valid_lft 1729sec preferred_lft 1729sec<br>    inet6 fe80::1da4:c7ed:f085:ce2d/64 scope link noprefixroute <br>       valid_lft forever preferred_lft forever<br><br></code></pre></td></tr></table></figure><h3 id="查看是否有ens36文件-好像是没有-有就直接编辑它"><a href="#查看是否有ens36文件-好像是没有-有就直接编辑它" class="headerlink" title="查看是否有ens36文件,好像是没有,有就直接编辑它"></a>查看是否有ens36文件,好像是没有,有就直接编辑它</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@localhost ~]# ll /etc/sysconfig/network-scripts/<br>total 232<br>-rw-r--r--. 1 root root   328 Sep 23 11:39 ifcfg-ens33<br>-rw-r--r--. 1 root root   254 May 22  2020 ifcfg-lo<br>lrwxrwxrwx. 1 root root    24 Sep 23 11:38 ifdown -&gt; ../../../usr/sbin/ifdown<br>-rwxr-xr-x. 1 root root   654 May 22  2020 ifdown-bnep<br>-rwxr-xr-x. 1 root root  6532 May 22  2020 ifdown-eth<br></code></pre></td></tr></table></figure><h3 id="如果没有ens36，如果是ens34-把下面ens36修改为ens34"><a href="#如果没有ens36，如果是ens34-把下面ens36修改为ens34" class="headerlink" title="如果没有ens36，如果是ens34,把下面ens36修改为ens34"></a>如果没有ens36，如果是ens34,把下面ens36修改为ens34</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">nmcli con add con-name ens36 type ethernet ifname ens36<br></code></pre></td></tr></table></figure><h3 id="继续查看有没有ens36文件-这下有了"><a href="#继续查看有没有ens36文件-这下有了" class="headerlink" title="继续查看有没有ens36文件,这下有了"></a>继续查看有没有ens36文件,这下有了</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@localhost ~]# ll /etc/sysconfig/network-scripts/<br>total 236<br>-rw-r--r--. 1 root root   328 Sep 23 11:39 ifcfg-ens33<br>-rw-r--r--. 1 root root   280 Sep 23 12:03 ifcfg-ens36<br>-rw-r--r--. 1 root root   254 May 22  2020 ifcfg-lo<br>lrwxrwxrwx. 1 root root    24 Sep 23 11:38 ifdown -&gt; ../../../usr/sbin/ifdown<br>-rwxr-xr-x. 1 root root   654 May 22  2020 ifdown-bnep<br>-rwxr-xr-x. 1 root root  6532 May 22  2020 ifdown-eth<br>-rwxr-xr-x. 1 root root   781 May 22  2020 ifdown-ippp<br>-rwxr-xr-x. 1 root root  4540 May 22  2020 ifdown-ipv6<br></code></pre></td></tr></table></figure><h3 id="编辑ens36"><a href="#编辑ens36" class="headerlink" title="编辑ens36"></a>编辑ens36</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">vi /etc/sysconfig/network-scripts/ifcfg-ens36<br></code></pre></td></tr></table></figure><h3 id="有的有双引号，有的没有，自己注意-1"><a href="#有的有双引号，有的没有，自己注意-1" class="headerlink" title="有的有双引号，有的没有，自己注意"></a>有的有双引号，有的没有，自己注意</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">TYPE=Ethernet<br>PROXY_METHOD=none<br>BROWSER_ONLY=no<br>BOOTPROTO=static<br>DEFROUTE=yes<br>IPV4_FAILURE_FATAL=no<br>IPV6INIT=yes<br>IPV6_AUTOCONF=yes<br>IPV6_DEFROUTE=yes<br>IPV6_FAILURE_FATAL=no<br>IPV6_ADDR_GEN_MODE=stable-privacy<br>NAME=ens36<br>UUID=e58dad0e-108b-4039-9ad3-2bec0f5799c0<br>DEVICE=ens36<br>ONBOOT=yes<br>IPADDR=192.168.10.10<br>NETMASK=255.255.255.0<br>GATEWAY=192.168.10.2<br>DNS1=192.168.10.2<br></code></pre></td></tr></table></figure><h3 id="重启网卡"><a href="#重启网卡" class="headerlink" title="重启网卡"></a>重启网卡</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">systemctl restart network   <br></code></pre></td></tr></table></figure><h3 id="查看ip"><a href="#查看ip" class="headerlink" title="查看ip"></a>查看ip</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@localhost ~]# ip a<br>1: lo: &lt;LOOPBACK,UP,LOWER_UP&gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000<br>    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00<br>    inet 127.0.0.1/8 scope host lo<br>       valid_lft forever preferred_lft forever<br>    inet6 ::1/128 scope host <br>       valid_lft forever preferred_lft forever<br>2: ens33: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000<br>    link/ether 00:0c:29:d5:f7:1b brd ff:ff:ff:ff:ff:ff<br>    inet 192.168.20.10/24 brd 192.168.20.255 scope global noprefixroute ens33<br>       valid_lft forever preferred_lft forever<br>    inet6 fe80::f230:6540:5c24:735/64 scope link noprefixroute <br>       valid_lft forever preferred_lft forever<br>3: ens36: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000<br>    link/ether 00:0c:29:d5:f7:25 brd ff:ff:ff:ff:ff:ff<br>    inet 192.168.10.10/24 brd 192.168.10.255 scope global noprefixroute ens36<br>       valid_lft forever preferred_lft forever<br>    inet6 fe80::5cdf:75f:54b:12dd/64 scope link noprefixroute <br>       valid_lft forever preferred_lft forever<br></code></pre></td></tr></table></figure><h3 id="测试网络连通性"><a href="#测试网络连通性" class="headerlink" title="测试网络连通性"></a>测试网络连通性</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">[root@localhost ~]# ping baidu.com<br>PING baidu.com (110.242.68.66) 56(84) bytes of data.<br>64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=1 ttl=128 time=45.5 ms<br>64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=2 ttl=128 time=45.6 ms<br>64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=3 ttl=128 time=45.5 ms<br>64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=4 ttl=128 time=45.7 ms<br>64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=5 ttl=128 time=45.4 ms<br>^C<br>--- baidu.com ping statistics ---<br>5 packets transmitted, 5 received, 0% packet loss, time 4010ms<br>rtt min/avg/max/mdev = 45.468/45.613/45.793/0.291 ms<br></code></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;下载CentOS-7-9镜像&quot;&gt;&lt;a href=&quot;#下载CentOS-7-9镜像&quot; class=&quot;headerlink&quot; title=&quot;下载CentOS~7.9镜像&quot;&gt;&lt;/a&gt;下载CentOS~7.9镜像&lt;/h1&gt;&lt;p&gt;下载地址：&lt;a href=&quot;https://</summary>
      
    
    
    
    <category term="安装教程" scheme="https://www.linlink.xyz/categories/%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="VMware" scheme="https://www.linlink.xyz/tags/VMware/"/>
    
    <category term="linux" scheme="https://www.linlink.xyz/tags/linux/"/>
    
  </entry>
  
  <entry>
    <title>服务器知识</title>
    <link href="https://www.linlink.xyz/posts/1e00c691.html"/>
    <id>https://www.linlink.xyz/posts/1e00c691.html</id>
    <published>2022-09-10T07:00:35.000Z</published>
    <updated>2022-12-28T02:37:58.684Z</updated>
    
    <content type="html"><![CDATA[<h1 id="基本"><a href="#基本" class="headerlink" title="基本"></a>基本</h1><p>服务器是计算机的一种，它比普通计算机运行更快、负载更高、价格更贵。服务器在网络中为其它客户机（如PC机、智能手机、ATM等终端甚至是火车系统等大型设备）提供计算或者应用服务。服务器具有高速的CPU运算能力、长时间的可靠运行、强大的I&#x2F;O外部数据吞吐能力以及更好的扩展性。根据服务器所提供的服务，一般来说服务器都具备承担响应服务请求、承担服务、保障服务的能力。服务器作为电子设备，其内部的结构十分的复杂，但与普通的计算机内部结构相差不大，如：cpu、硬盘、内存，系统、系统总线等，说人话就是服务器差不多就是台电脑比电脑强太多，跟电脑一样越强越贵</p><h1 id="作用"><a href="#作用" class="headerlink" title="作用"></a>作用</h1><p>服务器主要是用来响应终端的服务请求，并进行处理。我们在上网的时候是不可能直接将网络接入互联网的，我们都需要通过服务器来连接网络，只有服务器响应你的请求，并且进行处理以后才以联网:存储的功能，服务器的存储空间一般比较允足，可以存储非常多的信息，说人话差不多就是可以搭建网站，让大家可以访问，建网站可以进行一些商业用途或者自己的个人空间比如这个博客</p><h1 id="区别"><a href="#区别" class="headerlink" title="区别"></a>区别</h1><ul><li>：ECS服务器：云服务器(Elastic Compute Service)，通常用户可以根据自己的需要选定主机容量、CPU能力、内存大小、带宽及购买时常等，因此也称之为弹性计算服务器，ECS在使用上和独立的服务器没有区别，且可以让企业节省自行购买和维护服务器硬件的成本，ECS已被中小企业广泛使用</li><li>：VPS服务器：虚拟专用服务器（Virtual Private Server),即将一台独立服务器通过虚拟技术分割为若干个虚拟服务器，每个VPS可以独立安装系统，拥有独立的IP，实现不同VPS间磁盘空间、内存、CPU资源、进程和系统配置的隔离，为用户和应用程序模拟出“独占”使用计算资源的体验。VPS可以像独立服务器一样，重装操作系统，安装程序，单独重启服务器，形式上和ECS没有区别，但总体性能和付费灵活性不如ECS</li><li>：虚拟主机：即将一台已安装操作系统和安全防范的服务器通过技术手段分割为若干个独立的空间，分配给用户独立使用，用户只需要上传网站程序，解析和绑定域名即可使用。虚拟主机不同于服务器，用户无法安装操作系统和操作软件，只能运行网站脚本语言、html文件、图片及其他静态文件等。虚拟主机相当于若干个用户一起租用一台服务器，价格实惠，简单易用，因此大多数企业网站选择了虚拟主机，而自助建站及云建站使用的也是虚拟主机</li><li>大小关系为：ECS服务器(贵)&gt;VPS服务器(一般)&gt;虚拟主机(便宜或者免费)</li><li>ECS服务器相当于一台电脑，VPS服务器相当于一台电脑的磁盘，虚拟主机相当于电脑磁盘里的一个文件夹</li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;基本&quot;&gt;&lt;a href=&quot;#基本&quot; class=&quot;headerlink&quot; title=&quot;基本&quot;&gt;&lt;/a&gt;基本&lt;/h1&gt;&lt;p&gt;服务器是计算机的一种，它比普通计算机运行更快、负载更高、价格更贵。服务器在网络中为其它客户机（如PC机、智能手机、ATM等终端甚至是火车系统</summary>
      
    
    
    
    <category term="服务器" scheme="https://www.linlink.xyz/categories/%E6%9C%8D%E5%8A%A1%E5%99%A8/"/>
    
    
    <category term="服务器" scheme="https://www.linlink.xyz/tags/%E6%9C%8D%E5%8A%A1%E5%99%A8/"/>
    
  </entry>
  
  <entry>
    <title>虚拟平台</title>
    <link href="https://www.linlink.xyz/posts/160cd45b.html"/>
    <id>https://www.linlink.xyz/posts/160cd45b.html</id>
    <published>2022-09-05T07:00:35.000Z</published>
    <updated>2022-12-28T02:44:42.046Z</updated>
    
    <content type="html"><![CDATA[<h1 id="常见的虚拟机软件"><a href="#常见的虚拟机软件" class="headerlink" title="常见的虚拟机软件"></a>常见的虚拟机软件</h1><ul><li>VirtualBox</li><li>VMware Workstation</li><li>Microsoft Windows Virtual PC</li></ul><h1 id="VirtualBox"><a href="#VirtualBox" class="headerlink" title="VirtualBox"></a>VirtualBox</h1><p>VirtualBox 是一款开源虚拟机软件。VirtualBox 是由德国 Innotek 公司开发，由Sun Microsystems公司出品的软件，使用Qt编写，在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。Innotek 以 GNU General Public License (GPL) 释出 VirtualBox，并提供二进制版本及 OSE 版本的代码。使用者可以在VirtualBox上安装并且执行Solaris、Windows、DOS、Linux、OS&#x2F;2 Warp、BSD等系统作为客户端操作系统。已由甲骨文公司进行开发，是甲骨文公司xVM虚拟化平台技术的一部分。<br>VirtualBox号称是最强的免费虚拟机软件，它不仅具有丰富的特色，而且性能也很优异。它简单易用，可虚拟的系统包括Windows（从Windows 3.1到Windows 10、Windows Server 2012，所有的Windows系统都支持）、Mac OS X、Linux、OpenBSD、Solaris、IBM OS2甚至Android等操作系统。使用者可以在VirtualBox上安装并且运行上述的这些操作系统。 与同性质的VMware及Virtual PC比较下，VirtualBox独到之处包括远端桌面协定（RDP）、iSCSI及USB的支持，VirtualBox在客户端操作系统上已可以支持USB 3.0的硬件装置，不过要安装 VirtualBox Extension Pack</p><h1 id="VMware-Workstation"><a href="#VMware-Workstation" class="headerlink" title="VMware Workstation"></a>VMware Workstation</h1><p>VMware Workstation（中文名“威睿工作站”）是一款功能强大的桌面虚拟计算机软件，提供用户可在单一的桌面上同时运行不同的操作系统，和进行开发、测试 、部署新的应用程序的最佳解决方案。VMware Workstation可在一部实体机器上模拟完整的网络环境，以及可便于携带的虚拟机器，其更好的灵活性与先进的技术胜过了市面上其他的虚拟计算机软件。对于企业的 IT开发人员和系统管理员而言， VMware在虚拟网路，实时快照，拖曳共享文件夹，支持 PXE 等方面的特点使它成为必不可少的工具</p><h1 id="Microsoft-Windows-Virtual-PC"><a href="#Microsoft-Windows-Virtual-PC" class="headerlink" title="Microsoft Windows Virtual PC"></a>Microsoft Windows Virtual PC</h1><p>Windows Virtual PC是Microsoft最新的虚拟化技术。借助Windows Virtual PC，您单击一次即可直接从基于Windows 7的计算机在虚拟的Windows环境中运行许多生产应用程序</p><h1 id="虚拟网络基础-VMware"><a href="#虚拟网络基础-VMware" class="headerlink" title="虚拟网络基础(VMware)"></a>虚拟网络基础(VMware)</h1><ul><li>VMnet0 – 桥接模式 – 宿主机的物理网络和虚拟机的虚拟网卡在同一网段，可以通过宿主机物理网络访问互联网</li><li>VMnet1 – 仅主机模式 – 宿主机的物理网络和虚拟机的虚拟网卡必须在同一网段，但无法通过宿主机物理网络访问互联网</li><li>VMnet8 – NAT模式 – 宿主机的物理网络和虚拟机的虚拟网卡不在同一网段，可以通过宿主机物理网络访问互联网</li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;常见的虚拟机软件&quot;&gt;&lt;a href=&quot;#常见的虚拟机软件&quot; class=&quot;headerlink&quot; title=&quot;常见的虚拟机软件&quot;&gt;&lt;/a&gt;常见的虚拟机软件&lt;/h1&gt;&lt;ul&gt;
&lt;li&gt;VirtualBox&lt;/li&gt;
&lt;li&gt;VMware Workstation&lt;/</summary>
      
    
    
    
    <category term="虚拟化" scheme="https://www.linlink.xyz/categories/%E8%99%9A%E6%8B%9F%E5%8C%96/"/>
    
    
    <category term="虚拟化" scheme="https://www.linlink.xyz/tags/%E8%99%9A%E6%8B%9F%E5%8C%96/"/>
    
  </entry>
  
  <entry>
    <title>云计算</title>
    <link href="https://www.linlink.xyz/posts/f8225068.html"/>
    <id>https://www.linlink.xyz/posts/f8225068.html</id>
    <published>2022-09-01T07:00:35.000Z</published>
    <updated>2022-12-28T02:45:09.754Z</updated>
    
    <content type="html"><![CDATA[<h2 id="简述云计算的定义"><a href="#简述云计算的定义" class="headerlink" title="简述云计算的定义"></a>简述云计算的定义</h2><ul><li>云计算是一种按使用量付费的模式，它可以实现随时随地、便捷地、随需应变地从可配置计算资源共享池中获取所需的资源（例如：网络、服务器、存储、应用及服务），资源能够快速供应并释放，使管理资源的工作量和与服务提供商的交互减小到最低限度</li></ul><h2 id="简述云计算的特点"><a href="#简述云计算的特点" class="headerlink" title="简述云计算的特点"></a>简述云计算的特点</h2><ul><li>采用虚拟化技术</li><li>超大规模</li><li>动态可扩展</li><li>按需分配，按量计费</li><li>灵活性高</li><li>具有高可靠性</li><li>支持弹性伸缩</li></ul><h2 id="简述云计算的两种分类方式"><a href="#简述云计算的两种分类方式" class="headerlink" title="简述云计算的两种分类方式"></a>简述云计算的两种分类方式</h2><ul><li>按服务对象分类: 公有，私有，混和</li><li>按服务类型分类：硬件，平台，软件</li></ul><h2 id="简述公有云和私有云的区别"><a href="#简述公有云和私有云的区别" class="headerlink" title="简述公有云和私有云的区别"></a>简述公有云和私有云的区别</h2><ul><li>公：面对所有人</li><li>私：面对私人企业</li></ul><h2 id="如果需要在云上租用一台完整的服务器，应该向“IaaS”、“PaaS”、“SaaS”哪种云平台申请？"><a href="#如果需要在云上租用一台完整的服务器，应该向“IaaS”、“PaaS”、“SaaS”哪种云平台申请？" class="headerlink" title="如果需要在云上租用一台完整的服务器，应该向“IaaS”、“PaaS”、“SaaS”哪种云平台申请？"></a>如果需要在云上租用一台完整的服务器，应该向“IaaS”、“PaaS”、“SaaS”哪种云平台申请？</h2><ul><li>IaaS</li></ul><h2 id="简述OpenStack的核心组件功能"><a href="#简述OpenStack的核心组件功能" class="headerlink" title="简述OpenStack的核心组件功能"></a>简述OpenStack的核心组件功能</h2><ul><li>Identity~认证组件：项目名：Keystone，为其他OpenStack组件如Glance、Nova等提供认证和授权服务</li><li>Image~镜像管理组件：项目名：Glance，用来管理云主机的磁盘镜像和快照的组件，可以进行创建或删除镜像、创建或删除快照等操作</li><li>Compute~云主机管理组件：项目名：Nova，在OpenStack云操作系统中对云主机（也称实例）进行管理的组件，可以进行如云主机生成、调度、回收等操作</li><li>Network~网络服务组件：项目名：Neutron，曾用名为Quantum。Neutron是OpenStack中提供网络服务的核心组件，由它来管理云主机之间的网络</li><li>Dashboard~管理组件：项目名：Horizon，主要提供了一个名为Dashboard的Web服务，实现对云平台的可视化管理。如图2.4所示为Dashboard的管理界面</li></ul><h2 id="OpenStack的“Queens”版和“Victoria”版哪个更晚发行？"><a href="#OpenStack的“Queens”版和“Victoria”版哪个更晚发行？" class="headerlink" title="OpenStack的“Queens”版和“Victoria”版哪个更晚发行？"></a>OpenStack的“Queens”版和“Victoria”版哪个更晚发行？</h2><ul><li>根据版本单词首字母判断新旧，从A-Z越往后越新V在Q后面所以“Victoria”版更晚发行</li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;简述云计算的定义&quot;&gt;&lt;a href=&quot;#简述云计算的定义&quot; class=&quot;headerlink&quot; title=&quot;简述云计算的定义&quot;&gt;&lt;/a&gt;简述云计算的定义&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;云计算是一种按使用量付费的模式，它可以实现随时随地、便捷地、随需应变地从可配置计</summary>
      
    
    
    
    <category term="云计算" scheme="https://www.linlink.xyz/categories/%E4%BA%91%E8%AE%A1%E7%AE%97/"/>
    
    
    <category term="云计算" scheme="https://www.linlink.xyz/tags/%E4%BA%91%E8%AE%A1%E7%AE%97/"/>
    
  </entry>
  
  <entry>
    <title>利用Python爬虫爬取图片api下载图片</title>
    <link href="https://www.linlink.xyz/posts/8968b02d.html"/>
    <id>https://www.linlink.xyz/posts/8968b02d.html</id>
    <published>2022-08-25T07:00:35.000Z</published>
    <updated>2022-12-28T02:43:42.585Z</updated>
    
    <content type="html"><![CDATA[<h2 id="代码参考-出事自己负责"><a href="#代码参考-出事自己负责" class="headerlink" title="代码参考,出事自己负责"></a>代码参考,出事自己负责</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">import urllib.request<br>import time<br>import random<br>j = 0<br># 获取10张图片<br>while j &lt; 10:<br>    order_number = lambda : int(round(time.time() * 1000 * 1000))  # 设置图片随机id<br>    t = random.randint(1, 3)  # 设置随机延时<br>    response = urllib.request.urlopen(&#x27;https://api.ixiaowai.cn/api/api.php&#x27;)  # 获取请求图片api<br>    cat_img = response.read()  # 保存图片<br>    time.sleep(t)  # 随机延时<br>    print(&quot;成功获取：&quot;+str(order_number()))<br>    j = j + 1<br>    DownloadPath = &quot;D:/img/&quot;   # 自定义下载路径,必须以“ / ”必须结尾<br>    with open(DownloadPath + str(order_number())+&quot;.jpg&quot;, &quot;wb&quot;) as f:<br>        f.write(cat_img)<br>print(&quot;下载完成&quot;)<br></code></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;代码参考-出事自己负责&quot;&gt;&lt;a href=&quot;#代码参考-出事自己负责&quot; class=&quot;headerlink&quot; title=&quot;代码参考,出事自己负责&quot;&gt;&lt;/a&gt;代码参考,出事自己负责&lt;/h2&gt;&lt;figure class=&quot;highlight plaintext&quot;&gt;&lt;</summary>
      
    
    
    
    <category term="Python" scheme="https://www.linlink.xyz/categories/Python/"/>
    
    
    <category term="爬虫" scheme="https://www.linlink.xyz/tags/%E7%88%AC%E8%99%AB/"/>
    
  </entry>
  
  <entry>
    <title>IDEA安装教程</title>
    <link href="https://www.linlink.xyz/posts/45bde9d4.html"/>
    <id>https://www.linlink.xyz/posts/45bde9d4.html</id>
    <published>2022-08-17T07:00:34.000Z</published>
    <updated>2022-12-28T02:40:11.341Z</updated>
    
    <content type="html"><![CDATA[<h1 id="前情提醒，此安装方法只适用操作系统Windows10，我网盘的IDEA版本，因为破解的嘛"><a href="#前情提醒，此安装方法只适用操作系统Windows10，我网盘的IDEA版本，因为破解的嘛" class="headerlink" title="前情提醒，此安装方法只适用操作系统Windows10，我网盘的IDEA版本，因为破解的嘛"></a>前情提醒，此安装方法只适用操作系统Windows10，我网盘的IDEA版本，因为破解的嘛</h1><h1 id="IDEA介绍"><a href="#IDEA介绍" class="headerlink" title="IDEA介绍"></a>IDEA介绍</h1><p>IDEA全称 IntelliJ IDEA，是 Java 语言的集成开发环境，IDEA 在业界被公认为是最好的 java 开发工具之一，尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS 整合、代码审查、创新的 GUI 设计等方面的功能可以说是超常的。IntelliJ IDEA 主要用于支持 Java、Scala、Groovy 等语言的开发工具</p><h1 id="IDEA优点"><a href="#IDEA优点" class="headerlink" title="IDEA优点"></a>IDEA优点</h1><p>精准搜索、提示功能的范围广、提示功能的快速、便捷、整合能力强、好用的快捷键、支持代码模板 private static final psf</p><h1 id="IDEA下载"><a href="#IDEA下载" class="headerlink" title="IDEA下载"></a>IDEA下载</h1><p>这没什么好说的，下载地址<br><a href="https://llwp.linlink.xyz/%E8%BD%AF%E4%BB%B6%E7%B3%BB%E5%88%97/%E4%BB%A3%E7%A0%81%E7%BC%96%E8%AF%91%E5%B7%A5%E5%85%B7/">https://llwp.linlink.xyz/%E8%BD%AF%E4%BB%B6%E7%B3%BB%E5%88%97/%E4%BB%A3%E7%A0%81%E7%BC%96%E8%AF%91%E5%B7%A5%E5%85%B7/</a></p><h1 id="IDEA安装及配置"><a href="#IDEA安装及配置" class="headerlink" title="IDEA安装及配置"></a>IDEA安装及配置</h1><p>解压后的样子<br><img src="/pic/idea/idea1.png" alt="img"><br>安装idea，直接运行.exe文件<br><img src="/pic/idea/idea2.png" alt="img"><br>默认安装在C盘，改一下安装路径，可以不改，看自己爱好就行<br>我的安装路径：D:\ruanjian\idea\IntelliJ IDEA 2021.3<br><img src="/pic/idea/idea3.png" alt="img"><br>这里选上快捷方式和添加环境变量,中间那个我不能接受我选择不选，选了桌面右键变宽对我还没啥用<br>你如果能接受就选，下面那些就是绑定什么文件用idea打开，如果选择了.java那么打开Java文件时就<br>会用idea打开，自行考虑选择，选择好后Next—&gt;install<br><img src="/pic/idea/idea4.png" alt="img"><br>安装完成<br><img src="/pic/idea/idea5.png" alt="img"><br>找到 “ FineAgent.jar “ 这个文件，将它复制到C盘根目录下<br><img src="/pic/idea/idea6.png" alt="img"><br><img src="/pic/idea/idea7.png" alt="img"><br>找到你的IDEA安装目录，并进入到bin目录<br><img src="/pic/idea/idea8.png" alt="img"><br>进去后找到 “ idea64.exe.vmoptions “ 这个文件，并用记事本打开<br><img src="/pic/idea/idea9.png" alt="img"><br>里面添加一句话: -javaagent:c:&#x2F;fineagent.jar<br><img src="/pic/idea/idea10.png" alt="img"><br>保存后退出，找到 “ 激活码.txt “全文复制里面的内容(建议CTRL+A，CTRL+C)<br><img src="/pic/idea/idea11.png" alt="img"><br>回到桌面找到IDEA快捷方式启动它，选择Activation code将刚才复制的激活码粘贴到下方方框中，然后点击Activatie<br><img src="/pic/idea/idea12.png" alt="img"><br>到这里就完成了，2099年到期相当于永久了<br><img src="/pic/idea/idea13.png" alt="img"><br>后续配置及验证<br><img src="/pic/idea/idea14.png" alt="img"><br>新建一个项目<br><img src="/pic/idea/idea15.png" alt="img"><br>选择Java和Java版本，下一步<br><img src="/pic/idea/idea16.png" alt="img"><br>下一步<br><img src="/pic/idea/idea17.png" alt="img"><br>自定义项目名字和自定义项目路径<br><img src="/pic/idea/idea18.png" alt="img"><br>右键src新建一个package(包)并取名，注意包名全部要小写<br>右键package新建一个class(类)，注意类单词首字母要大写<br><img src="/pic/idea/idea19.png" alt="img"></p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><code class="hljs plaintext">package javayyds;<br>//package后面跟你的包名<br>public class CatJava &#123;<br>    //class后面跟你的类名<br>    public static void main(String[] args) &#123;<br>        System.out.println(&quot;hello Java&quot;);<br>    &#125;<br>&#125;<br></code></pre></td></tr></table></figure><p><img src="/pic/idea/idea20.png" alt="img"><br>到此结束，感谢你的观看</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;前情提醒，此安装方法只适用操作系统Windows10，我网盘的IDEA版本，因为破解的嘛&quot;&gt;&lt;a href=&quot;#前情提醒，此安装方法只适用操作系统Windows10，我网盘的IDEA版本，因为破解的嘛&quot; class=&quot;headerlink&quot; title=&quot;前情提醒</summary>
      
    
    
    
    <category term="IDEA" scheme="https://www.linlink.xyz/categories/IDEA/"/>
    
    
    <category term="安装教程" scheme="https://www.linlink.xyz/tags/%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B/"/>
    
  </entry>
  
  <entry>
    <title>Java安装</title>
    <link href="https://www.linlink.xyz/posts/c032fe54.html"/>
    <id>https://www.linlink.xyz/posts/c032fe54.html</id>
    <published>2022-08-16T07:00:34.000Z</published>
    <updated>2022-10-08T07:23:17.861Z</updated>
    
    <content type="html"><![CDATA[<h1 id="Java下载"><a href="#Java下载" class="headerlink" title="Java下载"></a>Java下载</h1><p>Java下载地址：<a href="https://www.oracle.com/java/technologies/downloads/archive">https://www.oracle.com/java/technologies/downloads/archive</a><br>可能需要注册账号啥的，嫌麻烦的可以去我的网盘下载，网盘下载地址：<br><a href="https://llwp.linlink.xyz/%E8%BD%AF%E4%BB%B6%E7%B3%BB%E5%88%97/Win_x64,Java%E5%90%84%E7%89%88%E6%9C%AC">https://llwp.linlink.xyz/%E8%BD%AF%E4%BB%B6%E7%B3%BB%E5%88%97/Win_x64,Java%E5%90%84%E7%89%88%E6%9C%AC</a></p><h1 id="Java安装"><a href="#Java安装" class="headerlink" title="Java安装"></a>Java安装</h1><p>为了方便我就用我网盘下载的Java安装包,大概是这样<br><img src="/pic/java/javaaz1.png" alt="img"><br>直接运行这个文件即可<br><img src="/pic/java/javaaz2.png" alt="img"><br>可以看到默认安装为C盘，我们更改一下安装路径，改为你自己想要的安装路径，C盘战士请直接下一步<br>我的安装路径：D:\ruanjian\java\jdk-17.0.1(要记住这个路径)<br><img src="/pic/java/javaaz3.png" alt="img"><br>出现已成功安装，即jdk安装成功，如下图<br><img src="/pic/java/javaaz4.png" alt="img"><br>安装结束</p><h1 id="配置环境变量"><a href="#配置环境变量" class="headerlink" title="配置环境变量"></a>配置环境变量</h1><p>回到桌面&#x3D;&#x3D;&gt;右键此电脑&#x3D;&#x3D;&gt;点击属性&#x3D;&#x3D;&gt;进入到关于界面&#x3D;&#x3D;&gt;点击高级系统设置<br><img src="/pic/java/javaaz5.png" alt="img"><br>点击环境变量<br><img src="/pic/java/javaaz6.png" alt="img"><br>点击新建系统环境变量<br><img src="/pic/java/javaaz7.png" alt="img"><br>输入变量名和变量值<br>变量名：JAVA_HOME<br>变量值：是你的Java安装路径，不要抄我的<br><img src="/pic/java/javaaz8.png" alt="img"><br>确定后继续新建一个系统环境变量并输入变量名和变量值<br>变量名：CLASSPATH<br>变量值：.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar<br><img src="/pic/java/javaaz9.png" alt="img"><br>确定后选择path，编辑<br><img src="/pic/java/javaaz10.png" alt="img"><br>新建一个环境变量<br><img src="/pic/java/javaaz11.png" alt="img"><br>里面写入：%JAVA_HOME%\bin<br><img src="/pic/java/javaaz12.png" alt="img"><br>然后确定，确定，确定即可,回到桌面后W+R输入cmd回车输入：java -version 回车，出现Java版本号即环境配置完成<br><img src="/pic/java/javaaz13.png" alt="img"><br>到此安装及配置结束，如果需要多版本之间切换，即修改JAVA_HOME的变量值(版本路径)</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;Java下载&quot;&gt;&lt;a href=&quot;#Java下载&quot; class=&quot;headerlink&quot; title=&quot;Java下载&quot;&gt;&lt;/a&gt;Java下载&lt;/h1&gt;&lt;p&gt;Java下载地址：&lt;a href=&quot;https://www.oracle.com/java/technolo</summary>
      
    
    
    
    <category term="uncategorized" scheme="https://www.linlink.xyz/categories/uncategorized/"/>
    
    
  </entry>
  
</feed>
