小编hum*_*ace的帖子

为什么“journalctl --disk-usage”和“journalctl | wc”不能很好对应?

TL;DR为什么 journald 存储大约 770 MiB 而显示日志只产生 90MiB 的数据?

#UPDATE# 我做了一个journalctl -a -o verbose至少产生了大约 530MiB,但少于日志在磁盘上使用的 770MiB。无论如何,我希望磁盘上的日志以某种方式压缩,并且应该小于 530MiB 而不是更大。到底是怎么回事?

#更新2#

似乎journald有一种趋势,即创建大部分为空的日志文件。

$> cat .system@0000.journal~ | wc -c
8388608
#> cat .system@0000.journal~ | sed 's/\x00//g' | wc -c
47181
Run Code Online (Sandbox Code Playgroud)

这可能是@Mioriin 的评论所暗示的。有什么理由为什么有 8MiB ,但 journald 保存的日志文件几乎是空的?

长版有背景

我的系统非常健谈,带有 linux 内核 dmesg 输出、gnome DE 等 -/var/log通过journald我遗憾地使用的系统记录器填充我的目录(仍在标准 systemd arch linux 上)。

我查看了一下du -hs /var/log,发现大约 2GiB,其中大部分是journald期刊。我删除了超过 90 天的数据journalctl --vacuum-time=90d,唉,牺牲了超过 3 个月的journald …

systemd-journald

6
推荐指数
0
解决办法
3185
查看次数

如何删除系统禁止块?

有关Systemd 的 Inhibitor Locksman systemd-inhibit 的文档用大量篇幅解释了如何在阻止某些内容(例如事件handle-lid-switch)时以某种方式启动进程。

我无法找到一种方法来允许我删除这样的“锁定”/“禁止”/“阻止”。

问题:有没有办法解除systemd-inhibit锁定,例如通过dbus消息?

背景:我需要什么来移除抑制器锁**

我的笔记本电脑有一个笔记本电脑盖关闭开关,用于systemd-logind监视并在盖关闭时暂停笔记本电脑 - 功能“ close-lid -> suspend”。

一旦笔记本电脑被放置在其扩展坞中,为了让用户能够使用更大的屏幕,Gnome 的 gsd-power 会任意(并且 错误地并且在 Gnome 中没有任何可用设置来更改它)决定创建一个禁止锁,从而阻止功能“ close-lid -> suspend”工作。

知道如何删除抑制锁,将使我能够纠正 Gnome 的 gnome-setting-deamon power 所做的错误设置gsd-power。Gnome的设置是错误的,因为手动调用挂起systemctl suspend确实没有问题。

我想删除的抑制剂锁,如下所列systemd-inhibit --list

     Who: alex (UID 1000/alex, PID 4248/gsd-power)
    What: handle-lid-switch
     Why: Multiple displays attached
    Mode: block
Run Code Online (Sandbox Code Playgroud)

gnome suspend systemd

6
推荐指数
1
解决办法
4895
查看次数

在命令之前 bash stat() 和 access() 很多正常吗?

stracebash被指示运行的shell 上运行mkdir提供了此输出,该输出显示了执行实际mkdir二进制文件之前的大量统计信息:

BASH$> strace -f sh -c "bash -c \"mkdir /tmp\" 2>&1 | nl | grep -e "execve\|stat\|access" 
[.....]
  2766  [pid 17371] stat(".", {st_mode=S_IFDIR|0750, st_size=17262, ...}) = 0
  2767  [pid 17371] stat("/usr/local/sbin/mkdir", 0x7ffd87aad0a0) = -1 ENOENT      2767 (No such file or directory)
  2768  [pid 17371] stat("/usr/local/bin/mkdir", 0x7ffd87aad0a0) = -1 ENOENT (No such file or directory)
  2769  [pid 17371] stat("/usr/bin/mkdir", {st_mode=S_IFREG|0755, st_size=51136, ...}) = 0
  2770  [pid 17371] stat("/usr/bin/mkdir", {st_mode=S_IFREG|0755, st_size=51136, ...}) = 0 …
Run Code Online (Sandbox Code Playgroud)

bash dash stat syscalls

6
推荐指数
1
解决办法
198
查看次数

ext4 文件系统可以承受坏扇区(不可读)吗?

如果/home/user/meext4fs的元数据中出现硬盘坏扇区,是否意味着所有子目录的数据丢失?

背景:
我知道许多用户对 ext4 文件系统感到满意,甚至不愿意更改为“最近”开发的替代方案(例如 BTRFS),声称数据丢失的风险增加。事实上,当关于 ext4 的代码在今天出现时,一些发现错误的结果会说话

有了这个介绍,我的问题是:

ext4文件系统对来自块设备的坏扇区的抵抗力是多少。一个坏扇区可能会吞下 4K 字节,我想如果那些 4K 碰巧吞下了目录结构(即/home/user/me目录)中的一些目录信息,那么我认为这会“造成严重破坏” 。

我知道超级块(更基本的信息源在 ext4 中以冗余形式保存,所以我对坏块进行成像可以在那里修复,但我不确定它是否会被自动删除)

所以我的问题是:ext4 能否阻止在其元数据中丢失坏块?

我知道数据/文件内容中的坏块总是意味着丢失那些 512/4K 扇区(但是我在那里使用 parchive 作为补救措施)。

ext4 data-recovery block-device

6
推荐指数
1
解决办法
1594
查看次数

哪些桌面环境不需要 D-Bus?

是否有不需要 D-Bus 的桌面环境(即类似于 Gnome、KDE、Xfce 等)?

最佳答案最好给出一个包含列表,或者确认当今的桌面环境必然依赖于 D-Bus(可能给出一个原因?)

desktop-environment d-bus

5
推荐指数
0
解决办法
1140
查看次数

kdbus 会取代 D-Bus 吗?

根据这篇LWN 文章, kdbus 应该取代 D-Bus。这可以以某种方式确认吗?

我想知道这毕竟是一项简单的任务,就像我想象的那样,两者都有不同的 API?据我所知,有必要重做一些工作/更新以将程序从使用 D-Bus 转移到 kdbus?因此,如果正如 LWN 文章中提到的那样,目标是替换 D-Bus,那么我认为它会导致一些更新工作,对吗?

或者也许会在一段时间内两个系统并行工作?

d-bus linux-kernel

5
推荐指数
1
解决办法
870
查看次数

Xorg-Server 和 Wayland-Compositor 可以在 Linux 中同时运行吗?

在使用 lightdm 进行图形登录时,我可以设置要启动的会话类型并提供:

  • 侏儒
  • Xorg 上的侏儒
  • Xfce 会话

第一个Gnome是运行标准 Wayland 后端的 Gnome DE,据我所知,这意味着 Gnome 充当 Wayland 协议合成器,即与 KMS 和 evdev 的内核对话(如Wayland Architecture | freedesktop.org 所示),第二个选择Gnome on Xorg时,选项也会创建一个 Gnome 会话,但有一个进程Xorg,即我可以告诉 Xorg 服务器正在运行。

我很好奇,因为如果可以同时运行两个 Xorg-Server,作为 Wayland 协议的合成器,它们可能会使用相似/相同的资源(即图形适配器)。

因此,我测试了登录,一次进入 Gnome wayland 会话,然后使用另一个帐户帐户登录到 Xorg 会话中的 Gnome。结果是这看似有效,但有名为/usr/bin/Xwaylandrunning 的进程,我不确定显示的 Xorg 会话最终是否只是“假的”,因此通过 XWayland“Xorg”服务器显示。

我很困惑,我想在这里提出一个问题,“Xorg-Server 和 Wayland-Compositor [可以] 在 Linux 中同时运行吗?”

linux xorg wayland

5
推荐指数
1
解决办法
2227
查看次数

如何从文本文件(例如 bash_history)中删除“二进制数据”?

就像在以下问题中讨论的那样:

grep 可能会停止处理它认为是二进制的文件。

虽然这通常不是什么大问题,但在搜索文本文件时,结果证明有时某些文本文件是“脏的”,即包含一些二进制数据。

我提出这个问题的具体情况是,某种二进制数据(对于 grep 认为是二进制的,请参阅引用的问题)以某种方式进入了.bash_history文件,我想将其删除。

如何从文本文件中删除二进制数据?

不仅仅是删除二进制数据,我希望能够查看有问题的(grep)二进制数据是什么,以避免删除需要/重要的东西。

grep binary

5
推荐指数
1
解决办法
7915
查看次数

如何仅为特定进程更改文件内容?

出于这个问题的目的,让我们假设文件/path/to/file系统中有一个文件 ( ) 具有如下特定内容:

$> cat /path/to/file
this is the content of the
file /path/to/file 
Run Code Online (Sandbox Code Playgroud)

我对几乎所有正在运行的进程(并具有读取此文件的权限)、读取此内容感到满意。
但是(这是问题的核心)应该有一个特定的过程,在读取时/path/to/file应该提供不同的文件内容。

$> cat /path/to/file
this is the DIFFERNT content of the
file /path/to/file 
Run Code Online (Sandbox Code Playgroud)

如何以某种方式欺骗特定进程的文件内容?

我的一些猜测,走哪条路将是与以下相关的孤独:

  • 符号链接技巧
  • (linux)命名空间(文件系统命名空间)技巧
  • chroot 诡计
  • $LD_PRELOAD 勾搭技巧
  • 覆盖文件

我的平台是 GNU/linux,但如果有一种 POSIX 方式来实现它会更好:)

更新

什么是好的解决方案/答案?

一个好的解决方案/答案的标准是可以实现“特定进程的不同文件内容”,而无需 root 用户的交互,即使理想情况下,欺骗文件首先不应该是用户可写的。

另一个好的标准是,显示给进程的文件进程的修改是特定的,理想情况下没有竞争条件。

背景

Mozilla firefox 使用 2 个 zip 存档/usr/lib/firefox/omni.ja/usr/lib/firefox/browser/omni.ja,其中包含相当多的 firefox 代码(主要是用 Javascript 编写的内容),通过欺骗文件,我将能够修改我的 firefox 版本(包括一些我无法再实现的功能)扩展,提供放弃 XPCOM 支持和不喜欢插件签名强制)

process chroot files namespace

5
推荐指数
1
解决办法
315
查看次数

在 bash 中运行“exec echo some;echo test”是否永远不会打印“some test”?

exec echo "some "; echo "test"在 bash 中运行永远不会打印“一些测试”吗?

我会寻求对这个问题的确认,因为我正在编写一个小的 shell 脚本,并且我希望它exec在调用命令后不要继续执行任何操作。

我认为我不需要担心,根据我的理解,经过咨询:

  • man 3 exec
  • man 1p exec

shell 脚本,当由 shell 执行时,会生成

  1. shell 执行程序exec,其中
  2. 使用exec***家族系统调用来替换正在执行脚本的 shell/bash,这会阻止shell 的进一步操作(已被“替换”)

如前所述,这个问题的主要目标是为我的推理寻求确认,以防止在执行 exec (例如echo test)之后脚本中发生任何事情。

我希望尽可能提供一般性答案(POSIX),但以防万一,我对 GNU/Linux 和 GNU/Bash 最感兴趣

shell exec

5
推荐指数
3
解决办法
5833
查看次数