标签: 系统运维

  • Debian 13 配置第二块网卡并设置默认路由优先级

    在服务器或虚拟机环境中,服务器需要使用 双网卡结构,例如:

    • 一张卡走业务网络
    • 一张卡走管理网络
    • 或者一张主用,一张备用

    一、确认网卡是否识别

    执行:

    ip a

    如果看到类似:

    ens33:
    ens37:

    说明第二块网卡已经被系统正常识别。

    二、配置第二块网卡

    编辑网络配置文件:

    nano /etc/network/interfaces

    完整配置如下:

    # The primary network interface
    allow-hotplug ens33
    iface ens33 inet dhcp
        metric 100
    # The second network interface
    auto ens37
    iface ens37 dhcp
        metric 300

    三、什么是 metric

    在 Linux 中:

    metric 越小,优先级越高

    例如:

    metric含义
    0最高优先级
    100
    300
    1000+极低

    四、重启网络使配置生效

    systemctl restart networking

    五、验证默认路由是否正确

    查看路由表:

    ip route

    正常应显示:

    default via 172.16.1.1 dev ens37 metric 100
    default via 172.17.1.1 dev ens33 metric 300

    验证真实出口:

    ip route get 8.8.8.8

    如果看到:

    dev ens33

    所有默认流量已经从主网卡 ens33 出口走

  • Red Hat Enterprise Linux 10 更新排错:403 权限错误的排查与处理

    在日常的 Linux 运维工作中保持系统更新是至关重要的。最近在维护 Red Hat Enterprise Linux (RHEL) 10 系统时,我遇到了一个让人头疼的问题:执行 dnf update 命令时,系统反复报出“Status code: 403 Forbidden”的错误。尽管 subscription-manager 显示系统已注册,但软件仓库的访问权限似乎被拒绝了。

    1. 问题现象:dnf update 403 错误

    我在终端执行系统更新命令 dnf update 时,出现了以下错误信息:

    dnf update

    系统报错:

    Errors during downloading metadata for repository 'rhel-10-for-x86_64-appstream-rpms':
      - Status code: 403 for https://cdn.redhat.com/content/dist/rhel10/10/x86_64/appstream/os/repodata/repomd.xml
    Error: Failed to download metadata for repo 'rhel-10-for-x86_64-appstream-rpms': Cannot download repomd.xml: All mirrors were tried

    报错中的“Status code: 403”是关键线索。在 HTTP 协议中,403 状态码意味着“权限被禁止”。这表明我的请求已成功发送至 Red Hat 服务器,但服务器因权限问题拒绝了我的访问。

    2. 初步排查

    既然是权限问题,我首先想到了系统订阅状态。执行 subscription-manager status 命令后,结果显示一切正常:

    subscription-manager status
    Overall Status: Registered

    这让我陷入了困惑。系统明明显示已注册,无法访问官方仓库?这说明本地的注册信息可能存在异常或缓存失效。

    为了尝试修复,我决定重新注册 Insights 客户端:

    insights-client --unregister
    insights-client --register

    但新的问题出现了:

    Machine-id found, insights-client can not be registered. Please, unregister insights-client first

    系统中的某些残留信息阻止了重新注册,即使我已尝试注销。这进一步证实了问题出在本地已损坏或过时的注册数据上。

    3. 解决步骤:彻底清除并重新注册

    步骤一:清除本地订阅数据

    使用 subscription-manager clean 命令,该命令会移除所有本地存储的订阅和授权信息

    subscription-manager clean

    执行后,终端会返回 All local data removed,这表明旧的、可能已损坏的授权数据已经被彻底清除。

    步骤二:重新注册系统

    清除数据后,系统将处于未注册状态。我们可以使用 subscription-manager register 命令进行重新注册,并输入正确的 Red Hat 账户凭据。

    subscription-manager register

    系统会提示输入用户名和密码,注册成功后会返回新的系统 ID:

    Registering to: subscription.rhsm.redhat.com:443/subscription
    Username: <你的 Red Hat 账户用户名>
    Password: <你的 Red Hat 账户密码>
    The system has been registered with ID: ...

    步骤三:验证更新

    完成重新注册后,再次执行 dnf update。这次,系统终于能够顺利连接到 Red Hat 软件仓库,并开始下载元数据和软件包。

    dnf update
    
    Updating Subscription Management repositories.
    Red Hat Enterprise Linux 10 for x86_64 - BaseOS (RPMs)   

    问题完美解决。

  • Windows 系统使用 Robocopy 高效备份文件夹

    如果你想快速又稳定地复制电脑里的某个文件夹(比如 D 盘中的某个目录)到另一个位置,那么 Windows 自带的 Robocopy 工具会是你的得力助手。它比你平时拖动复制文件强大得多,能够处理各种细节,让备份变得更加高效、省心。

    一、设置命令行编码

    在使用 Robocopy 命令之前,建议你先在命令行窗口运行以下命令:

    chcp 65001

    这会将当前命令行窗口的字符编码设置为 UTF-8,避免中文路径或文件名出现乱码问题。

    二、完整保留文件权限的复制命令

    要镜像复制一个文件夹并保留所有文件元数据(包括权限信息),可以使用这个命令:

    robocopy "D:\AAA" "E:\AAA-backup" /MIR /COPY:DATS /R:3 /W:5 /MT:8

    这个命令会将 D:\AAA 文件夹完整镜像复制E:\AAA-backup,确保目标文件夹是源文件夹的精确副本,包含安全信息。

    参数解析:

    使用 /COPY:DATS 通常需要管理员权限才能成功复制权限。否则,可能会出现权限复制失败的情况。

    • "D:\AAA":这是源目录,即你要复制的原始文件夹。
    • "E:\AAA-backup":这是目标目录,文件将复制到这里。
    • /MIR:启用镜像模式。目标目录将与源目录保持完全一致——包括新增、修改和删除的内容。请注意:此参数可能会删除目标目录中存在但源目录中没有的文件,务必小心使用。
    • /COPY:DATS:指定要复制的内容包括:
      • D:数据(文件内容)
      • A:属性(如只读、隐藏等)
      • T:时间戳(创建、修改时间)
      • S:安全信息(即 NTFS 权限)
    • /R:3:失败时最多重试 3 次。
    • /W:5:每次重试之间等待 5 秒。
    • /MT:8:启用 8 线程并发复制,可以显著提升性能,尤其是在处理大量小文件或大文件时。

    三、无需复制权限的轻量级备份命令

    如果你不需要保留文件权限,可以使用一个更轻量级的命令:

    robocopy "D:\AAA" "E:\AAA-backup" /MIR /COPY:DAT /R:3 /W:5 /MT:8

    参数解析:

    使用 /COPY:DAT 通常不需要管理员权限,兼容性更好,适合普通用户。

    • "D:\AAA":你的源目录
    • "E:\AAA-backup":你的目标目录
    • /MIR:启用镜像模式,使目标目录与源目录精确匹配。同样需要注意,这可能会删除目标目录中不存在于源目录的文件。
    • /COPY:DAT:指定要复制的内容包括:
      • D:数据(文件内容)
      • A:属性
      • T:时间戳
    • /R:3:失败时最多重试 3 次。
    • /W:5:每次重试之间等待 5 秒。
    • /MT:8:启用 8 线程并发复制,以提高性能。

    四、如何选择 /COPY:DATS 还是 /COPY:DAT

    你的选择取决于你的具体需求:

    • 选择 /COPY:DATS(完整权限,需要管理员权限),适用于:
      • 备份包含重要权限设置的文件(如服务器配置文件、用户资料、共享目录)。
      • 需要在目标目录中完全还原访问控制的场景。
    • 选择 /COPY:DAT(不保留权限,适用于一般用户),适用于:
      • 个人数据备份、日常同步。
      • 不关心权限保留,只关注文件内容和属性。
      • 在权限不足无法复制 ACL(访问控制列表)的环境中。

    五、生成日志,方便备份追踪与排错

    如果希望保留哪些文件被复制、跳过或出错,可以使用下面这个更推荐的写法:

    robocopy "D:\AAA" "E:\AAA-backup" /MIR /COPY:DAT /R:3 /W:5 /MT:8 /LOG:"E:\backup-log.txt"

    如果希望保留所有历史记录,并且实时查看输出信息,可以使用下面这个更推荐的写法:

    robocopy "D:\AAA" "E:\AAA-backup" /MIR /COPY:DAT /R:3 /W:5 /MT:8 /LOG+:"E:\backup-log.txt" /TEE /NP

    常用日志参数说明:

    • /LOG:"路径":将输出写入指定的日志文件(覆盖原内容)。
    • /LOG+:"路径":将输出追加到现有日志文件中,避免覆盖历史记录。
    • /TEE:在命令行中显示的同时写入日志文件,便于观察进度。
    • /NP:不显示进度百分比,使日志更简洁易读。