90 天挑战 HCIE Cloud】第 2 天 Linux 硬件与软件管理

网友投稿 577 2022-05-28

硬件管理 Hardware (HW)

HW_001 设备查询

Windows 一般用设备管理器查计算机的硬件资源,Linux 的设备资源查询和管理,是由多个不同命令组合完成的,总的来说,命令可以分为硬件规格与配置查询和硬件资源使用状态查询

硬件规格配置查询,主要的需求场景和命令参考下表

硬件资源使用状态查询,包括部分常用的运营运维管理命令,参考下表

小测验:请执行以下指令,解释指令执行结果含义

[root@hcie ~]# cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l 1 [root@hcie ~]# cat /proc/cpuinfo| grep "cpu cores"| uniq cpu cores : 2 [root@hcie ~]# cat /proc/cpuinfo| grep "processor"| wc -l 4 [root@hcie ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 4 Intel(R) Xeon(R) Gold 6266C CPU @ 3.00GHz [root@hcie ~]# cat /proc/meminfo |grep MemTotal |cut -d ':' -f 2 |cut -d ' ' -f 8 15896912

HW_002 磁盘演进之路

个人电脑三大件 CPU 内存和磁盘,这 3 者的配置规格基本定义了一台计算机的档次,以前在中关村选购电脑或玩 DIY,主要关注的也是这 3 个方面

CPU:Intel 还是 AMD,核数、主频多少,再深入一点了解下浮点运算能力;后来,随着高画质影像视频、游戏应用的快速发展,GPU 的重要性也在不断提升

内存:内存颗粒、制造工艺、厂商,当然还有最重要的容量、读写速率等

磁盘:首先看是机械硬盘还是固态硬盘,机械硬盘关注磁盘容量、转速、数据读取时延等,固态硬盘 SSD 关注价格、容量和使用寿命等,主流 USB 采用的是和固态硬盘相同的技术,一般简称为闪存盘,是固态硬盘的一个别名

三者协同非常重要,任何一环拖后腿都会产生“短木板效应”,对计算性能造成影响,参考下图,在 SSD 固态硬盘出现之前,硬盘受限于机械特性,其性能提升相比 CPU 和内存都是非常缓慢的。SSD 固态硬盘技术的出现,缓解了这一情况,迅速拉齐了 3 者的发展水平,避免存储成为瓶颈

硬盘技术的演进对于整个技术生态影响巨大,过去机械硬盘随机和线性访问速度的限制,发展滞后于 CPU 和内存,业界衍生出很多技术以规避这种情况,如多级缓存、分布式存储技术,甚至 Hadoop 的技术生态,一开始也是围绕着怎么打破机械硬盘的性能限制而诞生的,更不用说传统数据库技术,和存储技术的适配也是非常重要的一环

磁盘等各类型硬件在 Linux 中是当做一个个文件进行管理的,所有硬件都存储在 /dev 目录下,不同的硬件使用的前缀代号都不一样,可以根据代号来判断硬件对应类别,选择合适的业务存储数据和访问应用,充分发挥硬件效能

小测验:请回答下面的路径代表的是哪一种存储硬件

/dev/sda /dev/vda /dev/hda /dev/usb/lp0

HW_003 磁盘分区

磁盘分区是安装操作系统的第一步,不过云端服务器一般不涉及分区操作,分区信息由云平台在开通 ECS 服务时自动完成了

参考下图,磁盘可分为磁盘分区包括主分区和扩展分区,主分区和扩展分区最多 4 个,这是由磁盘记录分区表信息的 MBR 决定的,MRB 存储容量为一个磁盘的一个扇区即 512 Byte,记录的分区数量信息是有限的

扩展分区最多可创建 1 个,可划分多个逻辑分区,编号从 5 开始如 /dev/sda5,每个逻辑分区和主分区在使用上没有什么差异

以上介绍的分区是基于 MBR 实现的,使用的分区命令是 fdisk;目前主流的分区类型还包括 GPT 分区,命令采用 gdisk

小测验:请按照如下要求执行,执行 fdisk 分区指令,完成磁盘分区操作

有两块 SATA 硬盘,各 500G,创建磁盘分区 /sda1 /sda2 /sda5 /sdb1 /sdb2

/sda1 /sda2 各 100G,/sda5 50G,剩余磁盘空间用于未来扩容使用

/sdb1 和 /sdb2 平分磁盘空间

注:以下指令常用语查询硬盘分区状态

[root@hcie ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 120G 0 disk └─vda1 253:1 0 120G 0 part / [root@hcie ~]# cat /proc/partitions major minor #blocks name 253 0 125829120 vda 253 1 125828079 vda1 [root@hcie ~]# fdisk -l Disk /dev/vda: 120 GiB, 128849018880 bytes, 251658240 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x64860148 Device Boot Start End Sectors Size Id Type /dev/vda1 * 2048 251658206 251656159 120G 83 Linux [root@hcie ~]# cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l 1 [root@hcie ~]# cat /proc/cpuinfo| grep "cpu cores"| uniq cpu cores : 2 [root@hcie ~]# cat /proc/cpuinfo| grep "processor"| wc -l 4 [root@hcie ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 4 Intel(R) Xeon(R) Gold 6266C CPU @ 3.00GHz [root@hcie ~]# cat /proc/meminfo |grep MemTotal |cut -d ':' -f 2 |cut -d ' ' -f 8 15896912

HW_004 文件系统类型

磁盘分区在物理上对磁盘进行了分割,将磁盘用起来,但操作系统没办法直接操作硬盘资源,操作系统可以访问的是一个个文件,因此须建立文件系统,通过文件系统管理硬件资源

下面的指令展示了系统所支持的文件系统种类:

[root@hcie ~]# cat /etc/filesystems xfs ext4 ext3 ext2 nodev proc nodev devpts

当前主流 Linux 系统一般采用 ext4 文件系统类型,参考下面的命令

[root@hcie ~]# df -T Filesystem Type 1K-blocks Used Available Use% Mounted on devtmpfs devtmpfs 7934200 0 7934200 0% /dev tmpfs tmpfs 7948456 0 7948456 0% /dev/shm tmpfs tmpfs 7948456 552 7947904 1% /run tmpfs tmpfs 7948456 0 7948456 0% /sys/fs/cgroup /dev/vda1 ext4 123591212 2689892 115432516 3% / tmpfs tmpfs 7948456 32 7948424 1% /tmp tmpfs tmpfs 1589688 0 1589688 0% /run/user/0

Linux 文件系统一般都采用以下 3 级结构

目录项:包括目录结构、文件和 inode 节点号

inode:文件节点索引,一个文件对应一个,记录文件属性,以及 inode 指向文件数据块地址;文件属性相关信息,参考下述指令显示的文件信息结果

[root@hcie etc]# ll -rw-r--r--. 1 root root 44 May 18 2020 adjtime

数据块:文件数据存储区域

小测验:请使用 mkfs.ext4 指令,创建磁盘文件系统,同时熟练掌握将 sfs 服务的使用方法

HW_005 磁盘分区挂载

硬盘分区安装文件系统后,还需挂载到 Linux 下的树形文件目录,操作系统才可以直接操作文件。有多个硬盘的服务器,一般会将不同目录挂载到不同硬盘,这样做有几个好处

硬盘资源隔离,一块盘坏了只影响本盘文件

单个硬盘读写性能有限,需做访问负载分担(在硬盘分区时,就得考虑访问均衡问题)

独立伸缩,当某个盘容量不够时,支持独立扩容

独立备份,对特定的存储有关键数据的盘进行备份

云时代之前,文件系统挂载磁盘分区一般有一个推荐配置方案,参考下表

注:上表是 Linux 分区的一个建议,无论是目录容量还是分区规则,都是云时代之前的最佳实践经验,一定要结合自己的实际使用情况做容量规划

云服务器一般不涉及该步骤,分区是默认建好的,如果有外部硬盘如 EVS,则需考虑规划方式

小测验:请使用命令,将 /dev/sda1 挂载到 /boot,/dev/sda2 挂载到自建目录 /home/lib,并对 /home/lib 执行 umount 操作

HW_006 NFS 网络文件系统

nfs 是一种网络文件系统,支持通过 nfs 将外部服务器的文件系统,挂接在本地目录下,操作系统一般默认未安装 nfs,可以使用以下指令完成安装

[root@hcie ~]# sudo yum -y install nfs-utils

华为云弹性文件服务 sfs 支持在云端建立 nfs 服务端,将 sfs 服务下的文件系统挂接到 Linux 系统,可以先登录华为云 sfs 官网,新建文件系统资源,得到 sfs 的访问地址,参考下图所示

小测验:请使用命令,分别实现手动和自动挂载 sfs 文件系统到 Linux 服务器上,参考挂载NFS文件系统到云服务器(Linux) 和 自动挂载文件系统

账号与权限 Account and Authority (AA)

AA_001 用户管理

Linux 用户分为超级管理云用号 root 和普通用户,超级管理员 root 用户标识符 UID 为 0,普通用户 UID 为 500~6000,1~499 用于伪用户,提供给系统进程使用,不能使用伪用户登录系统

添加用户使用 useradd 命令,参考下面指令

[root@hcie ~]# useradd test01 useradd: warning: the home directory already exists. Not copying any file from skel directory into it. Creating mailbox file: File exists [root@hcie ~]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin test01:x:1000:1000::/home/test01:/bin/bash [root@hcie ~]# ll /home total 4.0K drwx------ 2 test01 test01 4.0K Aug 21 17:51 test01 [root@hcie ~]# su test01 Welcome to 4.19.90-2003.4.0.0036.oe1.x86_64 System information as of time: Sat Aug 21 17:53:14 CST 2021 System load: 0.00 Processes: 104 Memory used: 1.5% Swap used: 0.0% Usage On: 3% IP address: 192.168.1.127 Users online: 1 [test01@ecs-9e0e root]$ exit

使用 useradd 创建用户后,在 /etc/passwd 可以看到用户信息,/home 目录下创建用户名命名的专属文件夹,useradd 创建的用户默认是没有密码的,使用 su test01 即可切换到对应的用户,不需要设置密码

用户信息保存在 /etc/passwd,用户密码则以加密方式存储在 /etc/shadow,参考下面命令,展示了配置用户密码后的效果

[root@hcie ~]# passwd test01 Changing password for user test01. New password: Retype new password: passwd: all authentication tokens updated successfully. [root@hcie ~]# cat /etc/shadow root:!!$fmS6czcBxVuizxIA$CDgEch4xQbQJizmjmWwX5N04RbSo6ejxpbalF0Z64LeMzY/xd7OSC.LE87AYwlJ6F18SJYhdRH8IWWiRY4Hfc/:18400:0:99999:7::: bin:*:18344:0:99999:7::: daemon:*:18344:0:99999:7::: test01:$LYAkN6DvI5iM6JxDTVku.NEJLy8Fg3bHpWiE.RH/vR9tz4HCG/fAYc0FdtOSXdlfAUusD7D4Hy0q8TKbiXYNSNfM12dZdWNPSVNZ.:18860:0:99999:7:::

有多种方式可以查看当前用户状态信息,请参考下面指令

[root@hcie ~]# id root uid=0(root) gid=0(root) groups=0(root) [root@hcie ~]# who root pts/0 2021-08-21 21:44 (119.123.79.60) root pts/1 2021-08-21 23:21 (119.123.79.60) [root@hcie ~]# w 23:55:26 up 7 days, 13:28, 2 users, load average: 0.00, 0.00, 0.00 USER TTY LOGIN@ IDLE JCPU PCPU WHAT root pts/0 21:44 2:10m 0.00s 0.00s -bash root pts/1 23:21 6.00s 0.05s 0.00s w [root@hcie ~]# whoami root

注:使用 passwd 命令设置密码后,在 /etc/shadow 文件种对应的用户名 test01 后面,就会有一段加密字符串,是系统根据 md5 SHA256 或 SHA512 加密原始密码生成的

小测验:请使用相关命令创建用户 user02,配置密码后,再删除该用户及用户所属的 /home 目录

AA_002 用户组管理

Linux 用户组 (group) 适用于多个用户的权限管理,用户组包含两种类别:

主要组(Primary Group,又称为私有组 Private Group):创建用户时,如果未指定用户组,默认将创建一个用户名同名的用户组

次要组(Secondary Group,又称为公共组 Public Group):用户创建时可以指定组名,次要组支持添加多个用户

主要组和次要组之间可以相互转化,如私有组新增了其他的用户,则变为公共组

用户组管理支持新增、删除用户组,从用户组中添加或删除用户,或对指定文件的所属用户和组进行修改,请查看如下示例介绍:

[root@hcie ~]# groupadd gtest01 [root@hcie ~]# tail -n1 /etc/group gtest01:x:1001: [root@hcie ~]# gpasswd -a test01 gtest01 Adding user test01 to group gtest01 [root@hcie ~]# groups test01 # 显示 test01 所属 groups test01 : test01 gtest01 [root@hcie ~]# tail -n1 /etc/group gtest01:x:1001:test01 [root@hcie ~]# chown -R test01.gtest01 file

小测验:

创建组 gtest02,添加设置组密码,将 user01 添加到组

将 user01 从组 gtest01 中删除

将 user01 所属组修改为 gtest02

AA_003 文件权限管理

Linux 操作系统中,所有的文件都有对应的权限设置,参考下面指令

[root@hcie ~]# ll -a /root total 44K dr-xr-x---. 4 root root 4.0K Aug 14 11:41 . dr-xr-xr-x. 20 root root 4.0K Aug 14 10:27 .. -rw------- 1 root root 6.6K Aug 22 14:22 .bash_history -rw-r--r--. 1 root root 18 Oct 29 2019 .bash_logout -rw-r--r--. 1 root root 176 Oct 29 2019 .bash_profile -rw-r--r--. 1 root root 198 Aug 14 11:33 .bashrc drwx------ 3 root root 4.0K May 18 2020 .cache -rw-r--r--. 1 root root 100 Oct 29 2019 .cshrc -rw------- 1 root root 0 May 18 2020 .history drwx------ 2 root root 4.0K Aug 14 10:27 .ssh -rw-r--r--. 1 root root 129 Oct 29 2019 .tcshrc

dr-xr-x— 即对应的文件权限配置,其各字段的含义参考下图:

上图中,权限设置包含了 3 种角色:

Owner 指文件所属用户

Group 指文件所属用户组

Other Users 和文件没有用户和用户组关系的其他用户

权限设置包含 3 种类别,针对文件和目录两种文档类型,其含义略有差别:

注:上述计数含义,在介绍 chmod 权限修改时,会有介绍

文件权限可以按需修正,包括所属组、用户和权限设计,参考下面指令:

chgrp test01 gtest01 chown root:root file chmod u+wx,g-r,o=rx file chmod a-w file

参考上面指令可以发现,可以对 u(用户) g(用户组) o(其他) a(所有角色) 相应用户的权限信息,做出修改,其修改操作符有 3 个,分别介绍如下:

还有一种方式可以对权限进行修改,请参考以下指令,尝试不同配置下的访问权限差异:

[root@hcie ~]# touch file [root@hcie ~]# ll total 0 -rw------- 1 root root 0 Aug 22 14:44 file [root@hcie ~]# chmod 771 file && ll total 0 -rwxrwx--x 1 root root 0 Aug 22 14:44 file [root@hcie ~]# chmod 421 file && ll total 0 -r---w---x 1 root root 0 Aug 22 14:44 file [root@hcie ~]# chmod 651 file && ll total 0 -rw-r-x--x 1 root root 0 Aug 22 14:44 file

那么 rwx 和 771 421 的数字间,是一个什么映射关系呢,参考下图:

小测验:请参考下面指令获取 file 文件当前的权限,分别使用 u+r 和 777 两种方式,对权限进行修改满足下述要求

用户权限(u):能够使用编辑程序打开文件,对文件内容进行修改,并使用 python 命令运行文件

用户组权限(g):能够使用编辑程序打开并查看文件内容,但无法修改文件,也无法运行文件

Others 权限(o):支持运行文件,但不支持对文件进行读写

[root@hcie ~]# ll run.py -rw------- 1 root root 0 Aug 22 14:44 run.py

软件管理 Software (SW)

SW_001 源码安装 Apache

Linux 安装软件有源码安装和安装包安装两种(Windows 一般只使用安装包安装),这是由 Linux 自身的 GPL 授权特性决定的,在 Linux 上运行的软件,一般都采用了 GPL 或者类似的开源授权,会提供源码

一般而言,源码安装要相对复杂些,包括以下几个步骤:

下载源码安装包:一般使用 wget 指令访问官网获取源码,默认保存到 /usr/local

配置生成 Makefile 文件:执行 ./configure 命令,生成适合本系统运行的 Makefile 文件,后续 make 命令会基于该文件完成编译和链接操作

编译:make 指令,将源码文件 (包括 .c 源码文件和 .h 头文件) 编译成二进制目标文件 (*.o)

安装:执行 make install 命令将上一步编译好的二进制文件安装到指定的目录

现在我们来到 Linux 建站最常见的步骤:通过源码安装 Apache HTTP Server 服务。Apache HTTP 服务是业界最流行的一个开源 Web 服务器,是 LAMP 组合 Linux Apache Mysql PHP 中的一员,Apache HTTP 服务在 Linux 中运行指令为 httpd

注:以 Apache HTTP 服务为起点,Apache 逐渐成为开源世界的绝对主导力量,其中 Apache 软件基金会 引领开源生态建设方面,众多优秀的开源项目如 Flink Hadoop Kafka Maven Tomcat 等顶顶大名的开源组件

源码安装需要提前安装几个必备的编译软件,wget vim openEuler 系统预装就有,gcc gcc-c++ cmake 等则需要进行安装;apr-util 组件的安装依赖 expat-devel,也需要提前安装好,否则后续会报错;pcre-devel 则是 httpd 组件依赖的服务,也需要提前安装好

[root@hcie ~]# yum install gcc gcc-c++ cmake [root@hcie ~]# yum install expat-devel pcre-devel

Apache httpd 依赖 pcre apr apr-util 几个组件,因此安装 Apache 前需先完成这几个组件的安装,这几个服务组件都支持通过源码安装

现在我们进入正题,开始 Apache 组件的源码安装,第一步先通过 wget 指令获取到 Apache httpd 及其他几个依赖组件的源码

[root@hcie ~]# wget https://downloads.apache.org/httpd/httpd-2.4.46.tar.gz [root@hcie ~]# wget https://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.6.1.tar.gz [root@hcie ~]# wget https://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.7.0.tar.gz [root@hcie ~]# wget https://ftp.pcre.org/pub/pcre/pcre-8.45.tar.gz # 注意,上面下载 pcre 版本时,不能选择 pcre2 相应的版本,否则后面 Apache 会安装失败,Apache 对应的是 pcre 组件 [root@hcie ~]# tar -zxvf apr-1.7.0.tar.gz [root@hcie ~]# cd apr-1.7.0 [root@hcie ~]# ./configure --prefix=/usr/local/apr [root@hcie apr-1.7.0]# make && make install # apr-util pcre 和 httpd 的解压操作请自行完成,apr-util pcre 的 make && make install 步骤下面已省略 [root@hcie apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr [root@hcie pcre-8.45]# ./configure --prefix=/usr/local/pcre # httpd 在执行 ./configure 编译阶段,需要用到 apr 和 apr-util 相应源码文件,必须复制到 srclib 目录下,否则 httpd 在执行 make && make install 时将报错 [root@hcie ~]# cd httpd-2.4.46/srclib [root@hcie srclib]# cp -r ~/apr-1.7.0 apr [root@hcie srclib]# cp -r ~/apr-util-1.6.1 apr-util [root@hcie httpd-2.4.46]# ./configure --prefix=/usr/local/apache2 --with-included-apr --with-pcre=/usr/local/pcre [root@hcie httpd-2.4.46]# make && make install # 运行 Apache httpd 服务 [root@hcie httpd-2.4.46]# cd /usr/local/apache2/bin [root@hcie bin]# ./apachectl start # 验证 httpd 服务是否正常运行 [root@hcie bin]# ps -ef | grep httpd root 139342 1 0 22:21 ? 00:00:00 /usr/local/apache2/bin/httpd -k start daemon 139344 139342 0 22:21 ? 00:00:00 /usr/local/apache2/bin/httpd -k start daemon 139345 139342 0 22:21 ? 00:00:00 /usr/local/apache2/bin/httpd -k start daemon 139346 139342 0 22:21 ? 00:00:00 /usr/local/apache2/bin/httpd -k start root 139440 27613 0 22:21 pts/1 00:00:00 grep --color=auto httpd

完成以上操作后,登录服务器网址,终于看到了期待的画面:

小测验:Apache 建站是以前站长的第一课,源码安装又是玩 Linux 的一个必备技能,请参考上述操作指南,一步步使用源码完成 Apache httpd 服务的安装,对深入理解源码安装的原理、步骤非常有帮助

SW_002 安装工具

不同的 Linux 发行版本使用不同的软件安装工具,参考下表

下面将重点说明 Redhat 系列的两个软件安装工具 rpm 和 yum

rpm 是使用最广泛的安装工具,已成为 Linux 行业的软件安装标准,提供了软件打包、安装、查询、升级、卸载、校验等功能;rpm 包本身并不解决包依赖的问题,比如通过 rpm 安装软件 A,软件 A 依赖软件 B 和软件 C,而软件 B 又依赖 软件 D,则 rpm 安装软件的顺序就是 D -> B -> C -> A

由于 rpm 安装程序包非常多,彼此间的依赖关系极其复杂,新手用户往往在安装程序的第一步,就会遇到各种阻碍,用户需要逐项梳理依赖关系,一个个下载彼此依赖的程序包,整个过程是非常磨人的

注:有一点要特别注意,rpm 包并不是跨平台通用的,不同的 Linux 发行系列,甚至同一个发行系列下的不同版本,使用的 rpm 包都是不同的;另外针对不同的 cpu 架构如 x86 和 arm,rpm 包也是不一样的,下载的时候要特别注意

yum 就是为了解决 rpm 的包依赖问题而产生的,yum 通过 repos 库保存安装包文件,维护不同安装包之间的依赖关系,当用户使用 yum 安装软件 A 时,yum 将自动识别所有包依赖关系,并完成依赖包的安装,大幅提升了软件安装效率

小测验:请说明以下软件安装相关指令执行的功能

rpm -ivh --nodeps a.rpm rpm -qa a.rpm rpm -ql a* rpm -qi a.rpm rpm -qa rpm -qf file_from_a rpm -e a.rpm rpm -Uvh a.rpm rpm -V a.rpm yum list all yum list installed yum list recent yum repolist yum info a.rpm yum provides /etc/fstab yum clean all yum makecache yum -y install sw.a yum reinstall sw.a yum update sw.a yum remove sw.a yum localinstall a.rpm

SW_003 安装源配置

和 CentOS 一样,openEuler 使用 yum 作为系统自带的主力安装工具,相关配置主要通过 /etc/yum.conf 文件和 /etc/yum.repos.d 目录两部分完成

yum 安装需要配置安装源,作为安装包依赖关系和及安装包的下载来源,华为云预装的 openEuler 操作系统,默认配置了 openEuler 官网作为安装源,参考下面命令:

[root@hcie yum.repos.d]# ll /etc/yum.repos.d total 4.0K -rw-r--r--. 1 root root 1.7K May 18 2020 openEuler_x86_64.repo [root@hcie yum.repos.d]# cat openEuler_x86_64.repo [OS] name=OS baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/OS/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler [everything] name=everything baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/everything/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS/everything/$basearch/RPM-GPG-KEY-openEuler [EPOL] name=EPOL baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/EPOL/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler [debuginfo] name=debuginfo baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/debuginfo/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS/debuginfo/$basearch/RPM-GPG-KEY-openEuler [source] name=source baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/source/ enabled=1 gpgcheck=1 gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS/source/RPM-GPG-KEY-openEuler [update] name=update baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/update/$basearch/ enabled=0 gpgcheck=1 gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler

小测验:若服务器原先使用的并非 openEuler 官网的 yum 源,怎么配置使用官网的镜像源?

SW_004 软件定期执行

Linux 使用 crontab 定期执行软件,可以进行非常精准的控制,先看下 crontab 查询和删除定时任务的用法:

[root@hcie ~]# crontab -l * * * * 1 /bin/ls [root@hcie ~]# crontab -r [root@hcie ~]# crontab -l no crontab for root

命令 crontab -e 可以进入定时任务的编辑页面,每行配置一个定时任务,前 5 个参数都是数字,用来设置定时任务发起时间,最后 1 个参数是可执行程序的绝对路径,系统将定时调用可执行程序

针对前 5 个参数的含义,参考下表说明(以下内容均摘自 runoob 网站)

* * * * * - - - - - | | | | | | | | | +----- 星期中星期几 (0 - 6) (星期天 为0) | | | +---------- 月份 (1 - 12) | | +--------------- 一个月中的第几天 (1 - 31) | +-------------------- 小时 (0 - 23) +------------------------- 分钟 (0 - 59) # 每分钟执行一次 * * * * * /bin/ls # 在 12 月内, 每天的早上 6 点到 12 点,每隔 3 个小时 0 分钟执行一次 0 6-12/3 * 12 * /usr/bin/backup # 周一到周五每天下午 5:00 寄一封信给 alex@domain.name 0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata # 每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha" 20 0-23/2 * * * echo "haha" # 每两个小时重启一次apache 0 */2 * * * /sbin/service httpd restart # 每天7:50开启ssh服务 50 7 * * * /sbin/service sshd start # 每天22:50关闭ssh服务 50 22 * * * /sbin/service sshd stop

小测验:请针对下文列出的 crontab 不同场景,说明配置方法

每月1号和15号检查/home 磁盘

【90 天挑战 HCIE Cloud】第 2 天 Linux 硬件与软件管理

每小时的第一分执行 /home/bruce/backup这个文件

每月的1、11、21、31日是的6:30执行一次ls命令

参考资料

Linux 最佳分区方案

如何使用 openEuler

Linux 用户和权限管理

Linux Group Management Explained with Examples

Linux crontab 命令

源码安装 Apache

3D TLC NAND To Beat MLC

SSDs will crush hard drives

目录和前后章节

90 天挑战 HCIE Cloud

上一章 - Linux 开启云端之门

下一章 - 编辑器之神 VI

实时更新信息,请关注微信公众号和微博 齐月太白

点击进入微博 齐月太白:https://weibo.com/moontaibai

Linux MySQL 弹性云服务器 ECS

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【嵌入式Linux学习】9、挂载U盘到Ubuntu中
下一篇:分享一个Linux 自动分区、格式化、挂载脚本
相关文章