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

iBug's questions

Martin Hope
iBug
Asked: 2020-02-02 09:32:25 +0800 CST

如何使用 systemd-networkd 添加 IPv6 路由规则?

  • 1

我在 systemd 242 (Ubuntu Eoan) 上运行,并尝试iproute2使用 systemd-networkd 执行与以下命令等效的操作:

ip -6 rule add from all table 1 pref 1000

这就是我所拥有的,/etc/systemd/network/10-eno1.network但它不起作用:

[RoutingPolicyRule]
Table=1
Priority=1000
Family=ipv6

我也试过Family=both了,但只生成了v4规则。

我已经阅读了整个https://systemd.network/systemd.network.html#%5BRoutingPolicyRule%5D%20Section%20Options但仍然不知道出了什么问题。

我想这样做,systemd-networkd并且我对编写服务ExecStart=/sbin/ip blah blah或类似服务的解决方案不感兴趣。

systemd systemd-networkd
  • 1 个回答
  • 296 Views
Martin Hope
iBug
Asked: 2020-01-13 07:21:24 +0800 CST

iproute2 表 0 与本地表不同

  • 1

我们都知道这些命令会产生相同的输出:

ip route list
ip route list table 254
ip route list table main

此命令还列出了一些与本地地址和广播地址相关的特殊规则:

ip route list table local

但是,用local零替换(如 中所列/etc/iproute2/rt_tables)会产生大量输出:

ip route list table 0

为什么最后一个命令如此不同?

linux iproute
  • 1 个回答
  • 704 Views
Martin Hope
iBug
Asked: 2019-12-06 06:08:09 +0800 CST

删除从 /etc/network/interfaces (ifupdown) 创建的绑定接口?

  • 4

我尝试将两个接口合二为一,创建了bond0,但发现它并不令人满意。/etc/network/interfaces然后我恢复了对和运行的所有更改systemctl restart networking.service,但是绑定接口仍然存在(显示在ifconfig和ip link命令中),我不得不运行ip link set bond0 down或ifconfig bond0 down强制将其踢出。如何在不重新启动服务器的情况下完全删除此接口?

我在 Debian Buster 上。该文件最初是这样的:

auto eno1
iface eno1 inet static
    # regular network settings like address, netmask, gateway etc.
auto eno2
iface eno2 inet static
    # regular network settings like address, netmask, gateway etc.

我通过将其更改为以下方式将两个接口变成了一个键:

auto eno1
iface eno1 inet manual
    bond-master bond0
auto eno2
iface eno2 inet manual
    bond-master bond0

auto bond0
iface bond0 inet static
    # regular network settings like address, netmask, gateway etc.
linux networking
  • 2 个回答
  • 28393 Views
Martin Hope
iBug
Asked: 2019-11-26 10:31:03 +0800 CST

使用 systemd-networkd 为静态 IP 设置路由指标?

  • 5

我最近设置了一个服务器,其网络直接由systemd-networkd(nukednetplan.io和网络管理器)管理,并为其提供了如下静态 IP:

/etc/systemd/network/10-ethernet.network

[Match]
Name=eno1

[Network]
Address=192.168.1.2/24
Gateway=192.168.1.1
DNS=192.168.1.1

重启后systemd-networkd.service,默认路由如下:

default via 192.168.1.1 dev eno1 proto static
default via 172.16.0.1 dev eno2 proto static
default via 172.31.255.1 dev eno3 proto static
                                               ^^^

因为有多个 NIC,我想eno1选择一个,所以我希望路由布局如下:

default via 192.168.1.1 dev eno1 proto static metric 100
default via 172.16.0.1 dev eno2 proto static metric 300
default via 172.31.255.1 dev eno3 proto static metric 500
                                               ^^^^^^^^^^

如果没有该metric值,则默认为 0,这意味着所有路由都具有相同的优先级(最高),这是我想避免的。

我试过这个设置:

[Route]
Gateway=192.168.1.1
Metric=100

但它只会生成具有所需度量的额外metric路由,而原始路由(缺失)仍然存在。

我在 Systemd 240 上运行。我应该如何实现这一点?

networking systemd
  • 1 个回答
  • 4204 Views
Martin Hope
iBug
Asked: 2019-11-06 21:26:02 +0800 CST

SSH 用户 CA:使用选定的主机而不是所有主机签署用户证书?

  • 2

我有许多服务器共享一个共同的TrustedUserCAKeys. 我想签署一个用户证书,以便它授予对特定服务器而不是所有服务器的一些访问权限。

例如,以下命令会生成一个证书,该证书可用于在所有服务器上以 root 身份登录:

ssh-keygen -s ca -I example -n root id_rsa.pub

我尝试了以下命令,但它生成的证书......没用。

ssh-keygen -s ca -I example -n root@server1 id_rsa.pub

我打算生成一个证书,该证书只能在 server1 上以 root 身份登录,而不能在任何其他服务器上以 root 身份登录。我已确定这server1是该服务器上的 FQDN(或 的完整内容/etc/hostname)。sshd_config有没有办法在不触及任何主机的情况下实现这一目标?

ssh
  • 2 个回答
  • 1388 Views
Martin Hope
iBug
Asked: 2019-04-27 07:27:06 +0800 CST

关于带有重定向和/或管道的内置命令的行为的 POSIX 规范是什么?

  • 5

考虑以下命令:

exit > /dev/null
exit | cat

在一些 shell(ksh、bash、(d)ash)上,行为是相同的:第一个命令导致 shell 立即退出,而第二个命令没有可见行为。

我得出的结论是,第一个命令不涉及 fork(2),而第二个命令涉及两个(一个执行exit,另一个 execve(2) 执行cat)。

我查看了 POSIX 规范第 2.14 节,但没有找到任何明确说明这一点的内容。

POSIX 是否指定某些命令不能 fork(2) 而其他一些命令必须?是否为标准可接受的第一个命令生成子 shell?


我知道( exit )永远不应该退出当前的 shell,因为括号会产生一个实际执行exit命令的子 shell,这意味着子 shell 将立即退出。但是,我不确定重定向和管道,因为这里没有括号。

我问这个问题是因为在最近的课程实验室中,我们被告知要实现一个最小的 Unix shell。对于附加点,我们可以实现许多“可选功能”。这些“可选功能”之一是组合重定向和流水线。我们有一些不同的实现,我相信有些实现比其他的更接近 POSIX 的指定行为,因此我想知道实际行为是如何指定的。

shell pipe
  • 2 个回答
  • 642 Views
Martin Hope
iBug
Asked: 2019-04-26 01:45:37 +0800 CST

Ubuntu 中 Bash 默认 PS1 的前导部分是什么意思?

  • 2

这是$PS1我在新安装的 Ubuntu 18.04 上的 Bash shell:

\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\] \$

我可以很好地理解提示的所有其他部分:

  • ${debian_chroot:+($debian_chroot)}:如果已设置,则显示它,但在其周围添加括号;如果未设置,则不显示
  • \[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\] \$user@host:cwd $:使用 CSI 转义序列启用颜色的标准提示

我对第一部分感到困惑:

\[\e]0;\u@\h: \w\a\]

AFAIK,\[并\]扩展到\001并\002告诉 GNU readline,它们之间的字符不应计入“提示长度”。这个问题可以归结为这个意思:

\e]0;\u@\h: \w\a

是<ESC>]0;user@host: cwd<ALARM>。那有什么作用?(注:CSI<ESC>[不是<ESC>],否则我会理解的)

bash prompt
  • 1 个回答
  • 696 Views
Martin Hope
iBug
Asked: 2019-03-25 23:09:05 +0800 CST

为什么即使 /etc/sudoers 中没有写入“NOPASSWD:ALL”,root 也不需要密码来运行“sudo”[重复]

  • 6
这个问题在这里已经有了答案:
为什么`root`可以在不提供密码的情况下以任何用户身份运行任何命令? (2 个回答)
3年前关闭。

在/etc/sudoers中,总有:

root    ALL=(ALL:ALL) ALL

但是,root 用户(UID 为 0)在运行时不需要输入密码sudo command。

对于其他用户,除非他们的条目包含NOPASSWD或先前的身份验证未超时,否则需要密码:

user    ALL=(ALL:ALL) NOPASSWD:ALL
                      ^^^^^^^^
linux sudo
  • 2 个回答
  • 1115 Views
Martin Hope
iBug
Asked: 2019-02-21 02:38:00 +0800 CST

为什么不从 /dev/zero 读取算作 IO_RBYTES?

  • 26

我正在使用以下命令清空某些 Linux 4.x 操作系统上的硬盘:

sudo sh -c 'pv -pterb /dev/zero > /dev/sda'

我打开另一个 tty 并开始sudo htop并注意到这一点:

  PID USER      PRI  NI CPU%   RES   SHR   IO_RBYTES   IO_WBYTES S   TIME+  Command
 4598 root       20   0 15.5  1820  1596        4096    17223823 D  1:14.11 pv -pterb /dev/zero

的值IO_WBYTES看起来很正常,但IO_RBYTES保持在 4 KiB 并且从未改变。

我运行了一些其他程序,例如

dd if=/dev/zero of=/dev/zero
cat /dev/zero > /dev/zero

并且惊讶地发现它们都没有产生很多IO_RBYTESor IO_WBYTES。

我认为这不是特定于任何程序的,但为什么不读取/dev/zero和写入/dev/{zero,null}算作 I/O 字节呢?

linux devices
  • 1 个回答
  • 3066 Views
Martin Hope
iBug
Asked: 2019-02-14 02:39:35 +0800 CST

tmux 更改会话的默认工作目录而不附加

  • 0

我正在寻找一种方法来做这样的事情而不附加到会话中。

tmux attach-session -c <directory> -t <session>
                    ^^^^^^^^^^^^^^

Per tmux(1),没有办法更改整个会话的默认工作目录(新窗口和新窗格)而不附加到它。

我无法附加到会话,因为我在一些自动化脚本中执行此操作,其中附加会破坏自动化。

tmux pwd
  • 2 个回答
  • 822 Views
Martin Hope
iBug
Asked: 2018-10-21 21:45:22 +0800 CST

监控进程及其整个子进程树的网络流量

  • 5

我想知道一段时间内的网络流量(入站和出站),生成了一个特定的进程和它产生的所有子进程。

我开发了一个包含“作业管理器”的软件,该软件可以永远运行并且不会自行产生网络流量。相反,它会产生负责主要工作的子“工人”,包括大部分网络流量。棘手的一点是,几个“工人”可能同时工作,并且单个工作进程预计会在短时间内(几个小时)后退出。此外,这些工作人员还会产生更多的子进程,这些子进程也会产生类似git fetch需要监控的流量。

只有一个“作业管理器”实例,它可以在我的开发和测试服务器上按需启动或终止,该服务器运行 Ubuntu Server 18.04,架构 amd64。

我想长时间(一周或更长时间)监控所有工作人员的网络流量和工作人员产生的进程。有解决办法吗?

networking process
  • 1 个回答
  • 360 Views
Martin Hope
iBug
Asked: 2018-09-17 02:44:17 +0800 CST

当从 Bash 和 Git 调用时,`less` 的执行方式不同

  • 8

当我查看一个大的差异时git diff,它会被分页less。这可以通过打开另一个窗口并检查来自ps -aux和的数据来确认/proc。

但是,当less被 Git 调用时,它不会在点击后将终端内容恢复到之前的状态q(差异内容保留在终端中)。但是当我这样做时

git diff commit1 commit2 --color | less -R

less并用 key退出q,内容消失,终端恢复到之前的状态。

更有趣的是,如果我这样做

export PAGER=less LESS='-R'

和调用git diff(或任何其他调用寻呼机的命令)的less行为与直接从 Bash shell 调用相同。

一世

这是描述我的问题的简短屏幕截图。在左侧窗格中,命令执行如下:

unset PAGER GIT_PAGER LESS
git diff HEAD^ HEAD

在右侧窗格中,您可以看到命令。最新提交是 100 多行y写入文件。在两个窗格上less都使用 key 退出q。

谁能告诉我有什么不同并解释为什么?

less git
  • 1 个回答
  • 1764 Views
Martin Hope
iBug
Asked: 2018-06-30 22:07:12 +0800 CST

`less` 如何从标准输入获取数据,同时仍然能够读取用户的命令?

  • 49

正如你们大多数人多次做过的那样,使用以下命令查看长文本很方便less:

some_command | less

现在它的标准输入连接到一个管道(FIFO)。它怎么还能读取像 up/down/quit 这样的命令?

less
  • 2 个回答
  • 3966 Views
Martin Hope
iBug
Asked: 2018-03-15 22:10:17 +0800 CST

程序是否可以在 POSIX 中获取命令行参数之间的空格数?

  • 23

假设我使用以下行编写了一个程序:

int main(int argc, char** argv)

现在它通过检查argv.

程序可以检测参数之间有多少空格吗?就像我在 bash 中输入这些:

ibug@linux:~ $ ./myprog aaa bbb
ibug@linux:~ $ ./myprog       aaa      bbb

环境是现代 Linux(如 Ubuntu 16.04),但我想答案应该适用于任何符合 POSIX 的系统。

shell command-line
  • 6 个回答
  • 4703 Views
Martin Hope
iBug
Asked: 2018-01-14 00:37:29 +0800 CST

从大文件末尾删除空字节

  • 5

我刚刚使用以下命令在运行 Linux 发行版的 PC 上备份了我的 Raspberry Pi 中的 microSD 卡:

dd if=/dev/sdx of=file.bin bs=16M

microSD 卡只有 3/4 满,所以我想在这个巨大文件的末尾有几个空字节。我很确定我不需要那个。如何有效地从末尾删除那些空字节,以便以后可以使用此命令恢复它?

cat file.bin /dev/zero | dd of=/dev/sdx bs=16M
files dd
  • 6 个回答
  • 4976 Views
Martin Hope
iBug
Asked: 2018-01-07 19:53:23 +0800 CST

使用 /dev/ramX 作为它们对应的特殊设备?

  • 0

使用ls -l,我发现了一系列设备ram0,例如ram1等。我仔细查看了输出并(例如)

brw------- 1 root root 1, 3 Jan  6 11:34 /dev/ram3
crw-rw-rw- 1 root root 1, 3 Jul 15  1970 /dev/null

嗯,它们仅因设备类型(块和字符)而异。我尝试读取和写入ram3,但令我惊讶的是,我可以从中读取一个 8 MiB 的零字节块,并且我不能写入超过 8 MiB 的内容,因为我认为我可以在读取时立即收到 EOF 和可以无限写入它。

然后我尝试了其他rams,但更令人惊讶的是,它们的行为都相同。/dev/ram8不会像/dev/randomdo 那样生成随机的东西,/dev/ram7不会像/dev/full...一样报告“磁盘已满”

然后我尝试mknod了工作目录中的所有内容(挂载类型:ext4),结果相同:字符设备的行为/dev/null,full,zero,random与块设备相同/dev/ramX

于是我开始疑惑:

  • 与使用相同的设备编号有何/dev/ramX不同?/dev/<device>
  • 如何解释这些块设备的读取时 8 MiB 空的东西(全为零)和 8 MiB 写入限制?

我想答案应该适用于所有 Linux 内核系统。

(旁注:8 MB = 8,000,000 字节,8 MiB = 8,388,608 字节)

linux devices
  • 1 个回答
  • 301 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