小编Grz*_*cki的帖子

如何检查,超出了哪个限制?(进程因 ulimit 而终止。)

让我们假设进程在 ulimited 环境中运行:

(
ulimit  ... -v ... -t ... -x 0 ...
./program
)
Run Code Online (Sandbox Code Playgroud)

程序终止。

可能有很多原因:超出内存/时间/文件限制;只是简单的段错误;甚至返回码为 0 的正常终止。

如何在不修改程序的情况下检查程序终止的原因?

PS我的意思是“当给出二进制文件时”。也许一些包装器(ptrace-ing 等)可能会有所帮助?

security process process-management resources

11
推荐指数
1
解决办法
1万
查看次数

在整个 PDF 中反转颜色(转换)

如何使用原始颜色的反转创建pdf?

(就像用 反转整个屏幕一样xcalib -i -a

最好:不要丢失超链接。但这不是要求。如果图像也被倒置就好了。

colors pdf conversion

11
推荐指数
1
解决办法
6447
查看次数

在哪里可以找到标准 linux 命令行工具的来源?

Into:我喜欢通过阅读资源来学习。但是在许多不同的项目站点上的互联网上搜索它们很累。我很想在一个地方看到包含许多应用程序源的中央可浏览存储库。

  • 当有人想找到一些 Linux 工具的文档时,最好的地方是 : man toolname
  • 当我想“按需”浏览 Linux 源代码时,我总是可以跳转到:Linux Cross Reference
  • 当我想找到最常见的员工时,我可以在Coreutils 中找到所有来源 。
  • 当我想检查如何构建某些东西时,我可以(例如)跳转到http://www.archlinux.org/packages/,检查它的 pkgbuild。

是否有任何存储库将大多数工具的来源集中在一个地方?- 就像man持有文档或Linux 交叉参考内核源代码一样。

我的意思是“快速”“按需”检查东西是如何实现的。(是的,我知道 google -> 但我厌倦了日常工作:1. 搜索项目站点 2. 浏览 repo 或更糟 -> 查看它的 repo 3. 完成后删除)

评论:

我已经强调了,我想检查工具:快速、快速、按需。

这意味着:我不想安装带有它的源的整个应用程序只是为了查看它的源。(顺便说一句。网络资源更可取,所以我可以检查多台计算机的来源 - 我没有对所有计算机的管理员)

linux programming source opensource-projects learning

11
推荐指数
1
解决办法
1647
查看次数

用零清除未使用的空间 (btrfs)

如何用零清除未使用的空间?(我要求用于btrfs文件系统的工具)

我正在寻找比它更聪明的东西

cat /dev/zero > /mnt/X/big_zero ; sync; rm /mnt/X/big_zero
Run Code Online (Sandbox Code Playgroud)

就像FSArchiver正在寻找“已用空间”并忽略未使用但相反的站点。

目的:我想压缩分区图像,因此强烈建议用零填充未使用的空间。

顺便提一句。对于 ext3,ext4 :用零 (ext3,ext4) 清除未使用的空间。我在这里要求 btrfs

澄清“更智能的算法”:我看到“更智能的算法”会导致混淆,在这里我终于决定添加一行。亲爱的读者,请将文件系统视为数据结构。为简单起见,让我们想象一下自平衡红黑树持有映射,用作关联键->值数组,其中值是整数。目标是用零清除所有负值。“不智能”算法将迭代它并将键:值对添加到新映射(最终将负值更改为零)。智能算法只会检测存储负值的位置并就地清除它们。

storage backup compression btrfs

10
推荐指数
2
解决办法
9110
查看次数

数字签名电子邮件的 Cli 验证

我是 Alice,我收到了 Bob 的签名电子邮件。

我使用 Web 电子邮件客户端(例如 GMail),我看到附件之一是smime.p7s.

我找到了“显示原始消息”选项并将内容保存到message.orig.

假设 Bob 签署了电子邮件,我如何从命令行验证它?

(让我们假设 Bob 使用由一些受人尊敬的机构签署的认证密钥 - 我不知道是哪个,但我想是)

(Alice 不想安装具有适当功能的电子邮件客户端,只是为了一封邮件)

cryptography openssl signature

10
推荐指数
1
解决办法
5056
查看次数

在双屏/双显示器设置中反转颜色?

为了在监视器上反转颜色,我调用:

xcalib -invert -alter
Run Code Online (Sandbox Code Playgroud)

问题是,在双显示器设置中,它仅在第一个屏幕上反转颜色。

我不能使用 Compitz 小工具进行颜色反转,因为我的设置是

  • 两个旋转(枢轴)显示器

当两者都是 Piovot 时,双屏无法在我的卡上进行创作。

Xorg 似乎是唯一的解决方案。

xcalib 很棒,因为我可以立即根据应用程序进行切换。

任何建议,解决方案如何使用 xcalib 在两个屏幕上反转颜色?

聚苯乙烯

-screen 参数不起作用:

X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  130 (XFree86-VidModeExtension)
  Minor opcode of failed request:  19 (XF86VidModeGetGammaRampSize)
  Value in failed request:  0x17
  Serial number of failed request:  10
  Current serial number in output stream:  10
Run Code Online (Sandbox Code Playgroud)

这是我的xrandr屏幕配置:

~$ xrandr                                                                                                                                                              
Screen 0: minimum 320 x 200, current 2400 …
Run Code Online (Sandbox Code Playgroud)

colors xorg multi-monitor

9
推荐指数
2
解决办法
5127
查看次数

基于 TCP 的 socat 可靠文件传输

我知道 "wait->stop" 设计的缺点,通常是用 netcat 提出的:

server$ cat test.dat | nc -q 10 -l -p 7878
client$ nc -w 10 remotehost 7878 > out.dat
Run Code Online (Sandbox Code Playgroud)

(这是不可靠的:不知道你等了多久,网络瓶颈总是可能多一秒钟。-另一件事->如果你能立即知道数据被传输并开始处理它们,为什么要等 10 秒!)

我想要解决方案,可靠且漂亮的 tcp 流关闭

我找到了 socat,关闭如下man socat

当其中一个流有效地到达 EOF 时,结束阶段就开始了。Socat 将 EOF 条件传输到另一个流,即尝试仅关闭其写入流,使其有机会正常终止。

我发现以下命令有效:

服务器发送文件:

server$ socat -u FILE:test.dat TCP-LISTEN:9876,reuseaddr
client$ socat -u TCP:127.0.0.1:9876 OPEN:out.dat,creat
Run Code Online (Sandbox Code Playgroud)

服务器接收文件:

server$ socat -u TCP-LISTEN:9876,reuseaddr OPEN:out.txt,creat && cat out.txt
client$ socat -u FILE:test.txt TCP:127.0.0.1:9876
Run Code Online (Sandbox Code Playgroud)

它可靠吗?可以改进吗?(我是否使用了正确的选项?是否有更好的设置选项?- socat 有很多选项)

file-sharing file-transfer tcp

9
推荐指数
1
解决办法
2万
查看次数

分区级别的重复数据删除

块级或更详细的重复数据删除有哪些可用的解决方案?

有基于文件的 - 使用“Copy-On-Write”方法。

我正在寻找块级“写时复制”,因此我可以定期查找公共块,或者 - 最好是 - 文件的一部分,合并它们并标记 CoW 使用方式。是否有类似的东西可用,还是仍然需要创建?我不确定 Btrfs 重复数据删除是否是块/文件/子部分级别?有 LessFS,但我不确定它提供什么级别的重复数据删除?也许其他解决方案?

filesystems deduplication

9
推荐指数
1
解决办法
1855
查看次数

恢复中断的复制过程

如何安全可靠地恢复使用或完成的将文件复制$A到备份位置的过程?$Bpv "$A" > "$B"cat "$A" > "$B"

(假设文件$A很大,例如 LVM2 快照文件)

它可以实现dd吗?

首选:bash 或 python(最好是 python3)解决方案。

示例场景:pv "$A" > "$B"复制 90% 后中断。如何恢复它,以完成复制过程而不是再次重复整个工作?

storage backup file-copy

9
推荐指数
2
解决办法
6777
查看次数

systemd.unit `RequiresMountsFor=` 与 `ConditionPathIsDirectory=`

我即将将该rsync --delete目录 /mnt/foo 的服务写入远程服务器。但是,由于--delete选项的原因,除非挂载 /mnt/foo,否则我不想运行它,因为这可能会导致删除远程上的所有文件。

ConditionX(例如ConditionPathIsDirectory)和RequiresMountsFor=指令实现什么,有什么区别(每个的优缺点)?

草稿:这是我目前的草图:

RequiresMountsFor=/mnt/foo
Run Code Online (Sandbox Code Playgroud)

对比

# assuming there is `bar_only_on_foo` subdirectory on monted directory, which does not exis on unmounted one.
ConditionPathIsDirectory=/mnt/foo/bar_only_on_foo
Run Code Online (Sandbox Code Playgroud)

添加到.service文件:

# /etc/systemd/system/rsync_to_remotey.service
# or : /home/$USER/.config/systemd/user/rsync_to_remotey.service
[Unit]
Description=rsync USER X data to REMOTE Y

[Service]
Type=simple
ExecStart=/home/USERX/rsync_userx_to_remotey.sh
Run Code Online (Sandbox Code Playgroud)

为了正确起见,这里是.timer文件:

# /etc/systemd/system/rsync_to_remotey.timer
# or : /home/$USER/.config/systemd/user/rsync_to_remotey.timer
[Unit]
Description=Runs every 30 minutes rsync USER X data to REMOTE Y

[Timer]
OnBootSec=30min
AccuracySec=1h …
Run Code Online (Sandbox Code Playgroud)

systemd systemd-timer

9
推荐指数
1
解决办法
1万
查看次数