<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>EFV智能云转码切片系统 – Linux教程</title>
    <link>https://docs.efvcms.com/blog/linux-tutorial/</link>
    <description>Recent content in Linux教程 on EFV智能云转码切片系统</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh-cn</language>
    
	  <atom:link href="https://docs.efvcms.com/blog/linux-tutorial/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Blog: Linux服务器挂载硬盘</title>
      <link>https://docs.efvcms.com/blog/linux-tutorial/linux-server-mounting-disk-tutorial/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.efvcms.com/blog/linux-tutorial/linux-server-mounting-disk-tutorial/</guid>
      <description>
        
        
        &lt;p&gt;我们买独立服务器的时候，有些硬盘是需要我们自己挂载的，如果服务器只有一块硬盘需要挂载，那么这里会写单个硬盘挂载教程。&lt;/p&gt;
&lt;p&gt;但如果服务器有多块硬盘需要挂载，鉴于难度有点高，建议直接给商家发工单，要他们使用&lt;code&gt;raid 0&lt;/code&gt;合并所有硬盘后，再给你挂载到根目录。&lt;/p&gt;
&lt;p&gt;不过我建议不管是一块，还是多块，最好都去发工单要服务商帮忙挂载，以免自己误操作导致服务器开不了机。&lt;/p&gt;
&lt;h2 id=&#34;挂载步骤&#34;&gt;挂载步骤&lt;/h2&gt;
&lt;h3 id=&#34;如何确定是否有硬盘未挂载&#34;&gt;如何确定是否有硬盘未挂载&lt;/h3&gt;
&lt;p&gt;使用&lt;code&gt;SSH&lt;/code&gt;客户端登录服务器，运行命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;df -h

#输出信息大致如下，Size为容
[root@s196176 ~]# df -h
Filesystem           Size  Used Avail Use% Mounted on
devtmpfs             7.4G     0  7.4G   0% /dev
tmpfs                7.4G  8.7M  7.4G   1% /run
/dev/mapper/vg-root  431G  1.3G  408G   1% /
/dev/sda2           1008M  119M  839M  13% /boot
/dev/mapper/vg-tmp   976M  2.6M  907M   1% /tmp
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果我买的时候，服务器硬盘标的信息大幅度少于上面显示的硬盘信息，那么就是有硬盘没挂载。&lt;/p&gt;
&lt;h3 id=&#34;查看需要挂载的硬盘&#34;&gt;查看需要挂载的硬盘&lt;/h3&gt;
&lt;p&gt;使用&lt;code&gt;SSH&lt;/code&gt;客户端登录服务器，运行命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;lsblk

#输出信息如下
[root@s196176 ~]# lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0 447.1G  0 disk 
├─sda1        8:1    0     1M  0 part 
├─sda2        8:2    0     1G  0 part /boot
└─sda3        8:3    0 446.1G  0 part 
  ├─vg-root 253:0    0 437.6G  0 lvm  /
  ├─vg-swap 253:1    0   7.5G  0 lvm  [SWAP]
  └─vg-tmp  253:2    0     1G  0 lvm  /tmp
sdb           8:16   0   3.7T  0 disk
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;比如我知道我有一个&lt;code&gt;4T&lt;/code&gt;硬盘没挂载(由于计算问题，显示肯定没这么多，比如我示例只显示&lt;code&gt;3.7T&lt;/code&gt;)，那么我找到对应容量的硬盘&lt;code&gt;NAME&lt;/code&gt;，如示例的&lt;code&gt;sdb&lt;/code&gt;，那么我们硬盘名称就是&lt;code&gt;/dev/sdb&lt;/code&gt;，也就是加一个&lt;code&gt;/dev/&lt;/code&gt;。&lt;/p&gt;
&lt;h3 id=&#34;给需要挂载的硬盘分区&#34;&gt;给需要挂载的硬盘分区&lt;/h3&gt;
&lt;p&gt;使用&lt;code&gt;SSH&lt;/code&gt;客户端登录服务器，运行命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#开始挂载，后面为未挂载硬盘名称
parted /dev/sdb
#创建创建磁盘标签，可能会有个提示，你输入Yes确定即可
mklabel gpt
#创建整个分区
mkpart primary 0% 100%
#退出
q

#大致操作日志如下，仅供参考
[root@s196176 ~]# parted /dev/sdb
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type &#39;help&#39; to view a list of commands.
(parted) mklabel gpt                                                      
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost.
Do you want to continue?
Yes/No? Yes                                                               
(parted) mkpart primary 0% 100%                                           
(parted) q                                                                
Information: You may need to update /etc/fstab.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;分区完成后，继续使用命令查看分区名称：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;lsblk

#输出信息如下
[root@s196176 ~]# lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0 447.1G  0 disk 
├─sda1        8:1    0     1M  0 part 
├─sda2        8:2    0     1G  0 part /boot
└─sda3        8:3    0 446.1G  0 part 
  ├─vg-root 253:0    0 437.6G  0 lvm  /
  ├─vg-swap 253:1    0   7.5G  0 lvm  [SWAP]
  └─vg-tmp  253:2    0     1G  0 lvm  /tmp
sdb           8:16   0   3.7T  0 disk
└─sdb1        8:17   0   3.7T  0 part
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这次比之前多了个&lt;code&gt;sdb1&lt;/code&gt;，那么我们分区名称叫&lt;code&gt;/dev/sdb1&lt;/code&gt;。&lt;/p&gt;
&lt;h3 id=&#34;挂载分区&#34;&gt;挂载分区&lt;/h3&gt;
&lt;p&gt;先格式化分区，使用命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#后面为分区名称，运行完等待格式化完毕
mkfs.ext4 /dev/sdb1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;新建挂载目录，使用命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#后面为目录名称，自行修改
mkdir /data
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;开始挂载分区，使用命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#后面2个分辨是，分区名称，挂载目录，请根据上面操作的实际情况修改
mount /dev/sdb1 /data
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;检查挂载是否成功，运行命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;df -h

#输出信息大致如下，Size为容量
[root@s196176 ~]# df -h
Filesystem           Size  Used Avail Use% Mounted on
devtmpfs             7.4G     0  7.4G   0% /dev
tmpfs                7.4G  8.7M  7.4G   1% /run
/dev/mapper/vg-root  431G  1.3G  408G   1% /
/dev/sda2           1008M  119M  839M  13% /boot
/dev/mapper/vg-tmp   976M  2.6M  907M   1% /tmp
/dev/sdb1            3.6T   89M  3.4T   1% /data
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果我们看到了挂载目录，即对应的容量没问题，那么就挂载成功了。&lt;/p&gt;
&lt;h3 id=&#34;设置开机自启&#34;&gt;设置开机自启&lt;/h3&gt;
&lt;p&gt;我们挂载后，需要设置开机自启，这样重启服务器后，会自动挂载。&lt;/p&gt;
&lt;p&gt;查看分区的&lt;code&gt;UUID&lt;/code&gt;，使用命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#后面为分区名称
blkid /dev/sdb1

#输出信息如下，即分区UUID为b82b0f79-2198-4c8c-a183-acd62sg5d832
/dev/sdb1: UUID=&amp;quot;b82b0f79-2198-4c8c-a183-acd62sg5d832&amp;quot; TYPE=&amp;quot;ext4&amp;quot; PARTLABEL=&amp;quot;primary&amp;quot; PARTUUID=&amp;quot;29a545e6-2a67-463d-bb3e-3127fghtccaf&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;设置开机自启，使用命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#b82b0f79-2198-4c8c-a183-acd62sg5d832 /data分别为分区UUID，挂载目录，先修改好下面相关信息，再一起复制到ssh客户端运行
echo &#39;UUID=b82b0f79-2198-4c8c-a183-acd62sg5d832 /data ext4 defaults 0 0&#39; &amp;gt;&amp;gt;/etc/fstab
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这个步骤一点要操作正确，不然到时候重启后，可能会开机不了。&lt;/p&gt;
&lt;p&gt;最后再检查下配置文件，使用命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;mount -a
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果不报错，就可以使用&lt;code&gt;reboot&lt;/code&gt;命令重启服务器，重启后，再使用&lt;code&gt;df -h&lt;/code&gt;查看是否自动挂载成功。&lt;/p&gt;
&lt;h2 id=&#34;组raid-0教程&#34;&gt;组raid 0教程&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;提示：仅做笔记，即合并多个空闲硬盘并挂载，没经验的勿操作
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;以下命令行均使用&lt;code&gt;ssh&lt;/code&gt;操作：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#查看硬盘及分区
lsblk
#创建RAID 0阵列，后面为硬盘数量和名称
mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sd{a,b}
#格式化分区
mkfs.ext4 /dev/md0
#新建挂载目录
mkdir /data
#挂载分区
mount /dev/md0 /data
#查看分区uuid
blkid /dev/md0
#设置开机自启
echo &#39;UUID=b82b0f79-2198-4c8c-a183-acd62sg5d832 /data ext4 defaults 0 0&#39; &amp;gt;&amp;gt;/etc/fstab&lt;/code&gt;&lt;/pre&gt;

      </description>
    </item>
    
    <item>
      <title>Blog: linux将目录及其子目录所有指定后缀文件移动到其他目录，并保持子目录文件路径不变</title>
      <link>https://docs.efvcms.com/blog/linux-tutorial/move-files-specified-suffix-linux-preserve-directory-structure/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.efvcms.com/blog/linux-tutorial/move-files-specified-suffix-linux-preserve-directory-structure/</guid>
      <description>
        
        
        &lt;p&gt;操作需配合&lt;code&gt;async&lt;/code&gt;工具，先使用&lt;code&gt;SSH&lt;/code&gt;客户端登录到服务器，运行命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#CentOS 7+、AlmaLinux、Rocky Linux系统
yum install rsync -y

#Debian、Ubuntu系统
apt install rsync -y
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;再运行命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#进入需要操作的目录
cd /home/work

#将目录及其子目录所有的jpg文件，移动到/home/img文件夹，并保持其子目录文件路径不变
find . -type f -name &#39;*.jpg&#39; -exec rsync -aR --remove-source-files {} /home/img \; -exec rm -rf {} \;&lt;/code&gt;&lt;/pre&gt;

      </description>
    </item>
    
    <item>
      <title>Blog: Linux快速安装Docker</title>
      <link>https://docs.efvcms.com/blog/linux-tutorial/linux-quick-install-docker/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.efvcms.com/blog/linux-tutorial/linux-quick-install-docker/</guid>
      <description>
        
        
        &lt;p&gt;首先，使用&lt;code&gt;ssh&lt;/code&gt;客户端登录到你的服务器，并以&lt;code&gt;root&lt;/code&gt;或具有&lt;code&gt;sudo&lt;/code&gt;权限的用户身份执行以下命令：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;#运行安装脚本
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl -sSL https://get.docker.com/ | sh
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;#启动并设置开机自启
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;systemctl start docker
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;systemctl enable docker
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;#验证是否安装成功
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;docker --version
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;最后输出类似&lt;code&gt;Docker version 24.0.5, build ced0996&lt;/code&gt;的信息即为安装成功！&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Blog: Linux临时或永久设置DNS服务器</title>
      <link>https://docs.efvcms.com/blog/linux-tutorial/linux-set-dns-server-temporary-or-permanent/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.efvcms.com/blog/linux-tutorial/linux-set-dns-server-temporary-or-permanent/</guid>
      <description>
        
        
        &lt;p&gt;有时候我们运行某些项目或者命令行的时候，会因为服务器&lt;code&gt;DNS&lt;/code&gt;错误导致出问题，这时候就需要修改&lt;code&gt;DNS&lt;/code&gt;。&lt;/p&gt;
&lt;h2 id=&#34;相关错误&#34;&gt;相关错误&lt;/h2&gt;
&lt;p&gt;当服务器&lt;code&gt;DNS&lt;/code&gt;错误的时候，我们运行&lt;code&gt;wget&lt;/code&gt;和&lt;code&gt;curl&lt;/code&gt;命令行的时候，分别会输出如下错误信息：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;#wget命令行
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wget: unable to resolve host address
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;#curl命令行
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl: (6) Could not resolve host
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;有些需要请求网络的项目同样也会因为&lt;code&gt;DNS&lt;/code&gt;错误导致出问题，我们可以运行&lt;code&gt;curl https://www.baidu.com&lt;/code&gt;命令行进行确认。&lt;/p&gt;
&lt;h2 id=&#34;设置dns服务器&#34;&gt;设置DNS服务器&lt;/h2&gt;
&lt;p&gt;注意临时和永久设置的区别就是，临时设置后重启服务器就失效了，永久是不管是否重启一直生效。&lt;/p&gt;
&lt;p&gt;建议先用临时设置&lt;code&gt;DNS&lt;/code&gt;的方法验证我们的问题是否被解决，然后再永久修改&lt;code&gt;DNS&lt;/code&gt;服务器。&lt;/p&gt;
&lt;h3 id=&#34;临时设置dns服务器&#34;&gt;临时设置DNS服务器&lt;/h3&gt;
&lt;p&gt;首先，使用&lt;code&gt;ssh&lt;/code&gt;客户端登录到你的服务器，再执行以下命令：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;#设置Google DNS服务器
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;echo &amp;#34;nameserver 8.8.8.8&amp;#34; &amp;gt; /etc/resolv.conf
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;echo &amp;#34;nameserver 8.8.4.4&amp;#34; &amp;gt;&amp;gt; /etc/resolv.conf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;运行完即为设置成功！&lt;/p&gt;
&lt;h3 id=&#34;永久设置dns服务器&#34;&gt;永久设置DNS服务器&lt;/h3&gt;
&lt;p&gt;由于&lt;code&gt;DNS&lt;/code&gt;问题普遍出现在&lt;code&gt;CentOS&lt;/code&gt;系统中，所以这里只讲解&lt;code&gt;CentOS&lt;/code&gt;及其衍生系统，教程适用于&lt;code&gt;CentOS 7+&lt;/code&gt;，&lt;code&gt;AlmaLinux&lt;/code&gt;，&lt;code&gt;Rocky Linux&lt;/code&gt;系统&lt;/p&gt;
&lt;p&gt;对于&lt;code&gt;Linux&lt;/code&gt;不太熟悉的新手来说，如果你有安装宝塔面板，可以在宝塔安装&lt;code&gt;Linux&lt;/code&gt;工具箱，设置主&lt;code&gt;DNS&lt;/code&gt;服务器为&lt;code&gt;8.8.8.8&lt;/code&gt;，备用为&lt;code&gt;8.8.4.4&lt;/code&gt;即可。&lt;/p&gt;
&lt;p&gt;首先，使用&lt;code&gt;ssh&lt;/code&gt;客户端登录到你的服务器，再执行以下命令：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;#检测并判断是否安装网卡检测工具&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;!&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;command&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;v&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;ifconfig&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;amp;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;dev&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;null&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;then&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;yum&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;install&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;y&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;net&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;tools&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;#获取网卡信息&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000&#34;&gt;ifconfig&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;a&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;看到接口信息后，显示&lt;code&gt;inet 服务器ip&lt;/code&gt;的就是你的网卡信息，该部分左上角的英文就是你的网卡名称，常见的为&lt;code&gt;eth0&lt;/code&gt;，也有可能是其它的。&lt;/p&gt;
&lt;p&gt;开始永久设置&lt;code&gt;DNS&lt;/code&gt;，运行命令：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cd /etc/sysconfig/network-scripts/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;#找到网卡配置文件，一般名称为ifcfg-网卡名称，如ifcfg-eth0
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ls
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;#修改配置文件，运行命令之前，先将下面2个命令的后面改成你的网卡配置文件名称
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sed -i &amp;#39;/DNS1=/d&amp;#39; ifcfg-eth0
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;echo &amp;#34;DNS1=8.8.8.8&amp;#34; &amp;gt;&amp;gt; ifcfg-eth0
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;#重启网络生效，重启如果有报错，解决方法看下方
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;service network restart
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;#检查是否修改完成
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cat /etc/resolv.conf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;输出你设置的&lt;code&gt;DNS&lt;/code&gt;服务器就修改完成。&lt;/p&gt;
&lt;p&gt;注意如果出现&lt;code&gt;Failed to restart network.service: Unit network.service not found.&lt;/code&gt;错误，则运行命令：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;systemctl restart NetworkManager
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然后重新使用命令重启网络。&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Blog: Linux使用Brook转发端口一键脚本</title>
      <link>https://docs.efvcms.com/blog/linux-tutorial/linux-brook-port-forwarding-one-click-script/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.efvcms.com/blog/linux-tutorial/linux-brook-port-forwarding-one-click-script/</guid>
      <description>
        
        
        &lt;p&gt;有时候我们连接远程服务器&lt;code&gt;SSH&lt;/code&gt;，或其它端口地址出现很慢的情况，很影响体验；这时候我们可以在网络好的服务器使用&lt;code&gt;Brook&lt;/code&gt;转发任意的远程服务器端口，从而改善网络情况。&lt;/p&gt;
&lt;h2 id=&#34;大致原理&#34;&gt;大致原理&lt;/h2&gt;
&lt;p&gt;比如我&lt;code&gt;服务器B&lt;/code&gt;网络不太好，&lt;code&gt;服务器A&lt;/code&gt;网络可以，而&lt;code&gt;服务器B&lt;/code&gt;有我在运行的程序，地址为&lt;code&gt;http://服务器B的ip:3000&lt;/code&gt;，那么我可以使用&lt;code&gt;服务器A&lt;/code&gt;的任意端口，比如&lt;code&gt;4000&lt;/code&gt;端口转发&lt;code&gt;服务器B&lt;/code&gt;的&lt;code&gt;3000&lt;/code&gt;端口，这时候你访问&lt;code&gt;http://服务器A的ip:4000&lt;/code&gt;的时候，&lt;code&gt;服务器A&lt;/code&gt;会去请求&lt;code&gt;http://服务器B的ip:3000&lt;/code&gt;，最后再将数据返回给你，也就是不需要直接访问&lt;code&gt;服务器B&lt;/code&gt;，而是访问&lt;code&gt;服务器A&lt;/code&gt;就可以了，间接的等于你访问&lt;code&gt;服务器B&lt;/code&gt;的数据，达到一种加速效果。&lt;/p&gt;
&lt;h2 id=&#34;安装brook&#34;&gt;安装Brook&lt;/h2&gt;
&lt;p&gt;首先我们需要挑选一个网络相对较好的服务器进行中转，起码也要比你转发的服务器网络要好，不然就没什么意义了。&lt;/p&gt;
&lt;p&gt;系统要求：&lt;code&gt;CentOS 7+&lt;/code&gt;，&lt;code&gt;Debian 8+&lt;/code&gt;，&lt;code&gt;Ubuntu 16.04+&lt;/code&gt;，&lt;code&gt;AlmaLinux 8+&lt;/code&gt;，&lt;code&gt;Rocky Linux 8+&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;然后使用&lt;code&gt;SSH&lt;/code&gt;客户端，比如&lt;code&gt;Xshell&lt;/code&gt;软件，登录该&lt;code&gt;VPS&lt;/code&gt;服务器，使用命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#下载脚本
wget -N --no-check-certificate -O /opt/brook.sh https://down.querydata.org/moeapp/shell/brook.sh
#运行命令，运行之前请修改相关参数，8888为本地端口，192.6.8.1:9999为远程ip地址:远程端口
bash /opt/brook.sh 8888 192.6.8.1:9999
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;运行完成后，你访问安装端口转发服务器的&lt;code&gt;ip:8888&lt;/code&gt;就等于访问远程服务器的&lt;code&gt;192.6.8.1:9999&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;如果你需要转发其它端口，且可以多次通过运行该命令，来中转多个远程服务器端口地址。&lt;/p&gt;
&lt;h2 id=&#34;删除相关端口转发&#34;&gt;删除相关端口转发&lt;/h2&gt;
&lt;p&gt;如果我们多次运行脚本转发端口，有些不使用了，需要删除，则按要求操作命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#查看全部转发端口配置文件，格式为brook_8888.service，8888为本地转发的端口
ls /etc/systemd/system/brook_*

#停止端口转发，8888为你需要停止的本地转发的端口，自行修改
systemctl stop brook_8888

#删除端口转发，8888为你需要停止的本地转发的端口，自行修改
systemctl disable brook_8888
rm -rf /etc/systemd/system/brook_8888.service
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;运行完成后，指定端口转发会彻底删除。&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Blog: Minio服务端一键安装及使用</title>
      <link>https://docs.efvcms.com/blog/linux-tutorial/minio-server-one-click-installation-and-usage/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.efvcms.com/blog/linux-tutorial/minio-server-one-click-installation-and-usage/</guid>
      <description>
        
        
        &lt;h2 id=&#34;安装minio&#34;&gt;安装MInio&lt;/h2&gt;
&lt;p&gt;系统要求：&lt;code&gt;CentOS 8+&lt;/code&gt;，&lt;code&gt;Debian 10+&lt;/code&gt;，&lt;code&gt;Ubuntu 20.04+&lt;/code&gt;，&lt;code&gt;AlmaLinux 8+&lt;/code&gt;，&lt;code&gt;Rocky Linux 8+&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;使用&lt;code&gt;SSH&lt;/code&gt;客户端，比如&lt;code&gt;Xshell&lt;/code&gt;软件，登录存储服务器，再使用命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#后面的/home为文件存储路径，自行修改
curl -sL https://down.querydata.org/moeapp/shell/nimio_install.sh | bash -s /home
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安装完成后，会给你同步端配置信息和&lt;code&gt;Web&lt;/code&gt;管理面板信息信息，面板默认访问地址为&lt;code&gt;ip:9001&lt;/code&gt;，如果打不开，请检查下防火墙端口，并手动开启&lt;code&gt;9000&lt;/code&gt;和&lt;code&gt;9001&lt;/code&gt;端口。&lt;/p&gt;
&lt;h2 id=&#34;创建存储桶&#34;&gt;创建存储桶&lt;/h2&gt;
&lt;p&gt;我们登录管理员面板，通过左侧的&lt;code&gt;Buckets&lt;/code&gt;，再点击&lt;code&gt;Create Bucket&lt;/code&gt;，创建一个桶。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://docs.efvcms.com/image/minio_zx.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;这时候我们就可以在同步端配置相关信息了。&lt;/p&gt;
&lt;h2 id=&#34;其它说明&#34;&gt;其它说明&lt;/h2&gt;
&lt;h3 id=&#34;关于存储路径说明&#34;&gt;关于存储路径说明&lt;/h3&gt;
&lt;p&gt;如果我们设置存储目录为&lt;code&gt;/home&lt;/code&gt;，且桶名称为&lt;code&gt;efvcms&lt;/code&gt;，那么我们同步过来的切片目录为&lt;code&gt;/home/efvcms&lt;/code&gt;，即桶在存储目录下。&lt;/p&gt;
&lt;h3 id=&#34;如何配置域名从而读取到路径不变的切片&#34;&gt;如何配置域名，从而读取到路径不变的切片&lt;/h3&gt;
&lt;p&gt;我们添加一个存储桶使用的域名，然后把同步过来的切片目录，如&lt;code&gt;/home/efvcms&lt;/code&gt;设置为根目录就可以了。&lt;/p&gt;
&lt;p&gt;建议在域名设置的配置文件项，类似&lt;code&gt;root /home/efvcms;&lt;/code&gt;下一行添加该代码&lt;code&gt;add_header Access-Control-Allow-Origin *;&lt;/code&gt;最后面&lt;code&gt;;&lt;/code&gt;别漏掉了，可防止出现跨域问题。&lt;/p&gt;
&lt;h3 id=&#34;如何修改存储目录&#34;&gt;如何修改存储目录&lt;/h3&gt;
&lt;p&gt;如果我们想修改存储目录，则需要先修改文件&lt;code&gt;/etc/systemd/system/minios.service&lt;/code&gt;，可在&lt;code&gt;SSH&lt;/code&gt;客户端使用命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;vi /etc/systemd/system/minios.service
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;首先按一下键盘的&lt;code&gt;i&lt;/code&gt;键，进入编辑模式，这时候可以使用键盘进行编辑，编辑代码详解如下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Unit]
Description=minio server
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/minio server &amp;quot;/home&amp;quot; --console-address &amp;quot;:9001&amp;quot;
Environment=MINIO_ROOT_USER=89031270c3 MINIO_ROOT_PASSWORD=b657ae64b3
PIDFile=/var/run/minio.pid
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;/home&lt;/code&gt;为存储目录，且为绝对路径，自行修改，编辑好了后，按一下键盘的&lt;code&gt;esc&lt;/code&gt;键退出编辑模式，接下来输入英文&lt;code&gt;:wq&lt;/code&gt;，&lt;code&gt;enter&lt;/code&gt;保存退出。&lt;/p&gt;
&lt;p&gt;最后如果你不是很会命令行，依然不会修改，可以使用&lt;code&gt;FTP&lt;/code&gt;软件或宝塔文件管理，找到该文件后手动修改即可。&lt;/p&gt;
&lt;p&gt;最后修改好了重启，使用命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;systemctl daemon-reload
systemctl restart minios

#查看状态，如显示Active: active (running)，则修改成功
systemctl status minios
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;接下来重新登录管理面板，创建一个新桶或原桶名称，重新在同步端配置使用。&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Blog: Mongodb备份及还原数据库</title>
      <link>https://docs.efvcms.com/blog/linux-tutorial/mongodb-backup-and-restore-database/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.efvcms.com/blog/linux-tutorial/mongodb-backup-and-restore-database/</guid>
      <description>
        
        
        &lt;p&gt;&lt;code&gt;EFV&lt;/code&gt;使用的是&lt;code&gt;Mongodb&lt;/code&gt;数据库，且默认的数据库名，数据库用户名和密码均为&lt;code&gt;ffmpeg&lt;/code&gt;，如果你没修改过这些信息，可以直接复制粘贴。&lt;/p&gt;
&lt;h2 id=&#34;备份数据库&#34;&gt;备份数据库&lt;/h2&gt;
&lt;p&gt;首先使用&lt;code&gt;SSH&lt;/code&gt;客户端，比如&lt;code&gt;Xshell&lt;/code&gt;软件，登录要备份的切片服务器，使用命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;mongodump -h 127.0.0.1 -u ffmpeg -p ffmpeg -d ffmpeg -o /root --authenticationDatabase ffmpeg
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;-d&lt;/code&gt;是选择要备份的数据库，&lt;code&gt;-u&lt;/code&gt;是用户名，&lt;code&gt;-p&lt;/code&gt;是密码，&lt;code&gt;--authenticationDatabasehou&lt;/code&gt;后面也是要备份的数据库。&lt;/p&gt;
&lt;p&gt;备份好了后，数据库备份文件路径为&lt;code&gt;/root/ffmpeg&lt;/code&gt;。&lt;/p&gt;
&lt;h2 id=&#34;还原数据库&#34;&gt;还原数据库&lt;/h2&gt;
&lt;h3 id=&#34;清空数据库&#34;&gt;清空数据库&lt;/h3&gt;
&lt;p&gt;还原之前，需清空需要还原的服务器数据库，防止数据有冲突的情况。&lt;/p&gt;
&lt;p&gt;使用&lt;code&gt;SSH&lt;/code&gt;客户端，比如&lt;code&gt;Xshell&lt;/code&gt;软件，登录服务器，使用命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#ffmpeg为数据库名，将下面代码一起复制到ssh运行
mongo ffmpeg --eval &#39;
db.getCollectionNames().forEach(function(collection) {
    if (!collection.startsWith(&amp;quot;system.&amp;quot;)) {
        db[collection].drop();
        print(&amp;quot;已删除: &amp;quot; + collection);
    }
})
&#39;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&#34;开始还原&#34;&gt;开始还原&lt;/h3&gt;
&lt;p&gt;我们需要将数据库备份文件夹放到需要还原的服务器目录，如&lt;code&gt;ffmpeg&lt;/code&gt;备份文件夹放到&lt;code&gt;/root&lt;/code&gt;目录&lt;/p&gt;
&lt;p&gt;使用&lt;code&gt;SSH&lt;/code&gt;客户端，比如&lt;code&gt;Xshell&lt;/code&gt;软件，登录服务器，使用命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#/root/ffmpeg为数据表备份存放文件夹，自行修改
mongorestore -h 127.0.0.1 -u ffmpeg -p ffmpeg -d ffmpeg /root/ffmpeg --authenticationDatabase ffmpeg
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;-d&lt;/code&gt;是选择要合并的数据库，&lt;code&gt;-u&lt;/code&gt;是用户名，&lt;code&gt;-p&lt;/code&gt;是密码，&lt;code&gt;--authenticationDatabasehou&lt;/code&gt;后面也是要还原的数据库。&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Blog: Mongodb开放外网访问及配置管理员</title>
      <link>https://docs.efvcms.com/blog/linux-tutorial/mongodb-open-external-access-and-configure-administrator/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://docs.efvcms.com/blog/linux-tutorial/mongodb-open-external-access-and-configure-administrator/</guid>
      <description>
        
        
        &lt;p&gt;非必要情况下不要随便开放数据库的外网访问，不然请严格按照下面要求开放。&lt;/p&gt;
&lt;h2 id=&#34;设置mongodb管理员&#34;&gt;设置Mongodb管理员&lt;/h2&gt;
&lt;p&gt;首先使用&lt;code&gt;SSH&lt;/code&gt;客户端，比如&lt;code&gt;Xshell&lt;/code&gt;软件，登录服务器，使用命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;mongo
use admin
db.createUser({user:&amp;quot;adminuser&amp;quot;,pwd:&amp;quot;adminpasswd&amp;quot;,roles: [{ role: &amp;quot;root&amp;quot;, db: &amp;quot;admin&amp;quot; }]})
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;adminuser&lt;/code&gt;和&lt;code&gt;adminpasswd&lt;/code&gt;分别是管理员账户和密码，使用命令前自行修改。&lt;/p&gt;
&lt;h2 id=&#34;配置外网和认证&#34;&gt;配置外网和认证&lt;/h2&gt;
&lt;p&gt;编辑数据库配置文件，脚本安装的默认为&lt;code&gt;/usr/local/mongodb/mongod.conf&lt;/code&gt;，需要编辑的配置如下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;storage:
  dbPath: /usr/local/mongodb/data
  journal:
    enabled: true

systemLog:
  destination: file
  logAppend: true
  path: /usr/local/mongodb/mongod.log

net:
  port: 27017
  bindIp: 0.0.0.0
  compression:
    compressors: snappy,zstd
    
security:
  authorization: enabled
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这里你可以通过&lt;code&gt;ftp&lt;/code&gt;客户端、宝塔文件管理，或者&lt;code&gt;vi/nano&lt;/code&gt;命令行修改该文件。&lt;/p&gt;
&lt;p&gt;这里也提供一个一键修改命令，在&lt;code&gt;SSH&lt;/code&gt;客户端运行，使用命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#将下面全部一起复制，粘贴到ssh客户端运行即可
cat &amp;gt; /usr/local/mongodb/mongod.conf &amp;lt;&amp;lt;EOF
storage:
  dbPath: /usr/local/mongodb/data
  journal:
    enabled: true

systemLog:
  destination: file
  logAppend: true
  path: /usr/local/mongodb/mongod.log

net:
  port: 27017
  bindIp: 0.0.0.0
  compression:
    compressors: snappy,zstd
    
security:
  authorization: enabled
EOF
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后重启&lt;code&gt;mongodb&lt;/code&gt;生效，使用命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;systemctl restart mongod
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;最后再开放&lt;code&gt;27017&lt;/code&gt;端口即可。&lt;/p&gt;

      </description>
    </item>
    
  </channel>
</rss>
