Linux 中的 networkctl 命令

networkctl 是一个用于管理和监控网络接口和连接状态的命令行工具,它是 systemd-networkd 服务的一部分。systemd-networkd 是一个网络管理工具,用于配置和管理网络接口,而 networkctl 提供了查看和管理这些接口的命令行接口。 1. 安装 networkctl 是 systemd-networkd 提供的命令行工具,用于管理和监控由 systemd-networkd 管理的网络接口和连接状态。它提供了接口状态查看、配置重载、连接控制等功能,适合在基于 systemd 的 Linux 发行版(如 Ubuntu Server、Debian、Fedora 等)中使用。 1. 基本命令 (1)列出所有网络接口 networkctl list 输出示例: IDX LINK TYPE OPERATIONAL SETUP 1 lo loopback carrier unmanaged 2 eth0 ether routable configured 3 wlan0 wlan no-carrier configuring IDX:接口索引号。 LINK:接口名称(如 eth0、wlan0)。 TYPE:接口类型(ethernet、wlan、loopback 等)。 OPERATIONAL:当前操作状态: routable:已配置并可路由(正常工作)。 no-carrier:无物理连接。 degraded:部分功能不可用(如 DHCP 失败)。 off/unmanaged:未管理。 SETUP:配置状态: configured:已通过 networkd 配置。 unmanaged:不由 networkd 管理。 configuring:正在配置(如 DHCP 获取中)。 (2)查看单个接口的详细信息 networkctl status eth0 输出示例: ...

July 10, 2023 · 2 min · 272 words

Linux 命令行:`flock` 文件锁

一、flock 基础命令格式 flock [选项] <文件|文件描述符> <命令> # 或 flock [选项] <文件|文件描述符> -c <命令字符串> 二、核心选项及示例说明 1. -s (共享锁 Shared Lock) 作用 获取共享锁(读锁),允许多进程同时读取,但阻止排他锁。 场景 需要多个进程同时读取某个文件,但要求写入操作互斥。 示例 # 两个终端同时运行此命令不会阻塞 flock -s data.lock -c "cat data.txt; sleep 5" 2. -x (排他锁 Exclusive Lock ) 作用 获取排他锁(写锁),禁止其他进程获取任何类型的锁。 场景 需要对文件进行写入操作时,保证数据一致性。 示例 # 第二个进程会阻塞直到第一个完成 flock -x log.lock -c "echo 'New log entry' >> app.log; sleep 3" 3. -n (非阻塞 Non-blocking) 作用 非阻塞模式。若无法立即获取锁,立即失败并退出,不会等待。 场景 快速判断资源是否可用,无需等待。 示例 if flock -n 200; then echo "Got lock, doing work..." sleep 2 else echo "Resource busy, exiting." fi 200>data.lock 4. -w <秒数> (超时等待 Timeout) 作用 指定等待锁的超时时间。超过设定时间仍无法获取锁则放弃。 ...

July 3, 2023 · 2 min · 308 words