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-91283

user149408's questions

Martin Hope
user149408
Asked: 2024-11-21 05:02:07 +0800 CST

systemd RequiresMountsFor 在不存在的目录上如何表现?

  • 5

systemd 单元文件中的选项RequiresMountsFor=要求在单元启动之前挂载指定的路径。

据我所知,参数可以是挂载点以及该挂载点下的任何目录。例如,如果 BIND 的区域文件位于/etc/bind其/etc自己的文件系统中,则RequiresMountsFor=/etc或都将实现所需的结果:BIND 只有在挂载并可用RequiresMountsFor=/etc/bind时才会启动。/etc/etc/bind

现在我想知道如果RequiresMountsFor=指定一个不存在的路径会发生什么。例如,如果fstab中有/和的条目,/etc但 下方没有任何内容/etc, 和RequiresMountsFor=/etc/this/path/does/not/exist引用 中不存在的路径/etc。

这是否会导致设备等待/etc挂载(因为它是路径中的最后一个挂载点)?如果是这样,设备最终会在/etc挂载后启动吗?还是会因为/etc/this/path/does/not/exist找不到而失败?

这可能与单元接受参数有关,例如[email protected],它具有RequiresMountsFor=/etc/postgresql/%I /var/lib/postgresql/%I。如果一个集群的数据文件被移走,则在该集群上调用该单元时,第二条路径将指向任何地方。

systemd
  • 1 个回答
  • 19 Views
Martin Hope
user149408
Asked: 2024-11-15 04:31:41 +0800 CST

手动添加到配置文件的 BIND 区域未出现在 Webmin 中

  • 5

我正处于重建一个包含 BIND 和 Webmin 的系统的过程中。

BIND 的区域文件位于外部磁盘上,在之前的设置中运行良好。

从头开始安装服务器后,我进入 webmin 并编辑/etc/bind/named.conf.default-zones,添加区域文件的条目,就像在旧设置中一样,然后重新启动 BIND。

如果我查询其中一个区域(使用 nslookup 和第一个设置server 127.0.0.1),我就可以解析这些区域中的名称。

但是,Webmin 告诉我此名称服务器没有定义 DNS 区域。通过 Webmin 重新启动 BIND、重新加载 Webmin 模块甚至重新启动服务器都不起作用。

似乎只有 Webmin 有问题,因为查询区域有效。如何让这些区域文件显示在 Webmin 中?

bind
  • 1 个回答
  • 10 Views
Martin Hope
user149408
Asked: 2024-11-12 03:50:46 +0800 CST

围绕现有磁盘重建 Linux 系统时处理 gid 冲突

  • 5

我目前正在重建 Linux 系统,迁移到新的发行版(Ubuntu 24.04)。

我有一个磁盘,里面有几 TB 的用户数据,我想保留这些数据。该磁盘包含一个带有只读快照的 btrfs 文件系统,这限制了我调整磁盘内容的选项(我无法轻松更改只读快照)。

现在,新的 Linux 发行版默认带有一些组,这些组的 ID 从 1000 开始,并且对系统具有权限。然而,这些组与我在旧安装中使用的组 ID 相同,并且对 btrfs 文件系统具有权限。由于只读快照,我无法轻松更新用户数据上的组 ID。

有人向我指出了 ID 映射的坐骑,但没有关于如何使用它们的有用说明。

我是否可以将文件系统映射为文件系统 gid 1000 对应于系统 gid 1024?我该如何在 /etc/fstab 中输入该内容,以便在启动时挂载文件系统?

mount
  • 1 个回答
  • 15 Views
Martin Hope
user149408
Asked: 2024-05-26 18:54:13 +0800 CST

软件包安装过程中禁止计划作业

  • 5

在基于 Debian 的系统上,我有一个每 30 分钟运行一次的计划作业(例如 cron 作业或 systemd 计时器/服务)。但是,我不希望在安装或更新软件包的同时发生这种情况。

软件包安装可以手动或按计划进行,但在后一种情况下,会出现相当大的随机延迟。我可以调整我的工作时间表,以免干扰潜在的软件包更新(无论是否实际安装了某些内容),并记住在手动安装软件包时禁用该作业,并记住在之后启用它 - 但这并不令人满意。

因此,我正在寻找一种可靠的方法来告诉软件包安装正在进行中,以便我的工作可以检查它并退出(或延迟执行)(如果是这种情况)。如果在我的工作的同时在后台更新存储库信息或下载软件包,这并不是真正的问题,但我的工作不应在安装时运行(复制文件、配置、安装前/安装后脚本和相似的)。

在 OPNsense(基于 FreeBSD)上,系统更新程序获取特定文件的锁定,因此我将我的工作封装在flock.如果正在进行更新,我的工作将被跳过。如果在我的作业运行时触发升级,升级可能会失败,并显示一条消息,指示另一个更新正在进行中。

我想知道 Debian 上的 apt 是否有类似的东西,例如我可以检查的锁定文件。如果是这样,该机制是特定包管理前端独有的,还是可以与 .deb 包的所有标准工具(例如 dpkg、apt、aptitude、synaptic 等)一起使用?

我看到当 Synaptic 打开并尝试运行时sudo apt-get upgrade,我得到:

E: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 1234 (synaptic)
N: Be aware that removing the lock file is not a solution and may break your system.
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

然而,即使 Synaptic 正在运行(尽管当前没有安装任何东西),sudo flock -n /var/lib/dpkg/lock-frontend sleep 10 || echo File is locked也会成功(即flock返回true,表明我已经获得了锁,而没有获得锁sleep则执行)。echo与 相同的行为/var/lib/dpkg/lock。

那么如何才能获得“包安装锁定”呢?

debian
  • 1 个回答
  • 31 Views
Martin Hope
user149408
Asked: 2024-05-16 00:53:32 +0800 CST

通过 cron Unison,如何处理一项作业在下一项作业开始时仍在运行

  • 9

我有一个设置,其中通过 SSH 连接使用 Unison 在两个 Linux 服务器之间同步文件。这是通过 cron 运行以下命令来实现的:

unison -auto -batch PROFILE

文件集的更改几乎只发生在一侧(另一个系统是异地副本)。它们大多是通过与客户端计算机的另一个 Unison 同步运行(手动触发)进行的,并且间隔时间可能从几个小时到几周不等。因此,两台机器之间的冲突在实践中并不是什么大问题,并且更改传播到另一端的最多 24 小时的延迟是可以接受的。

我将 Unison 作为 cron 作业而不是-repeat(大概作为 systemd 服务)运行的原因是:

  • 可预测的同步时间,因为 cron 作业被安排在我不期望第三台机器进行任何手动同步操作的时间(而,比如说,-repeat 86400会随着同步操作的持续时间而漂移)。
  • 更改主要发生在服务器 A 上,而服务器到服务器同步作业由服务器 B 触发(如果服务器 B 发起连接,网络方面是否更容易)。因此,据我了解,-repeat watch不会接受大部分更改,即使使用-repeat watch+TIME,我也几乎完全依赖TIME(如果我错过了某些内容,请纠正我)。

当变化确实发生时,变化的幅度通常很小。然而,有时,要传输的数据量使得单个 Unison 运行的持续时间是两个 Unison cron 作业之间的间隔的数倍(系统之间的带宽受到一定限制)。这意味着当 cron 在同一组文件上启动下一个进程时,一个 Unison 进程仍在运行。

我认为 Unison 具有锁定机制,这大概可以防止“新”进程干扰“旧”进程正在处理的任何事情(但如果我拧干或遗漏了某些东西,请纠正我)。但我想知道在这种情况下第二个 Unison 进程会做什么 - 我观察到它不会退出而是保留下来。这是否意味着第二个进程将等待第一个进程完成,然后才开始同步(这样将仅包括在第一次同步进行时更改的文件,因此在第一次运行时无法同步)?

当另一个 Unison 进程仍在同一配置文件上运行时启动第二个 Unison 进程是否安全? (如果不是,当且仅当两个并发 Unison 实例存在相互干扰的风险时,建议采用什么方法来阻止它们?)

unison -repeat wait+TIME与偶尔有多个 Unison 实例排队、一个正在运行而其他等待其完成的资源开销又如何呢?

linux
  • 4 个回答
  • 653 Views
Martin Hope
user149408
Asked: 2024-04-25 02:58:28 +0800 CST

在 FreeBSD 上哪里安装自定义软件包?

  • 6

在Linux中,根据文件系统层次结构标准,/opt是附加应用程序软件包的指定位置。因此,在开发我自己的软件包(不依赖于其他任何东西)时,我会将其放置在 中/opt/somepackage,并在其下方具有我选择的层次结构。

根据上面的链接,FreeBSD 并不严格遵循 FHS,而是将第三方软件包安装到/usr/local. OPNsense 基于 FreeBSD,将自己的代码(至少部分)安装到/usr/local/opnsense. FreeBSD 上的联机hier帮助页没有提及/opt- 因此在该位置安装的软件包不太可能与其他任何东西发生冲突,但会引入一个顶级路径,几乎与直接安装到/somepackage.

FreeBSD 中合适的安装位置是什么?/usr/local/somepackage而不是/opt/somepackage,再次在下面有我选择的层次结构?

请注意,我看过以下帖子,它们提供了一些见解,但没有完全回答我的问题:

  • 在 Linux 中,我会使用“/opt”来表示自定义软件。在 FreeBSD 中?– 特别询问不受包管理器管理的软件,而我询问的是开发我自己的.pkg.
  • 什么可能相当于 OpenBSD 中的 Linux /opt/?– 询问 OpenBSD,这可能与 FreeBSD 不同
freebsd
  • 3 个回答
  • 59 Views
Martin Hope
user149408
Asked: 2023-04-07 04:08:21 +0800 CST

debootstrap --second-stage with fakechroot 在 docker 上失败(/lib/ld-linux-armhf.so.3:没有这样的文件或目录)

  • 6

我正在尝试在 docker 容器中设置一个外部 chroot。脚本摘录:

apt-get -y install debootstrap fakechroot fakeroot qemu-user-static binfmt-support
mkdir -p $CROSS_ROOT
fakechroot fakeroot -s .fakeroot.state debootstrap --variant=fakechroot --include=fakeroot,build-essential,ca-certificates,debian-archive-keyring,git,sudo --arch=${CROSS_ARCH} --foreign ${CROSS_RELEASE} $CROSS_ROOT $CROSS_MIRROR
mkdir -p $CROSS_ROOT/usr/bin
ln /usr/bin/qemu-*-static $CROSS_ROOT/usr/bin/
fakechroot fakeroot -i .fakeroot.state -s .fakeroot.state chroot $CROSS_ROOT /debootstrap/debootstrap --second-stage

对于 Debian buster/armhf,最后一行失败并显示以下错误消息:

/lib/ld-linux-armhf.so.3: No such file or directory

但是,当我ls -la $CROSS_ROOT/lib/ld-linux-*在最后一行之前插入时,找到了库文件:

lrwxrwxrwx 1 root root 30 Mar 15  2022 /opt/chroot/armhf/lib/ld-linux-armhf.so.3 -> arm-linux-gnueabihf/ld-2.28.so

链接目标也存在:

-rwxr-xr-x 1 root root 105840 Mar 15  2022 /opt/chroot/armhf/lib/arm-linux-gnueabihf/ld-2.28.so

所以图书馆绝对是它应该在的地方。这里出了什么问题,我该怎么办?

docker
  • 1 个回答
  • 15 Views
Martin Hope
user149408
Asked: 2022-09-19 11:26:35 +0800 CST

Unison over SSH,尽管 SSH 工作,但与服务器的连接丢失

  • 2

我刚刚在磁盘损坏后重建了我的文件服务器。当我尝试使用 Unison 重新同步数据时,我收到了错误消息

与服务器失去连接

我从命令行重试并得到:

~$ unison someprofile -ui text
Contacting server...
Unison failed: Fatal error: Error in creating unison directory /home/user/.unison:
File exists [mkdir(/home/user/.unison)]
Fatal error: Lost connection with the server

我可以打开到服务器的 SSH 连接。客户端和服务器都运行相同的 Unison 版本。这是怎么回事?

ssh unison
  • 1 个回答
  • 21 Views
Martin Hope
user149408
Asked: 2022-04-12 10:33:12 +0800 CST

插入充电器时蓝牙 A2DP 音频设备失去连接

  • 0

我使用 UE MEGABOOM 蓝牙音箱和三种设备:

  • 运行 OSMC 的树莓派
  • 我的笔记本电脑,运行 Ubuntu MATE 20.04
  • 我的安卓手机,运行 LineageOS 18.1

大多数情况下,我将扬声器与媒体中心一起使用,有时在旅行时与笔记本电脑一起使用,很少与手机一起使用。

不久前,我开始注意到,每当我将扬声器插回充电器时(并且仅在那时),它就会失去连接。这开始突然发生,并且每次都可以在媒体中心重现。仅当我将扬声器插入充电器时才会出现 - 如果我在连接时将其从充电器中拔出,则不会发生任何事情。

在某些时候,我试图用笔记本电脑重现它,但是当我插入它时,扬声器仍然保持连接。然而,最近,我注意到当我插入扬声器时,笔记本电脑的连接也下降了。我还没有在手机上做任何彻底的测试。

我不使用 UE 为扬声器提供的应用程序(我在刻录机设备上安装过一次以进行基本配置,然后再也没有使用过)。

关于什么可能导致这种行为的理论:

  1. Linux 蓝牙驱动程序堆栈中的一个新错误,当扬声器连接到充电器时会导致一些打嗝:A2DP 有一些报告设备充电状态的机制;如果从电池供电到充电的过渡由于某种原因使驾驶员无法驾驶,这可以解释这种行为。
  2. 扬声器本身有问题。由于我主要使用扬声器的设备 OSMC 比笔记本电脑更早遇到此问题,这可能与设备连接/配对的顺序有关 - 或者根本不是扬声器的问题。

有没有人遇到过类似的问题,和/或可以帮助我更多地了解这个问题?

audio bluetooth
  • 1 个回答
  • 37 Views
Martin Hope
user149408
Asked: 2022-04-04 05:29:21 +0800 CST

将端口转发添加到正在运行的 SSH 会话

  • 23

OpenSSH 客户端有一个用于端口转发的命令行选项,使用如下:

ssh -L localport:server:serverport user@host

它将连接到hostas user,同时在localport客户端上重定向到serverporton server(可以是host或任何可host通过网络访问的东西)。

现在假设我已经通过 SSH 完成host了

ssh user@host

在会话中间我意识到我忘了转发端口。唉,我在做某事,所以我不只是想注销并通过端口转发重新建立 SSH 连接。

有没有办法将端口转发添加到正在运行的 SSH 会话中?

openssh port-forwarding
  • 2 个回答
  • 2242 Views
Martin Hope
user149408
Asked: 2022-03-13 14:03:57 +0800 CST

OpenVPN 客户端不使用 VPN DNS 服务器

  • 1

我已经在私有网络上设置了一个 OpenVPN 服务器,以及一个 DNS 服务器来解析私有 DNS 地址。

在 OpenVPN 服务器上,我在客户端 DNS 配置中设置了私有 DNS 地址。我有三个客户端,分别运行 Android、Ubuntu 和 Raspbian。

Android 和 Ubuntu 客户端似乎使用私有服务器;至少我可以解析私人名称。但是,这在 Raspbian 客户端上不起作用:无法解析私有地址,并nslookup返回来自客户端 LAN 上的 DNS 服务器的响应,而不是 VPN 的远程端。

当我在交互模式下运行 nslookup 并显式设置服务器时,查询被解析,这告诉我 DNS 查询可以通过 VPN 而不会被阻止。问题似乎是客户端正在查询错误的 DNS 服务器。

这是 Raspbian 客户端的配置:

client
remote 'vpn.example.org'
ca 'ca.pem'
cert 'cert.pem'
key 'key.pem'
cipher AES-128-CBC
dev tun
proto udp
verify-x509-name 'vpn.example.org'
tls-auth 'hmackey.pem' 1
auth SHA256
nobind
auth-nocache
script-security 2
persist-key
persist-tun

其他两个客户端是使用 GUI 工具配置的,因此我无法提供可靠的配置文件(他们提供 exp

我是否需要在客户端设置任何内容才能让客户端使用 VPN 上的 DNS 服务器?

dns openvpn
  • 1 个回答
  • 1313 Views
Martin Hope
user149408
Asked: 2022-03-04 11:58:05 +0800 CST

尽管已配置 OpenVPN HMAC 身份验证失败

  • 0

我正在尝试设置一个新设备来连接到我的 OpenVPN 服务器。新设备是一个没有 GUI 的 Linux 系统。我从桌面 Linux 系统导出了配置文件并进行了必要的更改。

桌面系统可以连接到 VPN。但是,新系统无法连接。日志报告 TLS 握手超时。在服务器上,我看到以下条目:

TLS Error: cannot locate HMAC in incoming packet from ...

这表明客户端尚未配置 HMAC 身份验证,但服务器需要它。然而,这个配置是从一个可以工作并配置了 HMAC 密钥的客户端导出的。这是客户端配置:

client
remote 'vpn.example.org'
ca 'ca.pem'
cert 'cert.pem'
key 'key.pem'
cipher AES-128-CBC
dev tun
proto udp
verify-x509-name 'vpn.example.org'
tls-auth 'hmackey.pem' 1
nobind
auth-nocache
script-security 2
persist-key
persist-tun

HMAC 密钥在所有系统上都是相同的。怎么了?

openvpn
  • 1 个回答
  • 160 Views
Martin Hope
user149408
Asked: 2021-11-15 12:14:45 +0800 CST

挂载:未知文件系统类型“btrfs”

  • 0

我有一个运行 Raspbian 的 Raspberry Pi,外部驱动器上有一个 btrfs 分区。系统配置为自动安装安全更新,但不安装其他更新。

突然之间,重新启动系统后,btrfs 分区不再挂载。当我尝试手动安装它时,我得到:

mount: unknown filesystem type 'btrfs'

网络上的一些来源建议运行modprobe以确保安装了 btrfs 支持。modprobe btrfs结果是:

modprobe: ERROR: could not insert 'btrfs': Exec format error

这里有什么问题?我可以做些什么来诊断问题并解决它?

debian mount
  • 1 个回答
  • 678 Views
Martin Hope
user149408
Asked: 2018-03-14 10:35:29 +0800 CST

安装了不兼容的 pkg 版本,如何卸载(或以其他方式修复)?

  • 1

在尝试将 pfSense 2.2.6 升级到最新版本(如此处所述)并运行pkg时,我得到:

The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]:

回答是后,我得到:

Bootstrapping pkg from pkg+http://pkg.FreeBSD.org/freebsd:10:x86:64/latest, please wait...
Verifying signature with trusted certificate pkg.freebsd.org.2013102301... done
Installing pkg-1.10.5...
Newer FreeBSD version for package pkg:
To ignore this error set IGNORE_OSVERSION=yes
- package: 1003000
- running kernel: 1001000
Allow missmatch now?[Y/n]:

我决定冒险并回答是。最终,安装以错误消息结束:

/usr/local/lib/libpkg.so.4: Undefined symbol "openat"

这大概意味着pkg我得到的版本确实与我的系统不兼容。不幸的是,每进一步尝试运行都会pkg产生相同的错误。

我怎样才能再次摆脱不兼容的pkg版本,我怎样才能在我的 pfSense 上获得一个与 BSD 版本兼容的版本?或者有没有其他方法可以解决这个问题?

bsd pfsense
  • 1 个回答
  • 4069 Views
Martin Hope
user149408
Asked: 2018-02-22 12:11:11 +0800 CST

XML实体扩展的命令行工具

  • 2

我需要将 XML 数据作为测试脚本的一部分输入系统。

测试脚本本身是一个 shell 脚本。

XML 数据在属性中包含时间戳,需要接近当前时间。(事实上​​,有两个时间戳,一个在当前时间附近,另一个在几分钟到几小时之后。)其余数据是静态的(即有一组不同的 XML 文件,每个测试一个案子)。

我正在考虑通过使用外部实体来解决这个问题,然后通过脚本生成实体定义。问题:消费者系统仅支持 XML 的一个子集(依赖于 glib XML 解析器)。

因此,我的下一个想法是通过解析器运行 XML,该解析器将解析外部实体并输出扩展所有实体和包含的平面文件 XML。是否有任何此类解析器可用作命令行工具(最好在 Debian/Ubuntu 存储库中)?

shell-script xml
  • 1 个回答
  • 630 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