AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-20143

Maestro's questions

Martin Hope
Maestro
Asked: 2024-01-31 09:13:40 +0800 CST

哪些文件系统支持 C 属性?

  • 9

在 BTRFS 文件系统上,您可以使用 file 属性禁用文件的 CoW C,如下所示:

chattr +C filename

我预计这也适用于 ZFS,因为它也是一个 CoW 文件系统,但无法设置该属性(也许 ZFS 没有 CoW 就无法运行)。

那么哪些文件系统完全支持C文件属性呢?XFS 或 BCacheFS 等其他文件系统是否也遵循该标志,或者 BTRFS 是唯一这样做的文件系统吗?


上下文:我创建了一个安装虚拟机的程序,当它检测到主机文件系统是 BTRFS 时,它会为包含虚拟磁盘映像的文件夹禁用 CoW(因为否则会引入性能问题)。我将相同的代码应用于 ZFS、XFS 和 BCacheFS,但必须删除 ZFS,因为它无法设置属性。现在我怀疑是否也需要排除 XFS 和 BCacheFS。

filesystems
  • 1 个回答
  • 143 Views
Martin Hope
Maestro
Asked: 2023-05-17 05:46:30 +0800 CST

有什么工具可以从 bash 执行 ioctl() 吗?

  • 6

我尝试ioctl()从 bash 拨打电话。这在 C 语言中很容易做到,因此有一些工具 ( https://github.com/jerome-pouiller/ioctl ) 包装了此功能。

但这会使我的脚本的分发变得更加困难,因为我必须与它一起分发该工具。

Debian APT 存储库中是否已经包含可以执行相同操作的任何其他工具?这样我就可以apt install从脚本中做一个简单的?

debian
  • 1 个回答
  • 40 Views
Martin Hope
Maestro
Asked: 2023-05-05 04:42:29 +0800 CST

如何“预测”一个 DHCP IP 地址?

  • 5

在从我的脚本启动 VM 之前,我需要弄清楚它将获得哪个 IP 地址。

所以我做了:

dhclient <interface>

这是有效的,因为dhclient使用指定接口的 MAC 地址macvtap,并从 DHCP 服务器返回我的 IP 地址。

这不是万无一失的解决方案,因为可能有些人家里的路由器并不总是为相同的 MAC 返回相同的 IP。但是我拥有的每台路由器都可以,所以如果它适用于 99% 的情况,那对我来说就足够了。

但问题是它还dhclient更改了本地配置,因为它认为我想在主机上实际使用该地址。有一个-n标志可以防止这种情况发生,但 Debian 或大多数其他发行版不支持它。

那么,仅询问 DHCP 服务器它计划为某个 MAC 地址提供哪个 IP 而无需实际修改主机上的任何设置的最佳方法是什么?

dhcp
  • 2 个回答
  • 72 Views
Martin Hope
Maestro
Asked: 2023-05-03 01:14:52 +0800 CST

几个小时后 Macvtap 连接丢失了吗?

  • 6

我像这样设置了一个 macvtap 界面:

ip link add link eth0 vlan type macvlan mode bridge
ip address add 10.0.0.17 dev vlan
ip link set dev vlan up
ip route flush dev eth0
ip route flush dev vlan
ip route add 10.0.0.0/24 dev vlan metric 0
ip route add default via 10.0.0.1
ip link add link eth0 name vtap address xx:xx:xx:xx:xx:xx type macvtap mode bridge
ip link set vtap up
ip address flush eth0
ip address flush vtap
dhclient -v vtap
ip address flush vtap

它可以正常工作几个小时。但在那之后,任何与 DHCP (macvtap) IP 的连接都将开始转至主机。因此,如果我在端口 80 连接到 IP,我将看到主机而不是 VM 提供的页面。

我试图理解为什么它停止工作。起初我以为 DHCP 租约可能已过期,并且dhclient不会续订。但是leasetime是24小时,这个问题比那个早,有时不到10小时。

那么是什么导致macvtap界面停止工作呢?

networking
  • 1 个回答
  • 37 Views
Martin Hope
Maestro
Asked: 2023-04-18 23:14:51 +0800 CST

后台进程是否有性能损失?

  • 6

如果我做:

sleep 1 

相对

sleep 1 & wait $!

生成前台进程与后台进程的 CPU 使用率会有什么不同吗?还是两条线的性能完全相等?

process
  • 2 个回答
  • 60 Views
Martin Hope
Maestro
Asked: 2023-04-18 11:28:27 +0800 CST

停止未调用 init rc.d 服务

  • 5

我有一个非常简单的 SysVinit 服务/etc/rc.d:

#!/bin/bash

PIDFILE="/var/run/test.pid"

status() {
  if [ -f "$PIDFILE" ]; then
    echo 'Service running'
    return 1
  fi
  return 0
}

start() {
  if [ -f "$PIDFILE" ] && kill -0 "$(cat "$PIDFILE")"; then
    echo 'Service already running'
    return 1
  fi
  echo 'Starting...'
  test & echo $! > "$PIDFILE"
  return 0
}

stop() {
  if [ ! -f "$PIDFILE" ] || ! kill -0 "$(cat "$PIDFILE")"; then
    echo 'Service not running'
    return 1
  fi
  echo 'Stopping...'
  kill -15 "$(cat "$PIDFILE")" && rm -f "$PIDFILE"
  return 0
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  status)
    status
    ;;
  restart)
    stop
    start
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
esac

当系统启动时,它会启动服务。

但是当系统停止时,它永远不会调用停止命令。我能想到的唯一原因是系统认为该服务未运行或未正确启动。

但是这样做有什么要求呢?

  • 您是否需要为启动命令返回一个特殊的退出代码?
  • 我需要创建一个文件来/var/lock/subsys表明它是活动的吗?
  • 还有什么可能导致系统认为服务没有启动?
init
  • 1 个回答
  • 28 Views
Martin Hope
Maestro
Asked: 2022-06-10 11:16:00 +0800 CST

禁用用户态代理时从容器访问主机端口

  • 0

我在桥接网络中有一个容器。它可以毫无问题地到达主机,并连接到主机上的每个端口,除了由其他容器发布的端口。

我禁用了 userland 代理,所以我认为这可能与 docker 如何设置 iptable 规则有关。

有没有一种简单的方法可以让容器到达其他容器发布的端口(在不同的桥接网络中运行)?

我想避免将两个容器放在同一个网络中,或者切换到主机网络。

docker
  • 1 个回答
  • 144 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve