小编roz*_*acz的帖子

已达到内核 inotify 监视限制

我目前在 linux 机器上遇到问题,作为 root 我有命令返回错误,因为已达到 inotify 监视限制。

# tail -f /var/log/messages
[...]
tail: cannot watch '/var/log/messages': No space left on device
# inotifywatch -v /var/log/messages
Establishing watches...
Failed to watch /var/log/messages; upper limit on inotify watches reached!
Please increase the amount of inotify watches allowed per user via '/proc/sys/fs/inotify/max_user_watches'.` 
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索了一下,我发现的每个解决方案都是通过以下方式增加限制:

sudo sysctl fs.inotify.max_user_watches=<some random high number>
Run Code Online (Sandbox Code Playgroud)

但我无法找到任何有关提高该价值的后果的信息。我猜默认内核值的设置是有原因的,但它似乎不适用于特定用途。(例如,当使用带有大量文件夹的 Dropbox 或监控大量文件的软件时)

所以这里是我的问题:

  • 提高该值是否安全,过高的值会产生什么后果?
  • 有没有办法找出当前设置的手表是什么以及哪个进程将它们设置为能够确定达到的限制是否不是由有故障的软件引起的?

linux kernel inotify

247
推荐指数
2
解决办法
17万
查看次数

进程替换和管道

我想知道如何理解以下内容:

将命令的标准输出通过管道传输到另一个命令的标准输入是一种强大的技术。但是,如果您需要通过管道传输多个命令的标准输出怎么办?这就是过程替换的用武之地。

换句话说,进程替换可以做任何管道可以做的事情吗?

进程替换可以做什么,而管道不能?

shell pipe io-redirection process-substitution

108
推荐指数
5
解决办法
4万
查看次数

如何在每次 grep 匹配后显示行,直到其他特定匹配?

我知道通过使用"-A NUM"开关,我可以在每次匹配后打印特定数量的尾随行。我只是想知道是否可以打印尾随行,直到在每次匹配后找到特定单词为止。例如,当我搜索“Word A”时,我想查看包含“Word A”的行以及它之后的行,直到包含“Word D”的行。

语境:

Word A
Word B
Word C
Word D
Word E
Word F
Run Code Online (Sandbox Code Playgroud)

命令:

grep -A10 'Word A'
Run Code Online (Sandbox Code Playgroud)

我需要这个输出:

Word A
Word B
Word C
Word D
Run Code Online (Sandbox Code Playgroud)

grep

63
推荐指数
3
解决办法
10万
查看次数

如何在 Linux 上检查密码?

我想从 linux 命令行检查给定的明文密码是否与 /etc/shadow 上的加密密码相同

(我需要这个来验证网络用户的身份。我正在运行一个嵌入式 linux。)

我可以访问 /etc/shadow 文件本身。

linux command-line password embedded

33
推荐指数
2
解决办法
12万
查看次数

一个已被否认并丢失其终端的进程的输出会发生什么?

如果我关闭启动某个进程的虚拟终端,输出是直接转到/dev/null,还是会以某种方式污染内存? 无论如何,我可以在此之后的任何时候获取输出以继续阅读吗?

[编辑]:那么,否认一个过程的那一刻是否有效地结束了我控制其输出的权力?

我还注意到,如果我否认一个停止的进程,起初一切似乎都很正常:它既不会终止,也不会显示在作业中。但是,如果我退出(并且我不是说关闭终端,只是从 退出su,例如),该过程将终止。尽管如此,后台运行的被拒绝的进程可以保持运行。

process terminal io-redirection job-control disown

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

这两个 dd 命令有什么区别?

只要它们乘以相同的值,两个dd具有不同bsandcount值的命令有什么区别?例如:

  1. dd if=/dev/random of=aa bs=1G count=2
  2. dd if=/dev/random of=aa bs=2G count=1

dd

24
推荐指数
3
解决办法
4292
查看次数

-q 肯定会关闭 wget 输出日志记录吗?

我目前有一个在 linux 服务器上运行的 shell 脚本,该服务器在 oder 中使用 wget 下载远程网页。这又由计划在特定时间运行的 cron 作业执行。

有人可以确认添加-q选项不仅会阻止所有输出返回到控制台,还会阻止 wget 写入日志或尝试创建日志文件的所有尝试吗?

linux shell wget

21
推荐指数
2
解决办法
4万
查看次数

NetworkManager 的 WiFi 设置存储在哪里?

我记得在 /etc/$WE/wpa_supplicant.conf 中尝试在基于 debian 的系统上强制建立半安全网络的日子,但现在到 xubuntu,我不需要做任何 *.conf-ing一会儿(在网络方面)

因此,我很想知道;nm gui是如何存储网络信息的?这可以备份或导出为 wpa_supplicant.conf 文件吗?

networking wifi ubuntu networkmanager xubuntu

15
推荐指数
2
解决办法
3万
查看次数

有没有办法从管道执行本机二进制文件?

echo 'main(){}' | gcc -xc - -o /dev/stdout | ???
Run Code Online (Sandbox Code Playgroud)

有没有办法在类 Unix 系统上运行输出二进制文件?

编辑:我需要它在沙盒环境中运行 g++ 的输出,在那里我不能写任何文件(我保证没有恶意)。

shell executable stdout

14
推荐指数
3
解决办法
3715
查看次数

在 zsh 中扩展变量

下面的脚本在 bash 中有效,但在 zsh 中无效。我认为这是因为在变量中OPTS,我正在“扩展”(不确定这是否是正确的词)变量$EXCLUDE,而这种语法在 zsh 中不起作用。我将如何替换该行以使其在 zsh 上工作?

SRC="/path_to_source"
DST="/path_to_dest"
EXCLUDE=".hg"  
OPTS="-avr --delete --progress --exclude=${EXCLUDE} --delete-excluded"                                               

rsync $OPTS $SRC $DST   
Run Code Online (Sandbox Code Playgroud)

shell zsh

11
推荐指数
3
解决办法
6318
查看次数