Linux系统管理

实验四 Linux系统管理 实验四    Linux系统管理 一、实验目的        1.掌握Linux初步的系统管理;        2.会在Linux下安装各种软件;        3.学会使用vi编辑器; 二、实验要求 实验内容        熟悉Linux系统管理各种功能命令 三、实验过程及实验结果图        1.查看用户和组文件:            进入/etc目录,#cd /et 阅读详情

SSH服务

SSH连接和免密登录配置

检测服务状态:systemctl status sshd.service

开启服务:systemctl start sshd.service

检查到sshd服务开启并且确认22端口打开:

连接远程服务器:

配置SSH免密访问:

之后就能免密登录了:

远程文件同步

SCP命令:远程文件拷贝命令

复制本机的data文件夹,以root用户的身份传送到192.168.222.135的/root目录中

IP地址后面必须跟上绝对路径

常用参数:

-p:保留原文件的修改时间,访问时间和访问权限

-r:递归复制整个目录

rsync命令:

安装:yum install rsync -y

rsync = remote sync,增量同步工具,核心优势:

  1. 增量传输:只传文件差异部分,不完整重传,速度远快 scp;
  2. 支持本地同步、远程 SSH 同步、守护进程 (rsync://) 同步;
  3. 保留权限、属主、时间、软链接、设备文件等完整属性;
  4. 压缩传输、删除冗余文件、过滤文件、断点续传;
  5. 备份场景标配,服务器定时备份首选。

常用参数:

  • -a 归档:递归、保留权限 / 属主 / 时间 / 软链接
  • -v 打印同步详情
  • -z 传输过程压缩(外网必备,提速)
  • -P = --progress --partial:显示进度 + 断点续传

关键细节:源目录末尾 / 的巨大区别

示例 1:源不带 /:rsync -av /root/data /root/backup

把整个 data 文件夹本身复制到 backup,结果: /root/backup/data/xxx

示例 2:源带 / :rsync -av /root/data/ /root/backup

只复制 data 内部所有文件,不创建 data 文件夹,结果: /root/backup/xxx

系统日志

journalctl命令

journalctl 是 systemd 日志管理工具,用于查看和管理系统日志。以下是最常用的几个命令示例:

1. 查看最近的日志

显示最近 20 条系统日志:

journalctl -n 20

-n 参数指定显示的行数,默认显示最近 10 条;省略数字则显示全部可用的最近日志。

2. 按服务筛选日志

查看指定服务(如 sshd)的日志:

journalctl -u sshd

-u(--unit)参数可精确筛选某个 systemd 服务单元的日志,替换 sshd 为 nginx、docker 等其他服务名即可查看对应服务的日志。

3. 实时追踪日志

实时滚动输出最新日志(类似 tail -f):

journalctl -f

该命令会持续监听并输出新产生的日志,按 Ctrl+C 退出;非常适合调试时观察服务实时输出。

4. 按时间范围过滤

查看今天的日志:

journalctl --since today

查看指定时间段的日志:

journalctl --since "2025-01-01 10:00:00" --until "2025-01-01 12:00:00"

5. 按优先级筛选

只查看错误级别及以上的日志:

journalctl -p err

日志优先级从低到高依次为:debug、info、notice、warning、err、crit、alert、emerg。使用 -p 参数可以快速定位严重问题。

systemd-journald 日志持久化

默认情况下,systemd-journald 将日志存储在内存中的 /run/log/journal 目录,系统重启后日志会丢失。要实现日志持久化,需要创建磁盘存储目录并设置正确的权限,然后重启服务。

1. 创建持久化存储目录

执行以下命令创建日志持久化目录:

mkdir /var/log/journal

2. 设置目录权限

将目录的所有者设为 root,所属组设为 systemd-journal,并设置 setgid 位(2755),确保新创建的文件继承正确的组权限:

chown root.systemd-journal /var/log/journal/

chmod 2755 /var/log/journal

3. 重启服务使配置生效

完成目录创建和权限设置后,重启 systemd-journald 服务:

systemctl restart systemd-journald

重启后,日志文件将持久化保存在 /var/log/journal 目录下,即使系统重启也不会丢失。

4. 验证持久化是否生效

重启系统后,执行以下命令查看日志文件是否存在:

ls -l /var/log/journal/

如果目录下有以机器 ID 命名的子目录,且内部包含 system.journal 等文件,说明持久化配置成功。此时使用 journalctl 查看的日志将包含重启前的历史记录。

rsyslog服务

rsyslog 是 Linux 系统上最主流的日志收集与转发服务,负责接收系统内各类程序、内核、服务的日志消息,并根据规则写入本地文件或转发到远程日志服务器。相比传统的 syslogd,rsyslog 支持更丰富的过滤条件、模块化扩展、TCP/TLS 传输以及高吞吐量处理。

1. 检查 rsyslog 服务状态

确认 rsyslog 是否正常运行:

systemctl status rsyslog

如果未运行,启动并设置开机自启:

systemctl start rsyslog

systemctl enable rsyslog

2. 主配置文件

rsyslog 的主配置文件位于 /etc/rsyslog.conf,配置规则通常遵循以下格式:

facility.priority action

常见配置示例:

  • *.info;mail.none;authpriv.none;cron.none /var/log/messages —— 将所有 info 及以上级别的日志(排除 mail、authpriv、cron)写入 /var/log/messages
  • authpriv.* /var/log/secure —— 认证安全日志写入 /var/log/secure
  • mail.* -/var/log/maillog —— 邮件日志写入 /var/log/maillog(减号表示异步写入)
  • cron.* /var/log/cron —— 计划任务日志写入 /var/log/cron

3. 远程日志收集(客户端配置)

将本机日志实时发送到远程日志服务器(如 192.168.222.137):

vim /etc/rsyslog.conf

在文件末尾添加:

*.* @@192.168.222.137:514

其中 @ 表示 UDP 协议(@@ 表示 TCP 协议),514 为默认端口。配置完成后重启 rsyslog。

4. 远程日志收集(服务端配置)

在日志服务器上启用 UDP 监听,编辑 /etc/rsyslog.conf:

vim /etc/rsyslog.conf

在文件中取消注释以下内容:

$ModLoad imudp

$UDPServerRun 514

如果需要 TCP 支持,同时添加:

$ModLoad imtcp

$InputTCPServerRun 514

保存后重启 rsyslog,并确保防火墙放行 514 端口:

firewall-cmd --add-port=514/udp --permanent

firewall-cmd --reload

5. rsyslog 与 systemd-journald 的关系

在现代 Linux 系统中,systemd-journald 负责从内核和 systemd 单元收集结构化日志,而 rsyslog 则作为传统日志处理引擎,将 journald 的日志按规则写入文本文件或转发到远程。两者可以共存:journald 提供快速检索和结构化查询,rsyslog 提供灵活的持久化存储和转发能力。默认情况下,rsyslog 会从 journald 读取日志并写入 /var/log/ 下的传统日志文件。

6. 查看 rsyslog 写入的常见日志文件

  • /var/log/messages —— 通用系统日志
  • /var/log/secure —— 认证与安全日志
  • /var/log/maillog —— 邮件服务器日志
  • /var/log/cron —— 计划任务日志
  • /var/log/boot.log —— 系统启动日志

使用 tail -f /var/log/messages 可以实时查看最新的系统日志输出。

系统延时任务

at命令

at 命令用于在指定时间执行一次性任务,适合需要临时在某个时间点执行某个命令的场景。使用 at 前需确保 at 服务已安装并启动。

1. 安装 at

yum install at -y

2. 启动 at 服务

systemctl start atd

systemctl enable atd

3. 基本用法

在指定时间执行命令:at 10:30

输入命令后按 Ctrl+D 提交任务。支持多种时间格式:

  • at now + 5 minutes —— 5 分钟后执行
  • at 14:00 —— 今天下午 2 点执行
  • at 23:59 2026-7-21 —— 指定日期时间执行
  • at teatime —— 下午 4 点执行(teatime 是内置别名)

4. 管理 at 任务

查看待执行的任务列表:atq

删除指定任务(任务编号通过 atq 获取):atrm

查看某个任务的详细内容:at -c

5. 访问控制

通过 /etc/at.allow 和 /etc/at.deny 文件控制哪些用户可以使用 at 命令。默认只有 root 可以使用,若 at.allow 存在则只有该文件中的用户可用;若 at.allow 不存在但 at.deny 存在,则不在 at.deny 中的用户均可使用。

cron管理定期任务

cron 是 Linux 系统中最常用的定期任务调度服务,用于按分钟、小时、天、月、周等周期重复执行命令或脚本。cron 由 crond 守护进程管理,配置文件采用标准化的时间格式。

1. 检查 crond 服务状态

systemctl status crond

如果未运行,启动并设置开机自启:

systemctl start crond

systemctl enable crond

2. crontab 时间格式

cron 任务的时间格式由 5 个字段组成,依次表示:

分 时 日 月 周 命令

各字段取值范围:

  • 分:0–59
  • 时:0–23
  • 日:1–31
  • 月:1–12
  • 周:0–7(0 和 7 都表示周日)

常用特殊符号:

  • * 表示任意值,如 * * * * * 表示每分钟执行
  • , 表示多个值,如 0,30 * * * * 表示每小时的第 0 和 30 分钟执行
  • - 表示范围,如 9-17 * * * * 表示 9 点到 17 点之间每小时执行
  • / 表示步长,如 */5 * * * * 表示每 5 分钟执行

3. 常用示例

每天凌晨 2 点执行备份脚本:

0 2 * * * /root/backup.sh

每 10 分钟检查一次服务状态:

*/10 * * * * systemctl status sshd >> /var/log/ssh-check.log

每周一凌晨 3 点清理日志:

0 3 * * 1 find /var/log -name "*.log" -mtime +7 -exec rm {} \;

每月 1 号上午 9 点生成报表:

0 9 1 * * /usr/local/bin/generate_report.sh

4. 管理 crontab 任务

编辑当前用户的 crontab:

crontab -e

查看当前用户的 crontab 任务:

crontab -l

删除当前用户的所有 crontab 任务:

crontab -r

以指定用户身份管理 crontab(需要 root 权限):

crontab -u username -e

5. 系统级 cron 目录

除了 crontab -e 编辑的用户级任务,系统还提供了几个预定义的 cron 目录,将脚本放入对应目录即可按周期自动执行:

  • /etc/cron.hourly/ —— 每小时执行一次
  • /etc/cron.daily/ —— 每天执行一次
  • /etc/cron.weekly/ —— 每周执行一次
  • /etc/cron.monthly/ —— 每月执行一次

系统级 cron 配置文件位于 /etc/crontab,其格式比用户级多一个用户名字段:

分 时 日 月 周 用户 命令

例如:

0 4 * * * root /usr/sbin/logrotate

6. 日志与调试

cron 的执行日志默认记录在 /var/log/cron 文件中,可通过以下命令查看最近执行的任务:

tail -f /var/log/cron

如果任务未按预期执行,检查以下几点:

  • crond 服务是否正常运行
  • 脚本是否有可执行权限(chmod +x script.sh)
  • 脚本中使用绝对路径,因为 cron 的环境变量有限
  • 检查 /var/log/cron 中的错误信息

7. 访问控制

与 at 类似,cron 也通过 /etc/cron.allow 和 /etc/cron.deny 控制用户权限。如果 cron.allow 存在,只有该文件中的用户可以使用 crontab;否则检查 cron.deny,不在其中的用户均可使用。

NFS服务配置

NFS(Network File System)是 Linux 系统上最常用的网络文件共享协议,允许客户端通过网络挂载远程服务器上的目录,像访问本地文件一样操作远程文件。NFS 基于 RPC(Remote Procedure Call)实现,适合局域网内的文件共享场景。

1. 安装 NFS 服务端

在作为 NFS 服务器的机器上安装 nfs-utils:

yum install nfs-utils -y

2. 启动 NFS 服务

启动并设置开机自启:

systemctl start nfs-server

systemctl enable nfs-server

确认服务状态:

systemctl status nfs-server

3. 配置共享目录

NFS 的共享配置通过 /etc/exports 文件管理。编辑该文件:

vim /etc/exports

添加共享规则,格式为:共享目录 客户端(选项)

示例:将 /root/data 目录共享给整个 192.168.222.0/24 网段:

/root/data 192.168.222.0/24(rw,sync,no_root_squash)

常用选项说明:

  • rw —— 读写权限,ro 为只读
  • sync —— 同步写入,数据写入磁盘后才返回确认
  • async —— 异步写入,性能更好但可能丢失数据
  • no_root_squash —— 客户端 root 用户保持 root 权限(默认会映射为 nfsnobody)
  • no_all_squash —— 保留用户身份映射
  • subtree_check —— 检查子目录权限(默认启用)

4. 应用配置

修改 /etc/exports 后,执行以下命令使配置生效:

exportfs -r

查看当前所有共享目录:

exportfs -v

5. 配置防火墙

NFS 依赖多个 RPC 端口,需要放行相关服务。如果使用 firewalld:

firewall-cmd --add-service=nfs --permanent

firewall-cmd --add-service=rpc-bind --permanent

firewall-cmd --add-service=mountd --permanent

firewall-cmd --reload

6. 客户端挂载 NFS 共享

在客户端机器上安装 nfs-utils:

yum install nfs-utils -y

查看 NFS 服务器(192.168.222.135)上的共享目录:

showmount -e 192.168.222.135

创建本地挂载点并挂载:

mkdir /mnt/nfs

mount -t nfs 192.168.222.135:/root/data /mnt/nfs

验证挂载是否成功:

df -h | grep nfs

7. 设置开机自动挂载

编辑 /etc/fstab 文件,添加以下条目:

192.168.222.135:/data /mnt/nfs nfs defaults 0 0

之后系统重启时会自动挂载 NFS 共享目录。

8. 卸载 NFS 挂载

使用 umount 命令卸载:

umount /mnt/nfs

如果提示 target is busy,可使用 fuser -km /mnt/nfs 强制终止占用进程后再卸载。

autofs配置

autofs 是一种按需自动挂载文件系统的机制,当用户访问某个挂载点时,autofs 会自动触发挂载操作;当挂载点在一段时间内未被使用时,autofs 会自动卸载。相比在 /etc/fstab 中静态挂载,autofs 可以节省系统资源,特别适合管理大量 NFS 共享或可移动设备。

1. 安装 autofs

在需要配置 autofs 的机器上安装 autofs 软件包:

yum install autofs -y

2. 启动 autofs 服务

启动并设置开机自启:

systemctl start autofs

systemctl enable autofs

确认服务状态:

systemctl status autofs

3. 主配置文件结构

autofs 的核心配置文件位于 /etc/auto.master,它定义了挂载点与映射文件之间的对应关系。映射文件则具体描述每个挂载点的来源和选项。

主配置文件格式:

挂载点 映射文件 [选项]

例如:

/mnt /etc/auto.nfs --timeout=60

这表示 /mnt 目录下的子目录由 /etc/auto.nfs 映射文件管理,空闲 60 秒后自动卸载。

4. 配置 NFS 自动挂载示例

假设需要自动挂载 NFS 服务器 192.168.222.135 上的 /root/data 目录到本机的 /mnt/nfs 目录。

第一步,编辑主配置文件 /etc/auto.master:

vim /etc/auto.master

在文件末尾添加:

/mnt /etc/auto.nfs --timeout=60

第二步,创建映射文件 /etc/auto.nfs:

vim /etc/auto.nfs

添加以下内容:

nfs -rw,sync,no_root_squash 192.168.222.135:/root/data

映射文件格式说明:

挂载点子目录 挂载选项 远程路径

其中 nfs 是 /mnt 下的子目录名,访问 /mnt/nfs 时 autofs 会自动挂载。

第三步,重启 autofs 服务使配置生效:

systemctl restart autofs

第四步,测试自动挂载:

ls /mnt/nfs

执行该命令时,autofs 会自动触发挂载操作,列出远程目录的内容。使用 df -h | grep nfs 可以确认挂载已生效。

5. 直接映射(Direct Map)

除了前面介绍的间接映射(通过 /mnt 下的子目录自动挂载),autofs 还支持直接映射(Direct Map)。直接映射允许将远程目录直接挂载到任意指定的绝对路径上,而不需要先定义一个父级挂载点目录。直接映射使用 /- 作为主配置文件中的挂载点标识。

下面通过一个完整的实战步骤,演示如何将 NFS 服务器 192.168.222.135 上的 /root/data 目录直接映射到本机的 /data 路径。

步骤 1:编辑主配置文件 /etc/auto.master

使用 vim 打开主配置文件:

vim /etc/auto.master

在文件末尾添加以下一行。注意挂载点位置必须写 /-,这是直接映射的固定语法:

/- /etc/auto.direct

这行配置的含义是:所有由 /etc/auto.direct 映射文件定义的挂载点,都按照直接映射方式处理,即映射文件中的键就是最终的绝对挂载路径。

步骤 2:创建直接映射文件 /etc/auto.direct

创建并编辑映射文件:

vim /etc/auto.direct

添加以下内容:

/data -rw,sync 192.168.222.135:/root/data

直接映射文件的格式与间接映射略有不同:

绝对挂载路径 挂载选项 远程路径

各字段说明:

  • /data —— 客户端上的绝对挂载路径,访问此目录时触发自动挂载
  • -rw,sync —— 挂载选项,表示读写权限、同步写入
  • 192.168.222.135:/root/data —— NFS 服务器上的共享目录路径

步骤 3:重启 autofs 服务使配置生效

systemctl restart autofs

重启后,autofs 会重新读取 /etc/auto.master 和所有引用的映射文件。

步骤 4:测试直接映射是否生效

直接访问映射的目标路径:

ls /data

执行该命令时,autofs 会自动触发挂载操作,列出远程 /root/data 目录的内容。使用以下命令确认挂载已生效:

df -h | grep data

如果看到类似 192.168.222.135:/root/data 挂载在 /data 上的输出,说明直接映射配置成功。

步骤 5:验证空闲自动卸载

等待 --timeout 指定的时间(默认 300 秒,即 5 分钟)后,再次执行 df -h | grep data,如果挂载点已消失,说明 autofs 的空闲自动卸载功能正常工作。再次访问 ls /data 时,autofs 会重新触发挂载。

直接映射与间接映射的核心区别

  • 间接映射:在 /etc/auto.master 中指定一个父目录(如 /mnt),映射文件中的键是子目录名(如 nfs),最终挂载路径为 /mnt/nfs
  • 直接映射:在 /etc/auto.master 中使用 /- 作为挂载点,映射文件中的键是完整的绝对路径(如 /data),挂载点位置完全由映射文件决定
  • 适用场景:当需要将远程目录挂载到分散的、非统一父目录下的多个路径时,直接映射更加灵活

6. 多挂载点配置

一个映射文件可以管理多个挂载点,每行一个:

vim /etc/auto.nfs

data -rw,sync 192.168.222.135:/root/data

backup -rw,sync 192.168.222.136:/backup

logs -ro 192.168.222.137:/var/log

这样访问 /mnt/data、/mnt/backup、/mnt/logs 时都会自动触发对应的 NFS 挂载。

7. 常用选项说明

  • --timeout=N —— 空闲 N 秒后自动卸载,默认 300 秒
  • --ghost —— 即使未挂载也显示挂载点目录(幽灵模式)
  • -fstype=类型 —— 指定文件系统类型,如 -fstype=nfs
  • rw/ro —— 读写/只读权限
  • sync/async —— 同步/异步写入
  • hard/soft —— 硬挂载(持续重试)/ 软挂载(超时返回错误)
  • intr —— 允许中断挂起的 NFS 请求

8. 查看 autofs 状态与调试

查看当前 autofs 管理的挂载情况:

automount -m

查看 autofs 日志(日志记录在 /var/log/messages 中):

tail -f /var/log/messages | grep automount

如果自动挂载未生效,检查以下几点:

  • autofs 服务是否正常运行(systemctl status autofs)
  • /etc/auto.master 和映射文件的语法是否正确
  • NFS 服务器端共享是否已配置并可用(showmount -e 服务器IP)
  • 防火墙是否放行了 NFS 相关端口
  • 检查 /var/log/messages 中的 automount 错误信息

ISCSI服务配置

iSCSI(Internet Small Computer System Interface)是一种基于 IP 网络的存储协议,允许客户端(Initiator)通过网络访问远程存储设备(Target)上的块存储,就像访问本地硬盘一样。iSCSI 将 SCSI 命令封装在 TCP/IP 数据包中传输,适合构建低成本、跨网络的存储区域网络(SAN)。

1. 安装 iSCSI 服务端(Target)

在作为 iSCSI 存储服务器的机器上安装 targetcli 工具:

yum install targetcli -y

targetcli 是一个交互式管理工具,用于配置 iSCSI Target 的后端存储、LUN 和 ACL 等。

2. 启动 iSCSI Target 服务

启动并设置开机自启:

systemctl start target

systemctl enable target

确认服务状态:

systemctl status target

3. 使用 targetcli 配置 iSCSI Target

进入 targetcli 交互界面:targetcli

在 targetcli 中依次执行以下命令创建后端存储、LUN 和 Target:

# 1. 创建后端块存储,绑定分区/dev/sdb1
/backstores/block create demo /dev/sdb1
2. 创建iSCSI目标,自定义IQN名称
/iscsi create iqn.2019-10.com.example:storage1
3. 将后端磁盘映射为LUN
/iscsi/iqn.2019-10.com.example:storage1/tpg1/luns create /backstores/block/demo
4. 创建ACL白名单,限制指定客户端IQN访问
/iscsi/iqn.2019-10.com.example:storage1/tpg1/acls create iqn.2019-10.com.example:demokey
5. 删除自动生成的0.0.0.0全局监听,绑定本机固定IP
/iscsi/iqn.2019-10.com.example:storage1/tpg1/portals delete 0.0.0.0 3260
/iscsi/iqn.2019-10.com.example:storage1/tpg1/portals create 192.168.222.135

配置完成后,使用 exit 退出 targetcli,配置会自动保存到 /etc/target/saveconfig.json。

4. 配置防火墙

iSCSI Target 默认使用 3260 端口,需要放行:

firewall-cmd --add-port=3260/tcp --permanent

firewall-cmd --reload

5. 安装 iSCSI 客户端(Initiator)

在需要连接 iSCSI 存储的客户端机器上安装 iscsi-initiator-utils:

yum install iscsi-initiator-utils -y

6. 配置 Initiator 名称

编辑 Initiator 名称配置文件,将其设置为与 Target ACL 中一致的名称:

vim /etc/iscsi/initiatorname.iscsi

将文件内容修改为:

InitiatorName=iqn.2019-10.com.example:demokey

7. 发现 iSCSI Target

使用 iscsiadm 命令发现 Target 服务器(192.168.222.135)上的可用存储:

iscsiadm -m discovery -t sendtargets -p 192.168.222.135:3260

成功后会显示 Target 的 IQN 和 IP 地址信息。

8. 登录 iSCSI Target

使用发现到的 Target IQN 进行登录:

iscsiadm -m node -T iqn.2019-10.com.example:storage1 -p 192.168.222.135:3260 --login

登录成功后,客户端会多出一块新的磁盘设备(如 /dev/sdc),可通过 lsblk 或 fdisk -l 查看。

9. 分区与格式化 iSCSI 磁盘

对 iSCSI 磁盘进行分区和格式化,然后挂载使用:

fdisk /dev/sdc

mkfs.ext4 /dev/sdc1

mkdir /mnt/iscsi

mount /dev/sdc1 /mnt/iscsi

验证挂载是否成功:

df -h | grep iscsi

10. 设置开机自动挂载

编辑 /etc/fstab 文件,添加以下条目(注意使用 _netdev 选项,确保网络就绪后再挂载):

/dev/sdc1 /mnt/iscsi ext4 defaults,_netdev 0 0

同时设置 iSCSI 节点开机自动登录:

iscsiadm -m node -T iqn.2019-10.com.example:storage1 -p 192.168.222.135:3260 --op update -n node.startup -v automatic

11. 登出 iSCSI Target

如果需要断开 iSCSI 连接,先卸载挂载点,然后登出:

umount /mnt/iscsi

iscsiadm -m node -T iqn.2019-10.com.example:storage1 -p 192.168.222.135:3260 --logout

12. 查看 iSCSI 会话状态

查看当前所有活跃的 iSCSI 会话:

iscsiadm -m session

查看更详细的会话信息:

iscsiadm -m session -P 3

13. 常用排错命令

  • systemctl status target —— 检查 Target 服务状态
  • systemctl status iscsid —— 检查 Initiator 守护进程状态
  • journalctl -u target —— 查看 Target 日志
  • journalctl -u iscsid —— 查看 Initiator 日志
  • targetcli ls —— 查看 Target 当前所有配置
  • ping 192.168.222.135 —— 确认网络连通性

系统引导

误删/boot/grub2/grub.cfg文件修复步骤:

误删boot文件夹修复步骤:

准备 CentOS7-x86_64-DVD.iso 完整镜像

关机虚拟机,在 VMware 设置光驱挂载该 ISO,勾选「已连接、启动时连接」

右键虚拟机 → 电源 → 打开电源时进入固件

BIOS 切换到Boot选项卡,把CD-ROM Drive用+移到最顶部

按 F10 保存并重启,从光盘启动

光盘启动界面选择 Troubleshooting(故障排除)

选择 Rescue a CentOS system(救援系统)

等待加载后输入 1 选择 Continue(读写挂载原系统),回车确认

切换到原系统真实环境(chroot)

# 切换到虚拟机原有系统环境,所有命令操作真实磁盘
chroot /mnt/sysimage

此时终端前缀变为 sh-4.2#,代表进入成功。

救援 shell 先手动配网卡

# 查看网卡名称
ip a
# 启用网卡
ifup ens33
# 配置静态IP(按你VMware网段修改)
ip addr add 192.168.222.137/24 dev ens33
ip route add default via 192.168.222.2
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
# 测试外网
ping baidu.com

说明网络联通

chroot 后直接网络重装内核

chroot /mnt/sysimage
# 清理原有源缓存,走外网下载
yum clean all
yum reinstall kernel-3.10.0-1160.el7.x86_64 -y
grub2-install /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg

验证修复结果

ls /boot
# 正常输出包含 vmlinuz、grub2、标准initramfs镜像,修复成功

退出救援模式重启

# 退出chroot环境
exit
# 再次退出到救援主界面
exit

虚拟机重启,回到 BIOS 界面,把启动顺序改回Hard Drive硬盘第一启动,取消光驱 ISO 挂载,正常开机测试

System Manager

System Manager 在 Linux 系统中通常指 systemd——当今主流 Linux 发行版的初始化系统和服务管理器。systemd 负责系统启动后的第一个进程(PID 1),管理所有系统服务的启动、停止、状态监控和依赖关系。掌握 systemd 的使用是 Linux 运维的核心技能之一。

1. systemctl 基础命令

systemctl 是 systemd 的主要管理工具,用于控制服务单元(unit)的生命周期:

  • systemctl start <服务名> —— 启动指定服务
  • systemctl stop <服务名> —— 停止指定服务
  • systemctl restart <服务名> —— 重启指定服务
  • systemctl reload <服务名> —— 重新加载配置文件(不中断服务)
  • systemctl status <服务名> —— 查看服务运行状态和最近日志
  • systemctl enable <服务名> —— 设置服务开机自启
  • systemctl disable <服务名> —— 取消服务开机自启
  • systemctl is-active <服务名> —— 检查服务是否正在运行
  • systemctl is-enabled <服务名> —— 检查服务是否已启用开机自启

2. 查看服务状态详解

使用 systemctl status 可以获取服务的详细信息,输出包含以下关键字段:

  • Loaded —— 服务单元文件是否已加载,以及是否设置为开机自启(enabled/disabled)
  • Active —— 服务当前运行状态,常见值有 active (running)、active (exited)、inactive (dead)、failed
  • Main PID —— 服务主进程的进程号
  • Tasks —— 服务当前的任务/线程数
  • Memory —— 服务占用的内存量
  • CGroup —— 控制组信息,显示服务所属的 cgroup 层级

示例:

systemctl status sshd

3. 服务单元(Unit)管理

systemd 中的每个服务、套接字、挂载点等都被称为一个 Unit。常见的 Unit 类型包括:

  • .service —— 系统服务(最常用)
  • .socket —— 套接字单元,用于 socket 激活的服务
  • .timer —— 定时器单元,可替代 cron 实现定时任务
  • .mount —— 挂载点单元
  • .path —— 路径单元,监控文件或目录变化触发服务
  • .target —— 目标单元,用于将多个单元分组(类似运行级别)

查看所有已加载的 Unit:

systemctl list-units

查看所有 Unit 文件(包括未加载的):

systemctl list-unit-files

按类型筛选,例如只查看服务单元:

systemctl list-units --type=service --all

4. 服务单元文件位置与结构

systemd 的服务单元文件通常存放在以下目录:

  • /usr/lib/systemd/system/ —— 软件包安装的默认单元文件
  • /etc/systemd/system/ —— 管理员自定义或覆盖的单元文件(优先级更高)
  • /run/systemd/system/ —— 运行时生成的单元文件

一个典型的 .service 文件结构如下:

[Unit]
Description=My Custom Service
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/myapp
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=5
User=myapp
Group=myapp
[Install]
WantedBy=multi-user.target

关键字段说明:

  • [Unit] 段:Description 描述服务用途;After 指定启动顺序依赖
  • [Service] 段:Type 指定启动类型(simple/forking/oneshot/dbus/notify);ExecStart 指定启动命令;Restart 指定重启策略(no/on-success/on-failure/always);RestartSec 指定重启间隔秒数
  • [Install] 段:WantedBy 指定该服务属于哪个 target,用于控制开机自启

5. 系统目标(Target)管理

Target 是 systemd 中用于将多个单元组合在一起的概念,类似于传统 SysVinit 的运行级别(runlevel)。常见的 Target 包括:

  • poweroff.target —— 关机(对应 runlevel 0)
  • rescue.target —— 单用户救援模式(对应 runlevel 1)
  • multi-user.target —— 多用户非图形模式(对应 runlevel 3)
  • graphical.target —— 多用户图形模式(对应 runlevel 5)
  • reboot.target —— 重启(对应 runlevel 6)

查看当前默认的 Target:

systemctl get-default

设置默认启动到多用户模式(无图形界面):

systemctl set-default multi-user.target

立即切换到救援模式:

systemctl rescue

6. 日志查看(journalctl)

systemd 集成了日志管理功能,通过 journalctl 可以查看所有服务的日志:

  • journalctl -u <服务名> —— 查看指定服务的日志
  • journalctl -n 50 —— 查看最近 50 条日志
  • journalctl -f —— 实时追踪最新日志
  • journalctl --since today —— 查看今天的日志
  • journalctl -p err —— 只查看错误级别及以上的日志

7. 系统资源控制(CGroup)

systemd 通过控制组(CGroup)对服务使用的系统资源进行限制和管理。可以为每个服务设置 CPU、内存、磁盘 I/O 等资源上限:

编辑服务单元文件,在 [Service] 段添加资源限制参数:

[Service]
MemoryMax=512M
CPUQuota=50%
IOWeight=100

常用资源控制参数:

  • MemoryMax= —— 服务最大可用内存
  • MemoryHigh= —— 内存使用软限制,超过后系统会尝试回收
  • CPUQuota= —— CPU 使用配额百分比,如 50% 表示最多使用半个 CPU 核心
  • TasksMax= —— 服务最大任务/线程数
  • IOWeight= —— I/O 调度权重(100-1000)

修改后执行 systemctl daemon-reload 并重启服务使配置生效。

8. 常用排错命令

  • systemctl list-units --failed —— 列出所有启动
    失败的服务
  • systemctl reset-failed <服务名> —— 清除服务的失败状态
  • journalctl -xe —— 查看最近的系统日志和错误提示(-x 提供额外解释)
  • systemd-analyze —— 分析系统启动耗时
  • systemd-analyze blame —— 按启动耗时排序,找出最慢的服务
  • systemd-analyze critical-chain —— 显示启动关键链路的耗时

iptables

iptables 是 Linux 系统上最经典的包过滤防火墙工具,基于内核的 Netfilter 框架实现。它通过定义规则链(Chain)和规则(Rule)来控制进出系统的网络数据包,支持包过滤、网络地址转换(NAT)和数据包修改等功能。虽然新一代的 nftables 已逐渐成为主流,但 iptables 在现有生产环境中仍然广泛使用。

1. iptables 基本概念

iptables 使用表(Table)、链(Chain)和规则(Rule)三层结构来组织防火墙策略:

  • 表(Table):按功能分类,主要包括 filter(过滤)、nat(地址转换)、mangle(修改数据包)、raw(原始包处理)
  • 链(Chain):数据包在表中经过的检查点,如 INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING
  • 规则(Rule):定义匹配条件和动作(ACCEPT、DROP、REJECT、LOG 等)

最常用的 filter 表包含三条内置链:

  • INPUT —— 处理进入本机的数据包
  • OUTPUT —— 处理本机发出的数据包
  • FORWARD —— 处理经过本机转发的数据包

2. 查看当前规则

查看 filter 表的所有规则:

iptables -L -n -v

参数说明:

  • -L —— 列出规则
  • -n —— 不解析 IP 地址和端口号(显示更快)
  • -v —— 显示详细信息(包计数、字节数等)

查看指定表的规则,例如 nat 表:

iptables -t nat -L -n -v

查看规则编号(方便后续插入和删除):

iptables -L --line-numbers

3. 设置默认策略

默认策略决定了当数据包不匹配任何规则时的处理方式。建议将 INPUT 链默认策略设为 DROP,仅放行需要的流量:

iptables -P INPUT DROP

iptables -P FORWARD DROP

iptables -P OUTPUT ACCEPT

4. 常用规则示例

放行 SSH 服务(22 端口):

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

放行 HTTP 和 HTTPS 服务:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

iptables -A INPUT -p tcp --dport 443 -j ACCEPT

放行已建立的连接和相关连接(保证已建立的会话不受影响):

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

放行回环接口(lo)的流量(很多系统服务依赖本地回环通信):

iptables -A INPUT -i lo -j ACCEPT

允许来自指定 IP 段的访问:

iptables -A INPUT -s 192.168.222.0/24 -j ACCEPT

拒绝来自某个 IP 的访问并返回拒绝消息:

iptables -A INPUT -s 10.0.0.100 -j REJECT

限制 ICMP(ping)请求频率,防止 ping 洪水攻击:

iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/second -j ACCEPT

5. 规则管理操作

在指定位置插入规则(插入到第 2 条规则之前):

iptables -I INPUT 2 -p tcp --dport 8080 -j ACCEPT

删除指定规则(按编号删除,编号通过 --line-numbers 查看):

iptables -D INPUT 3

删除指定规则(按规则内容匹配删除):

iptables -D INPUT -p tcp --dport 8080 -j ACCEPT

替换指定规则(替换第 3 条规则):

iptables -R INPUT 3 -p tcp --dport 3306 -j ACCEPT

清空所有规则(谨慎使用,可能导致远程连接断开):

iptables -F

6. 网络地址转换(NAT)

iptables 的 nat 表支持源地址转换(SNAT)和目标地址转换(DNAT),常用于共享上网和端口转发。

SNAT —— 将内网 IP 转换为公网 IP,实现共享上网:

iptables -t nat -A POSTROUTING -s 192.168.222.0/24 -o eth0 -j SNAT --to-source 公网IP

如果公网 IP 是动态获取的,可以使用 MASQUERADE 替代 SNAT:

iptables -t nat -A POSTROUTING -s 192.168.222.0/24 -o eth0 -j MASQUERADE

DNAT —— 将公网端口转发到内网服务器:

iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.222.100:80

启用 IP 转发(NAT 功能需要内核支持转发):

echo 1 > /proc/sys/net/ipv4/ip_forward

永久启用 IP 转发,编辑 /etc/sysctl.conf:

net.ipv4.ip_forward = 1

执行 sysctl -p 使配置生效。

7. 规则持久化

iptables 规则默认保存在内存中,重启后会丢失。需要将规则保存到文件,并在系统启动时自动加载。

保存当前规则到文件:

iptables-save > /etc/sysconfig/iptables

从文件恢复规则:

iptables-restore < /etc/sysconfig/iptables

设置开机自动加载规则(安装 iptables-services 服务):

yum install iptables-services -y

systemctl enable iptables

systemctl start iptables

启用 iptables-services 后,系统启动时会自动从 /etc/sysconfig/iptables 加载规则。

8. iptables 与 firewalld 的关系

在 CentOS/RHEL 7 及以上版本中,firewalld 是默认的防火墙管理工具,它底层仍然使用 iptables(或 nftables)作为后端。firewalld 提供了更友好的区域(zone)和服务(service)管理方式,适合日常使用。如果习惯直接操作 iptables,可以停止 firewalld 并启用 iptables-services:

systemctl stop firewalld

systemctl disable firewalld

yum install iptables-services -y

systemctl enable iptables

systemctl start iptables

9. 常用排错命令

  • iptables -L -n -v --line-numbers —— 查看规则及编号
  • iptables -t nat -L -n -v —— 查看 NAT 规则
  • iptables -S —— 以命令格式输出所有规则(可直接复制执行)
  • iptables -Z —— 重置所有链的包计数器和字节计数器
  • iptables -F && iptables -X —— 清空所有规则并删除自定义链
  • systemctl status iptables —— 检查 iptables 服务状态
  • journalctl -u iptables —— 查看 iptables 服务日志

Apache服务配置

安装httpd:yum install httpd httpd-manual -y

开启服务:systemctl enable --now httpd

默认发布目录:cd /var/www/html

创建默认首页文件:echo hello > /var/www/html/index.html

重启 Apache 生效:systemctl restart httpd

apache主机访问控制:

编辑主配置文件:vim /etc/httpd/conf/httpd.conf

规则逻辑:

  1. Order deny,allow:先执行全部拒绝,再执行放行规则
  2. deny from all:默认拒绝所有 IP
  3. allow from 192.168.222.135:仅放行你当前客户端 IP(192.168.222.135) 效果:只有 135 这台机器能访问 /admin,其他 IP 访问会返回 403 Forbidden

检查配置语法(必做,防止重启服务失败):httpd -t

重载 httpd 服务使配置生效: systemctl reload httpd

mkdir -p /var/www/html/admin
# 新建测试页面
echo "admin page test" > /var/www/html/admin/index.html
# 修复权限防止403
chown apache:apache /var/www/html/admin -R
chmod 755 /var/www/html/admin -R

用户认证

创建密码文件与认证用户:

修改 httpd 主配置开启目录认证

1. 检查配置是否存在语法错误(必做)

httpd -t

输出 Syntax OK 代表配置无误。

2. 重启 / 重载 httpd 生效

# 平滑重载(推荐,不中断现有访问)
systemctl reload httpd
# 或完全重启服务
# systemctl restart httpd

浏览器打开:

apache虚拟主机

编辑默认虚拟主机文件

vim /etc/httpd/conf.d/default.conf

写入配置(标准 80 端口):

<VirtualHost _default_:80>
    DocumentRoot "/var/www/html"
    # 给默认站点目录开放访问权限
    <Directory "/var/www/html">
        Require all granted
    </Directory>
</VirtualHost>

新建虚拟主机配置文件

vim /etc/httpd/conf.d/vhost.conf

写入完整配置(大小写不敏感,规范建议首字母大写):

# 匹配所有网卡80端口,域名www.linux.org
<VirtualHost *:80>
    # 站点绑定域名
    ServerName www.linux.org
    # 网站根目录
    DocumentRoot "/www/www.linux.org"
    # 独立访问日志
    CustomLog "logs/www.linux.org.log" combined
</VirtualHost>
授权网站目录允许外部访问
<Directory "/www/www.linux.org">
Require all granted
</Directory>

创建网站目录与测试首页

# 新建站点目录
mkdir -p /www/www.linux.org
# 生成测试页面
echo "This is www.linux.org site" > /www/www.linux.org/index.html
# 修复目录权限,防止403禁止访问
chown -R apache:apache /www/www.linux.org
chmod -R 755 /www/www.linux.org

Linux 本机无法识别 www.linux.org,需要修改 hosts 绑定 IP(目标机 IP:192.168.222.137)

vim /etc/hosts
# 在文件末尾添加一行
192.168.222.137 www.linux.org

SELinux

1. SELinux 的三种工作模式

SELinux 有以下三种运行模式:

  • Enforcing(强制模式):默认模式,SELinux 策略生效,违反策略的操作会被拒绝并记录日志
  • Permissive(宽容模式):SELinux 策略不强制拦截,但违反策略的操作会被记录到日志中,常用于调试和策略开发
  • Disabled(禁用模式):完全关闭 SELinux,既不拦截也不记录

2. 查看 SELinux 状态

使用 getenforce 命令快速查看当前模式:

getenforce

输出 Enforcing、Permissive 或 Disabled。

3. 临时切换 SELinux 模式

使用 setenforce 命令可以在 Enforcing 和 Permissive 之间临时切换,无需重启:

切换到宽容模式:

setenforce 0

切换到强制模式:

setenforce 1

注意:setenforce 只能在 Enforcing 和 Permissive 之间切换,无法从 Disabled 切换到其他模式(需要修改配置文件后重启)。临时切换在系统重启后会恢复到配置文件中的设定值。

4. 永久修改 SELinux 模式

SELinux 的永久配置保存在 /etc/selinux/config 文件中:

vim /etc/selinux/config

修改 SELINUX 参数的值:

将 SELINUX=enforcing 修改为 permissive 或 disabled 后,需要重启系统才能生效。如果是从 Disabled 切换回 Enforcing,系统重启时会对所有文件重新标记安全上下文,这个过程可能需要几分钟。

SELINUXTYPE 通常保持为 targeted,这是针对关键系统服务进行保护的目标策略,也是生产环境中的推荐配置。

5. 安全上下文(Security Context)

SELinux 为系统中的每个对象(文件、目录、进程、端口等)分配一个安全上下文标签。安全上下文由四个字段组成,格式为:

用户:角色:类型:级别

查看文件和目录的安全上下文:

ls -Z

例如查看 /var/www/html 的安全上下文:

ls -Zd /var/www/html

输出示例:

drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html/

其中 httpd_sys_content_t 是类型字段,这是 SELinux targeted 策略中最关键的组成部分。只有具有匹配类型的进程才能访问对应类型的文件。

查看进程的安全上下文:

ps auxZ | grep httpd

常见类型字段含义:

  • httpd_sys_content_t —— Apache/Nginx 可读取的 Web 内容
  • httpd_sys_rw_content_t —— Apache/Nginx 可读写的 Web 内容
  • public_content_t —— 可被多个服务(如 NFS、FTP、HTTP)共享访问
  • ssh_home_t —— SSH 用户家目录相关文件

6. 修改文件的安全上下文

临时修改文件的安全上下文(restorecon 或重启后可能恢复):

chcon -t httpd_sys_content_t /path/to/file

递归修改目录及其内容:

chcon -R -t httpd_sys_content_t /var/www/mysite/

永久修改(将规则写入策略,不会被 restorecon 覆盖):

semanage fcontext -a -t httpd_sys_content_t "/var/www/mysite(/.*)?"

restorecon -Rv /var/www/mysite/

建议优先使用 semanage + restorecon 组合,而不是 chcon,因为 chcon 的修改在文件系统 relabel 后会丢失。

7. SELinux 布尔值(Booleans)管理

SELinux 提供了大量布尔值开关,用于在不修改策略的情况下调整特定功能的访问权限。使用 getsebool 和 setsebool 进行管理。

查看所有布尔值:

getsebool -a

查看特定布尔值(如 httpd 相关):

getsebool -a | grep httpd

临时开启某个布尔值(重启后失效):

setsebool httpd_enable_homedirs on

永久开启(加 -P 参数):

setsebool -P httpd_enable_homedirs on

常见布尔值示例:

  • httpd_enable_homedirs —— 允许 Apache 访问用户家目录
  • httpd_can_network_connect —— 允许 Apache 发起网络连接(如连接后端数据库)
  • nfs_export_all_ro —— 允许 NFS 以只读方式导出所有文件
  • nfs_export_all_rw —— 允许 NFS 以读写方式导出所有文件
  • ftpd_full_access —— 允许 FTP 守护进程完全访问系统
  • named_write_master_zones —— 允许 DNS 服务写入主区域文件
  • virt_use_nfs —— 允许虚拟机访问 NFS 存储

8. SELinux 排错与日志分析

当服务无法正常工作时,如果怀疑是 SELinux 导致的问题,可以通过以下方式排查。

首先临时切换到 Permissive 模式验证是否真的是 SELinux 导致的:

setenforce 0

如果此时服务恢复正常,说明确实是 SELinux 策略拦截了操作。排查完毕后记得恢复:

setenforce 1

SELinux 的审计日志记录在 /var/log/audit/audit.log 中。可以使用 ausearch 筛选 SELinux 相关条目:

ausearch -m avc -ts recent

如果安装了 setroubleshoot 工具包,可以使用 sealert 分析审计日志并生成可读的排错建议:

yum install setroubleshoot -y

sealert -a /var/log/audit/audit.log

sealert 不仅会指出被拦截的操作,还会给出具体的修复命令(如添加布尔值或修改上下文),是 SELinux 排错的首选工具。

实时查看 SELinux 拒绝事件:

journalctl -f | grep -i selinux

9. SELinux 与常见服务的配合

SELinux 与 Apache 配合:

当 Apache 需要访问非默认目录时,必须设置正确的安全上下文:

semanage fcontext -a -t httpd_sys_content_t "/www(/.*)?"

restorecon -Rv /www

如果 Apache 需要连接后端服务(如数据库或反向代理),需开启网络连接布尔值:

setsebool -P httpd_can_network_connect on

SELinux 与 NFS 配合:

NFS 共享目录可能被 SELinux 限制访问,需要开启相关布尔值:

setsebool -P nfs_export_all_ro on

setsebool -P nfs_export_all_rw on

SELinux 与 SSH 配合:

如果修改了 SSH 默认端口(22),需要让 SELinux 识别新端口:

semanage port -a -t ssh_port_t -p tcp 2222

10. 常用排错命令总结

  • getenforce —— 查看当前 SELinux 模式
  • sestatus —— 查看 SELinux 详细状态
  • setenforce 0/1 —— 临时切换 Permissive/Enforcing 模式
  • ls -Z —— 查看文件/目录的安全上下文
  • ps auxZ —— 查看进程的安全上下文
  • chcon -t <type> 文件 —— 临时修改安全上下文
  • restorecon -Rv 目录 —— 恢复默认安全上下文
  • semanage fcontext -l —— 列出所有文件上下文映射规则
  • semanage port -l —— 列出所有端口上下文映射规则
  • getsebool -a —— 列出所有布尔值
  • setsebool -P <布尔值> on/off —— 永久设置布尔值
  • ausearch -m avc -ts recent —— 查看最近的 SELinux 拒绝事件
  • sealert -a /var/log/audit/audit.log —— 分析审计日志并给出修复建议
  • journalctl -f | grep -i selinux —— 实时监控 SELinux 相关日志
全面Linux系统管理课件 本文还有配套的精品资源,点击获取 简介:Linux作为强大的开源操作系统,提供了广泛的应用和服务。本文分享的Linux课件包含系统管理、命令行操作、编程接口、网络服务、安全配置等多个关键知识点。内容从基础知识覆盖到高级概念,旨在帮助用户全面掌握Linux系统的使用和管理,从命令行操作到系统安全,从shell脚本编程到进程管理,还包括了网络服务配置、软件安装、用户和权限管理等... 阅读详情

相关推荐

【爬虫】Python实现爬取淘宝商品信息(超详细)

项目基于Python的第三方库Selenium模拟浏览器运行、PyQuery解析和操作HTML文档,获取淘宝平台中某类商品的详细信息(商品标题、价格、销量、商铺名称、地区、商品详情页链接、商铺链接等),并基于第三方库openpyxl建立、存储于Excel表格中。# 全局变量count = 1 # 写入Excel商品计数# 启动ChromeDriver服务# 关闭自动测试状态显示 // 会导致浏览器报:请停用开发者模式# 把chrome设为selenium驱动的浏览器代理;# 窗口最大化。

qq_46315152的博客 4万+

Linux 系统管理

ps 命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。crontab 命令被用来提交和管理用户的需要周期性执行的任务,与 windows 下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动 crond 进程,crond 进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。kill 可将指定的信息送至程序。

L08130421的博客 1604

VSCode 1.85便携版安装与配置:解决远程服务器glibc版本过低报错的保姆级指南

本文详细介绍了如何通过VSCode 1.85便携版解决远程服务器glibc版本过低导致的兼容性问题。通过环境隔离和版本固化的方法,开发者可以在老旧服务器上稳定运行Remote-SSH插件,同时保留主力VSCode的配置。文章提供了从下载安装到深度配置的完整指南,帮助用户快速搭建稳定的开发环境。

weixin_30279315的博客 576

linux基本命令之系统管理命令

不管是在windows还是Linux系统要校验某台服务器是否可以ping通,都可以使用命令,如果要加上端口的,Linux可以使用telnet命令。① lo --- loopback 本地回环接口,这个网卡是虚拟的,每一台服务器上都有一个这样的网卡。inet 127.0.0.1/8 这个网卡的ip地址基本上都是127.0.0.1,自己、本身的ip地址,是用来检测自身的。而 kill 则有局限性,例如后台进程,守护进程等。其中top 命令的使用:---系统监控命令,查看有没有到瓶颈---有就需要扩容。

m0_52165864的博客 4271

YOLOv11 改进策略:引入 NWD 损失函数提高小目标检测精度

YOLO(You Only Look Once)是一种实时目标检测算法,能够有效地预测图像中多个物体的边界框和类别概率。其高效性使它成为自动驾驶、视频监控等领域的理想选择。NWD 是一种基于 Wasserstein 距离的损失函数,其通过归一化处理,更好地评估预测框和真实框之间的几何偏差。这种方法不仅仅关注重叠区域,而且考虑中心点和尺度信息,提高了对小目标的敏感度。

走向CTO的路上... 2001

华为OD机试真题 新系统【小学英语老师批改作文】

华为OD机试 新系统真题【小学英语老师批改作文】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【小学英语老师批改作文】

qq_45776114的博客 922

linux系统管理

如果你只是想尝试 Linux,而不想改变你当前系统的设置,可以使用虚拟机软件(如 VirtualBox、VMware Workstation、Parallels Desktop)在你的操作系统上安装 Linux。一旦导出虚拟机,你可以将生成的 OVF 文件和相关的虚拟机文件复制到安全的位置。- 在 VMware Workstation 中,选择你要备份的虚拟机,然后点击菜单中的 "文件" -> "导出为 OVF"。- 首先,备份你的重要数据,因为双系统安装可能会涉及到对硬盘分区的调整,存在一定的风险。

JIANBINGLING的博客 760

Oracle EBS Interface/API(49)- AP付款取消API

Oracle EBS AP付款取消API介绍和简单实例

陈显平的专栏-Oracle EBS 849

什么是linux系统管理指令,Linux必学的系统管理命令

本文中介绍一些实用又常用的Linux或Unix命令,这些是Linux系统管理员们平常使用的命令。本文不是什么完整列表,而是简要地列出了需要时派得上用场的命令。下面跟着学习啦小编一起来了解一下吧。Linux必学的系统管理命令df1.作用df命令用来检查文件系统的磁盘空间占用情况,使用权限是所有用户。2.格式df [options]3.主要参数-s:对每个Names参数只给出占用的数据块总数。-a:递...

weixin_36070998的博客 711

【ROS2】手眼标定:moveit2_handeye_calib使用详解

moveit2_handeye_calib MoveIt2 官方的 手眼标定功能包,包含标定插件、图形化界面和示例程序。提供基于 ArUco/ChArUco 标定板的采集与求解功能。标定板下载aruco在线生成器。

郭老二 247

数字IC/FPGA 秋招知识点不全面整理

数字IC/FPGA 秋招知识点不全面整理

w0shishabi的博客 7866

linux系统管理一课一得

大二开课,跟老师学+自学,一开始看老师分享的培训课程深入学习,虽然知道学习内容且有计划,但总是学着学着就学不下去(课程冗长没有成就感,知识理论不太好接受,学的蛮难过的),最后,三天打鱼两天晒网。Linux系统管理是一个广泛的领域,涵盖了许多方面,包括系统配置、用户管理、权限管理、软件包管理、文件系统管理、进程管理、服务管理、安全性和性能优化等。3. **权限管理**:掌握Linux文件权限的概念,包括读取、写入和执行权限,并学会使用chmod和chown命令来更改文件和目录的权限。

2201_75464762的博客 2233

Rockchip开发系列 - 3.4.GPIO扩展芯片AW95xx和PCA953X(2)

Rockchip开发系列 - 3.3.GPIO扩展芯片AW95xx和PCA953X(2)

fulinux的博客 1000

一文掌握linux系统管理命令

linux系统管理命令详解。

仅以此博客记录日常学习工作中所思所得,水平有限,难登大雅,万望海涵。 1749

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

linux系统管理实验报告总结_Linux系统:常用Linux系统管理命令总结

一、目录指令1、创建目录:make directorymkdir 目录名称 //mkdir spring,创建一个spring文件夹 mkdir -p file/file/file //递归创建多级别关系目录 mkdir dir/newdir //不使用递归 mkdir -p dir/newdir/newd...

weixin_36018419的博客 1957

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Linux系统管理特性

Linux系统管理特性 1.补全 命令补全:以给定的字符串开头,敲击Tab键,如果是能够惟一标识一个命令文件,则直接补全,如果不能惟一标识,则需要再次敲击Tab键,给出以字符串开头的命令列表。 路径补全:在给定的起始路径下,以对应路径下的打头字符串来逐一匹配起始路径下的每一个文件。 敲击Tab键 如果可以惟一识别:则直接补全 如果不能惟一识别:则再次敲击Tab键给出文件列表 ...

Lierst的博客 722

如何成为合格的Linux系统管理员

如何成为合格的Linux系统管理员 文章来源:http://www.**********.com/www/news/...ow.asp?id=25530在很多国内的自由LINUX论坛上,我们都可以发现有很多LINUX爱好者提出的各种各样的问题。其中包括LINUX安装、故障解决、用户管理等等问题。在这些问题当中,最突出的就有如何成为一名合格的LINUX系统管理员,还有就是成为一名LINUX系统管

hustbest的专栏 1771

如何成为合格的LINUX系统管理员

在很多国内的自由LINUX论坛上,我们都可以发现有很多LINUX爱好者提出的各种各样的问题。其中包括LINUX安装、故障解决、用户管理等等问题。在这些问题当中,最突出的就有如何成为一名合格的LINUX系统管理员,还有就是成为一名LINUX系统管理员都需要具备什么样的基本条件。尽管目前使用LINUX的朋友很多,可是真正能有条件用LINUX来构造网络并提供网络服务的人并不多,大多数LINUX爱好者是在校大学生和一些从WINDOWS投入LINUX怀抱的初学者。成为一名合格的LINUX系统管理员我想是很多LINUX

rqaz123的博客 747

Linux系统管理员有几个,Linux系统管理员必备的12个系统工具

Linux系统管理员必备的12个系统工具1. acct or psacctacct 也称 psacct(取决于如果你使用 apt-get 还是 yum)可以监控所有用户执行的命令,包括 CPU时间和内存占用。一旦安装完成后你可以使用命令 sa 来查看统计。2. whowatch类似acct,这个工具监控系统上所有的用户,并允许你实时查看他们正在执行的命令及运行的进程。它将所有进程以树状结构输出,这...

weixin_34544513的博客 706

【图书介绍】】几本Linux系统管理与运维图书

Linux系统管理与开发,是IT领域比较稳定的职业发展方向,本文介绍几本Linux系统管理与开发方面的图书。

夏天又到了的专栏 1589

linux系统管理Linux系统实验,实验4-Linux系统管理实验.pdf

实验4-Linux系统管理实验.pdf (7页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!15.9 积分东北大学秦皇岛分校——Linux 操作系统实验指导书 1 NEUQ BXS 实验 4 Linux 系统管理实验 1. 实验目的 (1) 掌握 Linux 初步的系统管理 (2) 会在 Linux 下安装各种软件 (3) 学会使用 vi 编辑器 2....

weixin_34364239的博客 540
上一篇: 云计算运维第4课
下一篇: 【负载均衡与高可用】
insertYam
博客等级 码龄3年 2粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值