手把手教学-LinuxUbuntu部署Minio-单节点多驱动器

以 SingleNodeMultiDrive(单节点多驱动器) 方式部署Minio

本文将详细介绍如何在LinuxUbuntu中以单节点多驱动器的方式部署Minio,但并不使用docker,同时额外介绍如何在虚拟机中添加硬盘等相关知识。文章内容十分详细📜。如果跟着本文操作遇到了问题,欢迎您随时在下方留言,我将为您解答。如果这篇文章对您有帮助,您的点赞、收藏、转发都是对我最大的鼓励!❤

本文适合人群:

  • minio入门小白
  • 安装minio但是启动不成功希望找到解决方案的同学
  • 想快速安装minio但是不想学习docker的同学

参考文档:

步骤概览

从官方文档上来看,我们总共有五步需要执行

  1. Download the MinIO Server
  2. Create the systemd Service File
  3. Create the Environment Variable File
  4. Start the MinIO Service
  5. Connect to the MinIO Service

下面是我对着整个minio服务结构进行梳理时所画的框架图,后续操作就是一步步把这个结构搭起来。

原图链接:g81o0wsex7.feishu.cn/docx/Sphmdh...

然后官方文档开头还提到了逻辑分区:

MinIO strongly recommends direct-attached JBOD arrays with XFS-formatted disks for best performance. Using any other type of backing storage (SAN/NAS, ext4, RAID, LVM) typically results in a reduction in performance, reliability, predictability, and consistency.

Ensure all server drives for which you intend MinIO to use are of the same type (NVMe, SSD, or HDD) with identical capacity (e.g. 12 TB). MinIO does not distinguish drive types and does not benefit from mixed storage types. Additionally. MinIO limits the size used per drive to the smallest drive in the deployment. For example, if the deployment has 15 10TB drives and 1 1TB drive, MinIO limits the per-drive capacity to 1TB.

有道翻译:

MinIO强烈建议使用XFS格式化磁盘的直接连接JBOD阵列,以获得最佳性能。使用任何其他类型的备份存储(SAN/NAS、ext4、RAID、LVM)通常会导致性能、可靠性、可预测性和一致性的降低。

确保您打算使用MinIO的所有服务器驱动器都是相同类型的(NVMe、SSD或HDD),具有相同的容量(例如12 TB)。MinIO不区分驱动器类型,也不能从混合存储类型中获益。此外。MinIO将每个驱动器使用的大小限制为部署中最小的驱动器。例如,如果部署有15个10TB的驱动器和1个1TB的驱动器,MinIO将每个驱动器的容量限制为1TB。

这也就意味着我们需要提前准备好多个XFS格式的硬盘分区 且每个分区的大小应当保持一致。

挂载硬盘

本文使用VMware WorkStation为虚拟机添加4块虚拟硬盘进行测试

[有关 VMware WorkSation如何添加硬盘?详见附录](#有关 VMware WorkSation如何添加硬盘?详见附录 "##VMware%20WorkSation%20%E6%B7%BB%E5%8A%A0%E7%A1%AC%E7%9B%98")

  1. 在Linux Terminal中执行一下命令查看硬盘信息

    sudo fdisk -l
    
  2. 找到刚添加的四块硬盘:

  3. 我们即将在/mnt/目录下创建四个连续命名的新文件夹用来挂载硬盘,所以在正式创建前,需要自行查看命名是否冲突 本文假设 /mnt/目录下原本就没有disk1disk2disk3disk4文件夹。后续操作步骤和这有关,注意连续命名。

  4. /mnt/目录下创建四个连续文件夹,指令如下:

    bash 复制代码
    mkdir /mnt/disk1
    mkdir /mnt/disk2
    mkdir /mnt/disk3
    mkdir /mnt/disk4

    如果提示mkdir: cannot create directory '/mnt/disk1': Permission denied,说明你不是root身份,请在命令前加上sudo。

  5. 安装 xfsprogs 格式化硬盘工具

    arduino 复制代码
    sudo apt-get install xfsprogs
  6. 格式化硬盘

    bash 复制代码
    sudo mkfs.xfs /dev/sdb
    sudo mkfs.xfs /dev/sdc
    sudo mkfs.xfs /dev/sdd
    sudo mkfs.xfs /dev/sde

    执行上述命令的大致输出:

    ini 复制代码
    meta-data=/dev/sdb               isize=512    agcount=4, agsize=655360 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=1        finobt=1, sparse=1, rmapbt=0
             =                       reflink=1    bigtime=0 inobtcount=0
    data     =                       bsize=4096   blocks=2621440, imaxpct=25
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
    log      =internal log           bsize=4096   blocks=2560, version=2
             =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0

    如果你遇到了错误:sudo: mkfs.xfs: command not found,那你可能没有正确安装 xfsprogs 工具。可以试着执行sudo apt-get update更新后再次尝试安装 xfsprogs 工具。

  7. 挂载硬盘 有关挂载的详细说明参考:附录-Ubunutu如何查看与挂载硬盘

    bash 复制代码
    sudo mount /dev/sdb /mnt/disk1
    sudo mount /dev/sdc /mnt/disk2
    sudo mount /dev/sdd /mnt/disk3
    sudo mount /dev/sde /mnt/disk4

    如果你在挂载的时候遇到错误:mount: /mnt/disk1: wrong fs type, bad option, bad superblock on /dev/sdb, missing codepage or helper program, or other error.,可能是因为格式化没有成功。此处原因需要读者另行查找解决方案。

  8. 接下来请勿往这四块硬盘里面写入数据。

下载与安装minio

我们采用二进制文件的安装方式。

官方文档给出的方法是:

bash 复制代码
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
sudo mv minio /usr/local/bin/

我并不推荐,主要是因为wget的速度有点慢(这应该是可以通过配置镜像站解决的,但是我不想搞)

下面采用我的方法:

  1. 打开minio官方下载页面MinIO | Code and downloads to create high performance object storage

  2. 选择Linux系统,选择合适的架构,点击二进制文件包,点击下载按钮下载

  3. 下载开始后,点击下载按钮隔壁的SHA256链接,查看SHA256码,这将用于做安装包完整性校验。

  4. 下载完成后会得到一个minio文件,打开下载页面的目录,执行以下命令,比对SHA256码,如果一致,说明文件完整。

    bash 复制代码
    sha256sum minio 
    # 输出SHA256码
    9b319631729751e115eaf5b70f0fd0c21996643564e3bba99fd475731add2991  minio

    更多查看SHA256方法见:附录-Linux计算sha256值的几种方法

  5. 赋权,执行以下命令给minio文件赋权

    bash 复制代码
    chmod +x minio

    chatGPT:

    chmod +x minio 命令是将 minio 文件赋予可执行权限。这意味着用户(或进程)拥有执行该文件的权限。

    具体来说,这个命令会使得文件 minio 具备了以下权限:

    • 文件所有者(Owner)可以执行 minio
    • 文件所属组(Group)可以执行 minio(如果文件的组与用户的组相同)。
    • 其他用户可以执行 minio

    文件 minio 现在可以通过运行 ./minio 来执行,前提是用户有权访问该文件,并且文件本身是可执行的。如果 minio 是一个可执行二进制文件或脚本,用户可以通过这种方式运行它。

  6. 把minio文件存放到usr/local/bin/目录下

    bash 复制代码
    sudo mv minio /usr/local/bin/
  7. 通过查看minio版本的方式确认minio安装成功

    yaml 复制代码
    minio -v
    ​
    # 输出:
    minio version RELEASE.2023-08-29T23-07-35Z (commit-id=07b1281046c8934c47184d1b56c78995ef960f7d)
    Runtime: go1.19.12 linux/amd64
    License: GNU AGPLv3 <https://www.gnu.org/licenses/agpl-3.0.html>
    Copyright: 2015-2023 MinIO, Inc.

创建systemd文件 - 服务配置

  1. /usr/lib/systemd/system/下新建一个 minio服务配置 文件

    bash 复制代码
    sudo touch /usr/lib/systemd/system/minio.service
  2. 打开刚创建的配置文件。熟悉vim的同学用vim就好,不熟悉的话使用gedit等编辑器都行

    bash 复制代码
    sudo gedit /usr/lib/systemd/system/minio.service

    注意要用sudo权限打开,不然文件只读不能修改

  3. 往配置文件里写入以下内容(这个内容是从官方文档上拷贝下来的,建议读者到官方文档Deploy MinIO: Single-Node Multi-Drive上拷贝)

    ini 复制代码
    [Unit]
    Description=MinIO
    Documentation=https://min.io/docs/minio/linux/index.html
    Wants=network-online.target
    After=network-online.target
    AssertFileIsExecutable=/usr/local/bin/minio
    ​
    [Service]
    WorkingDirectory=/usr/local
    ​
    User=minio-user
    Group=minio-user
    ProtectProc=invisible
    ​
    EnvironmentFile=-/etc/default/minio
    ExecStartPre=/bin/bash -c "if [ -z "${MINIO_VOLUMES}" ]; then echo "Variable MINIO_VOLUMES not set in /etc/default/minio"; exit 1; fi"
    ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
    ​
    # MinIO RELEASE.2023-05-04T21-44-30Z adds support for Type=notify (https://www.freedesktop.org/software/systemd/man/systemd.service.html#Type=)
    # This may improve systemctl setups where other services use `After=minio.server`
    # Uncomment the line to enable the functionality
    # Type=notify
    ​
    # Let systemd restart this service always
    Restart=always
    ​
    # Specifies the maximum file descriptor number that can be opened by this process
    LimitNOFILE=65536
    ​
    # Specifies the maximum number of threads this process can create
    TasksMax=infinity
    ​
    # Disable timeout logic and wait until process is stopped
    TimeoutStopSec=infinity
    SendSIGKILL=no
    ​
    [Install]
    WantedBy=multi-user.target
    ​
    # Built for ${project.name}-${project.version} (${project.name})
  4. 保存后退出

  5. 如配置文件内容所述的用户信息,创建相应的用户和用户组,并赋予权限(下面的命名也是官方文档复制的,注意查看自己本机硬盘挂载的文件夹对不对的上,如果对不上,自行修改)

    bash 复制代码
    sudo groupadd -r minio-user
    sudo useradd -M -r -g minio-user minio-user
    ​
    # 使用户minio-user有读取这几个硬盘的权限
    sudo chown minio-user:minio-user /mnt/disk1 /mnt/disk2 /mnt/disk3 /mnt/disk4

创建环境变量文件

  1. 创建环境文件/etc/default/minio,minio会自行读取这个文件。(在上面写的服务配置文件里可以看到EnvironmentFile=-/etc/default/minio,所以启动minio服务时会自动读取)

    bash 复制代码
    sudo touch /etc/default/minio
  2. 往这个文件里写入相关配置(也是官方文档复制)

    ini 复制代码
    # MINIO_ROOT_USER and MINIO_ROOT_PASSWORD sets the root account for the MinIO server.
    # This user has unrestricted permissions to perform S3 and administrative API operations on any resource in the deployment.
    # Omit to use the default values 'minioadmin:minioadmin'.
    # MinIO recommends setting non-default values as a best practice, regardless of environment.
    ​
    MINIO_ROOT_USER=myminioadmin
    MINIO_ROOT_PASSWORD=minio-secret-key-change-me
    ​
    # MINIO_VOLUMES sets the storage volumes or paths to use for the MinIO server.
    # The specified path uses MinIO expansion notation to denote a sequential series of drives between 1 and 4, inclusive.
    # All drives or paths included in the expanded drive list must exist *and* be empty or freshly formatted for MinIO to start successfully.
    ​
    MINIO_VOLUMES="/data-{1...4}"
    ​
    # MINIO_SERVER_URL sets the hostname of the local machine for use with the MinIO Server.
    # MinIO assumes your network control plane can correctly resolve this hostname to the local machine.
    ​
    # Uncomment the following line and replace the value with the correct hostname for the local machine.
    ​
    #MINIO_SERVER_URL="http://minio.example.net"
  3. 然后自定义修改管理员用户名变量和管理员密码变量的值(这个是设置minio管理员的账号密码,不要把自己Linux账户的用户名密码填进去),接着修改磁盘文件夹变量的值。例如:

    ini 复制代码
    MINIO_ROOT_USER=god
    MINIO_ROOT_PASSWORD=helpme
    MINIO_VOLUMES="/mnt/disk{1...4}"

    如果你的磁盘文件夹名不连续,请自行到官方文档查阅处理方法

  4. 保存,退出

启动Minio与连接

  1. 执行以下命令启动服务

    sql 复制代码
    sudo systemctl start minio.service

    有关systemctl命令的介绍请看:附录-Systemctl命令行工具

  2. 查看minio服务启动日志信息

    lua 复制代码
    sudo systemctl status minio.service
  3. 输出如下,如果最终能输出最后10行的内容,说明服务成功启动了

    less 复制代码
    ● minio.service - MinIO
         Loaded: loaded (/lib/systemd/system/minio.service; disabled; vendor preset: enabled)
         Active: active (running) since Thu 2023-08-31 22:46:36 CST; 49s ago
           Docs: https://min.io/docs/minio/linux/index.html
        Process: 11407 ExecStartPre=/bin/bash -c if [ -z "${MINIO_VOLUMES}" ]; then echo "Variable MINIO_VOLUMES not set in /etc/default/minio"; exit 1; fi (code=exited, status=0/SUCCESS)
       Main PID: 11410 (minio)
          Tasks: 9
         Memory: 88.9M
            CPU: 437ms
         CGroup: /system.slice/minio.service
                 └─11410 /usr/local/bin/minio server /mnt/disk{1...4}
    ​
    8月 31 22:46:36 qingxun-v2-1 systemd[1]: Starting MinIO...
    8月 31 22:46:36 qingxun-v2-1 systemd[1]: Started MinIO.
    8月 31 22:46:36 qingxun-v2-1 minio[11410]: MinIO Object Storage Server
    8月 31 22:46:36 qingxun-v2-1 minio[11410]: Copyright: 2015-2023 MinIO, Inc.
    8月 31 22:46:36 qingxun-v2-1 minio[11410]: License: GNU AGPLv3 <https://www.gnu.org/licenses/agpl-3.0.html>
    8月 31 22:46:36 qingxun-v2-1 minio[11410]: Version: RELEASE.2023-08-29T23-07-35Z (go1.19.12 linux/amd64)
    8月 31 22:46:36 qingxun-v2-1 minio[11410]: Status:         4 Online, 0 Offline.
    8月 31 22:46:36 qingxun-v2-1 minio[11410]: S3-API: https://10.168.1.166:9000
    8月 31 22:46:36 qingxun-v2-1 minio[11410]: Console: http://10.168.1.166:37165 http://127.0.0.1:37165
    8月 31 22:46:36 qingxun-v2-1 minio[11410]: Documentation: https://min.io/docs/minio/linux/index.html
  4. 记录一下Console地址,然后在虚拟机的浏览器打开这个地址进行测试。(打开S3-API的地址也可以,会自动跳转到Console地址)

  5. 如上图,证明服务正确运行起来了,可以试着使用管理员账户登录

  6. 按q键可以退出日志,服务不会被关闭。

  7. 如果你的服务日志如下显示,说明服务并没有成功启动

    ini 复制代码
    × minio.service - MinIO
         Loaded: loaded (/lib/systemd/system/minio.service; disabled; vendor preset: enabled)
         Active: failed (Result: exit-code) since Thu 2023-08-31 17:08:48 CST; 19s ago
           Docs: https://min.io/docs/minio/linux/index.html
        Process: 7440 ExecStartPre=/bin/bash -c if [ -z "${MINIO_VOLUMES}" ]; then echo "Variable MINIO_VOLUMES not set in /etc/default/mi>
        Process: 7441 ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES (code=exited, status=1/FAILURE)
       Main PID: 7441 (code=exited, status=1/FAILURE)
            CPU: 148ms
    ​
    8月 31 17:08:47 qingxun-v2-1 systemd[1]: minio.service: Failed with result 'exit-code'.
    8月 31 17:08:48 qingxun-v2-1 systemd[1]: minio.service: Scheduled restart job, restart counter is at 5.
    8月 31 17:08:48 qingxun-v2-1 systemd[1]: Stopped MinIO.
    8月 31 17:08:48 qingxun-v2-1 systemd[1]: minio.service: Start request repeated too quickly.
    8月 31 17:08:48 qingxun-v2-1 systemd[1]: minio.service: Failed with result 'exit-code'.
    8月 31 17:08:48 qingxun-v2-1 systemd[1]: Failed to start MinIO.

    可以试着从以下几个方向解决问题:

    • minio-user是否有读写/mnt/data{1...4}的权限,chown minio-user:minio-user /mnt/disk1 /mnt/disk2 /mnt/disk3 /mnt/disk4
    • 是否赋予minio可执行权限,chmod +x minio
    • 硬盘分区是否正确格式化

更多配置

Minio环境变量参考文档:MinIO Server --- MinIO Object Storage for Linux

这里我们主要设置好API的URL和浏览器的端口,防止每次重启minio端口都发生变化

  1. 虚拟机设置网络适配器建议采用如下连接方式(不过直连校园网等网络进行认证登录的同学使用此方式会可能会导致虚拟机断网,需要联网再改成nat模式)

    chatGPT: 在 VMware 中,虚拟机的网络适配器有两种主要模式:桥接(Bridged)和NAT(Network Address Translation)。这些模式决定了虚拟机如何连接到物理网络。

    1. 桥接模式(Bridged) :在桥接模式下,虚拟机的网络适配器被设置为复制物理网络连接状态(P)时,虚拟机会像物理主机一样连接到局域网中。虚拟机将获得一个与物理网络中的设备相同的 IP 地址范围,可以直接与局域网中的其他设备通信。这意味着虚拟机可以与局域网中的其他计算机进行直接通信,并且可以访问外部网络,就像物理计算机一样。
    2. NAT模式(Network Address Translation) :在NAT模式下,虚拟机的网络适配器被设置为不复制物理网络连接状态时,虚拟机将被连接到一个虚拟的私有网络,该网络由VMware的虚拟网络设备(通常是虚拟网络交换机)进行管理。虚拟机可以通过主机来访问外部网络,但无法与物理网络中的其他设备直接通信。VMware会为虚拟机分配一个内部 IP 地址,并使用NAT技术将虚拟机的网络流量转发到主机上,然后再发送到外部网络。这样,虚拟机可以访问外部资源,但不会出现与物理网络上其他设备的直接连接。

    所以,设置网络适配器为复制物理网络连接状态(P)时,虚拟机就像一个物理计算机一样连接到局域网中,可以直接与其他设备通信。而不设置此选项时,虚拟机将连接到虚拟的私有网络,需要通过主机进行网络访问。选择哪种模式取决于你的需求,如果你希望虚拟机与物理网络中的其他设备直接通信,可以选择桥接模式。如果你只需要虚拟机访问外部网络而不需要与物理网络中的其他设备通信,可以选择NAT模式。

  2. 查看虚拟机的的IP,执行下面三个命令其中一个即可查看,如果你看不懂输出信息,就使用hostname -I指令

    css 复制代码
    ip addr
    hostname -I
    ifconfig

    如果你的虚拟机已经配置了域名,那下面的IP全部使用相应的域名。如果你不知道域名是什么,那你的虚拟机大概不会配置了域名。

  3. 记住IP地址,例如我的IP地址是10.168.1.166

  4. 打开minio环境变量文件

    arduino 复制代码
    sudo vim /etc/default/minio

    不熟悉vim的同学请用gedit

  5. 解除MINIO_SERVER_URL变量的注释,把hostname改成自己的IP,再加上自定义的端口,例如我设置端口为9000。端口不是完全自定义的,哪些端口不能用需要读者自行百度,也可能某些端口被其他应用程序占用了,更换端口即可。

    ini 复制代码
    MINIO_SERVER_URL="http://10.168.1.166:9000"
  6. 因为我在官方文档翻了挺久没找到浏览器控制台访问地址的环境变量是什么,只找到了启动命令加参数的方法指定浏览器控制台访问地址,所以我决定使用指定参数环境变量的方法来设置。

  7. 继续在/etc/default/minio文件追加一行,设置MINIO_OPTS变量。

    ini 复制代码
    MINIO_OPTS="--console-address :9010"
  8. 保存文件,退出

  9. 重启minio服务

    sudo systemctl restart minio.service
    
  10. 查看启动日志,输出如下两行地址,符合预期。

    less 复制代码
    sudo systemctl status minio.service
    ​
    # 输出
    9月 04 10:12:32 qingxun-v2-1 minio[84483]: S3-API: http://10.168.1.166:9000
    9月 04 10:12:32 qingxun-v2-1 minio[84483]: Console: http://10.168.1.166:9010 http://127.0.0.1:9010
  11. 试着在自己电脑(不是虚拟机)的浏览器上面打开上述地址,查看效果

附录

VMware WorkSation 添加硬盘

  1. 关闭你需要添加硬盘的虚拟机,然后打开该虚拟机的设置( 不支持热拔插的虚拟硬盘在虚拟机开机状态下添加后,需要重启虚拟机才能读到硬盘 支持热拔插的虚拟硬盘在虚拟机开机状态下添加后,如果看不到硬盘,可能是因为你没有刷新相关配置。具体刷新方法需要你查看具体系统的刷新方法,本文不讲。)

  2. 点击添加按钮

  3. 在添加硬件向导中选择硬盘,点击下一步

  4. 选择合适的硬盘类型,点击下一步。如果你不知道选什么类型,保持默认就好

  5. 选择创建新虚拟磁盘,然后点击下一步 如果你想使用已有的虚拟磁盘或者使用物理磁盘,那选别的就行,VMware WorkStation支持一块虚拟硬盘被多个虚拟机访问,但是支不支持同时同一块虚拟硬盘访问笔者未做测试。

  6. 按需填写容量大小和其他硬盘配置

  7. 命名磁盘名称,点击下一步 如果你需要把硬盘文件存到自定义位置,请点击浏览 按钮 如果不指定位置,则虚拟磁盘将放到虚拟机目录下

    如果你自定义了路径,那路径将会显示出来:

  8. 点击完成,等待磁盘创建完成

  9. 然后你就可以看到新建的虚拟磁盘啦~🧨🧨🧨

Ubunutu如何查看与挂载硬盘

ChatGPT:

在Ubuntu上查看和挂载硬盘可以通过终端命令或图形界面进行。下面是使用终端命令和图形界面的方法:

使用终端命令:

查看硬盘: 打开终端,并运行以下命令来查看系统中已连接的硬盘和分区:

sudo fdisk -l

这将列出所有硬盘和分区的信息,包括设备名称(如 /dev/sda)和分区信息。

挂载硬盘: 要挂载硬盘,首先创建一个用于挂载的目录,例如 /mnt/mydisk

bash 复制代码
sudo mkdir /mnt/mydisk

然后使用 mount 命令挂载硬盘,例如:

bash 复制代码
sudo mount /dev/sdb1 /mnt/mydisk

/dev/sdb1 替换为你要挂载的硬盘或分区,将 /mnt/mydisk 替换为挂载点路径。

使用图形界面:

  1. 查看硬盘: 在Ubuntu的文件管理器中,你可以看到左侧边栏上的"设备"部分,其中列出了已连接的硬盘和分区。点击相应的设备,你将在文件管理器中看到硬盘的内容。
  2. 挂载硬盘: 在文件管理器中,双击要挂载的分区。它会自动在 /media/yourusername 目录下创建一个目录,并将分区挂载到这个目录。你可以在文件管理器中访问挂载的分区。

注意事项:

  • 在使用 sudo 执行命令时,要小心确保操作正确,以免误操作导致数据丢失。
  • 在使用命令行进行挂载时,务必确保挂载点目录已创建,并且路径正确。
  • 如果你想在每次系统启动时自动挂载硬盘,可以将挂载操作添加到 /etc/fstab 配置文件中。

Systemctl命令行工具

chatGPT

systemctl 是一个用于管理 systemd 系统和服务的命令行工具。它可以用于启动、停止、重启、启用或禁用系统服务,以及查看系统服务的状态和日志。以下是一些常用的 systemctl 参数及其含义:

  • start:用于启动一个系统服务。例如:

    sql 复制代码
    sudo systemctl start serviceName
  • stop:用于停止一个运行中的系统服务。例如:

    arduino 复制代码
    sudo systemctl stop serviceName
  • restart:用于重启一个系统服务。如果服务已经运行,它将首先停止服务,然后再启动。例如:

    sudo systemctl restart serviceName
    
  • reload:用于重新加载一个系统服务的配置,而无需停止和启动服务。这对于应用新的配置而不中断服务很有用。例如:

    sudo systemctl reload serviceName
    
  • enable:用于将一个服务设置为在系统启动时自动启动。例如:

    bash 复制代码
    sudo systemctl enable serviceName
  • disable:用于将一个服务设置为在系统启动时不自动启动。例如:

    bash 复制代码
    sudo systemctl disable serviceName
  • status:用于查看一个系统服务的当前状态,包括是否正在运行以及相关信息。例如:

    lua 复制代码
    sudo systemctl status serviceName
  • -is-active :用于检查一个服务是否处于活动状态(运行中)。如果服务正在运行,它将返回 active。例如:

    csharp 复制代码
    sudo systemctl is-active serviceName
  • is-enabled :用于检查一个服务是否已启用,即是否设置为在系统启动时自动启动。如果已启用,它将返回 enabled。例如:

    csharp 复制代码
    sudo systemctl is-enabled serviceName

    这些是一些常见的 systemctl 参数和它们的含义。systemctl 还有其他一些参数,可以用于更高级的系统管理任务,具体取决于你的需求和系统配置。可以使用 man systemctl 命令来查看 systemctl 的手册页面,获取更多详细信息。

Linux计算sha256值的几种方法

chatGPT:

在Linux中,你可以使用各种工具来获取文件的SHA-256值。下面是几种常见的方法:

  • 使用sha256sum命令: sha256sum命令计算文件的SHA-256哈希值,并输出结果。打开终端,进入文件所在的目录,然后运行以下命令:

    bash 复制代码
    sha256sum filename

    filename 替换为你要计算哈希值的文件名。

  • 使用openssl命令: openssl命令可以用于计算文件的SHA-256哈希值。以下是示例命令:

    openssl dgst -sha256 filename
    
  • 使用shasum命令: shasum命令也可以用于计算文件的SHA-256哈希值,但需要指定算法。使用以下命令:

    css 复制代码
    shasum -a 256 filename

这些方法都会在终端中输出文件的SHA-256哈希值,通常以十六进制表示。你可以将该值与预期的哈希值进行比较,以验证文件的完整性。

相关推荐
小码的头发丝、30 分钟前
Django中ListView 和 DetailView类的区别
数据库·python·django
杜杜的man38 分钟前
【go从零单排】go中的结构体struct和method
开发语言·后端·golang
幼儿园老大*38 分钟前
走进 Go 语言基础语法
开发语言·后端·学习·golang·go
llllinuuu40 分钟前
Go语言结构体、方法与接口
开发语言·后端·golang
Karoku06640 分钟前
【企业级分布式系统】Zabbix监控系统与部署安装
运维·服务器·数据库·redis·mysql·zabbix
cookies_s_s41 分钟前
Golang--协程和管道
开发语言·后端·golang
为什么这亚子43 分钟前
九、Go语言快速入门之map
运维·开发语言·后端·算法·云原生·golang·云计算
想进大厂的小王1 小时前
项目架构介绍以及Spring cloud、redis、mq 等组件的基本认识
redis·分布式·后端·spring cloud·微服务·架构
周全全1 小时前
MySQL报错解决:The user specified as a definer (‘root‘@‘%‘) does not exist
android·数据库·mysql
白云如幻1 小时前
MySQL的分组函数
数据库·mysql