小编Bry*_*anK的帖子

从保持打开的已删除文件中释放磁盘空间的最佳方法

嗨,我有许多文件已被删除,但由于某种原因,与已删除文件相关的磁盘空间无法使用,直到我明确终止占用磁盘空间的文件的进程

$ lsof /tmp/
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF      NODE NAME
cron     1623 root    5u   REG   0,21        0 395919638 /tmp/tmpfPagTZ4 (deleted)
Run Code Online (Sandbox Code Playgroud)

上面删除的文件占用的磁盘空间会导致问题,例如在尝试使用 Tab 键自动完成文件路径时出现错误 bash: cannot create temp file for here-document: No space left on device

但是在我运行kill -9 1623该 PID 的空间后,我不再收到错误消息。

我的问题是:

  • 为什么在第一次删除文件时没有立即释放这个空间?
  • 取回与已删除文件关联的文件空间的最佳方法是什么?

请让我知道我使用过的任何不正确的术语或与这种情况相关的任何其他相关信息。

lsof open-files deleted-files

31
推荐指数
4
解决办法
15万
查看次数

向用户指示程序未挂起的资源友好方式

我在 *nix 系统上有一个 Perl 脚本,它曾经处理 50,000 多行文本。这需要一些时间。我试图找到一种资源友好的方式,让用户知道程序在处理所有这些文本时没有挂起。

目前,我正在处理文本时实时打印输出。我正在刷新输出缓冲区,然后在一行上打印输出\r。这似乎是对资源的不必要使用,因为它几乎是我不打印任何内容时的两倍,但正如我所说,当不打印任何内容时,程序看起来像是挂了。

所以我的问题是:在执行长时间运行的任务时,是否有一种标准或简单的方法可以让用户知道程序确实在运行?

perl output

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

tail -f, 判断文件是否不再写入

我正在使用tail -f跟踪日志文件的增长。我无法找到一种方法来检测正在写入日志文件的进程(当它崩溃或以其他方式终止时)是否不再访问或写入文件。

这是我正在使用的脚本

tail -f log_file | while read LOGLINE
do
  echo -e "${LOGLINE}"
  if [[ "${LOGLINE}" == *ERROR* ]] ; then
  echo -e "ERROR FOUND : ${LOGLINE}\n"

  # handle the error here

  fi
done
Run Code Online (Sandbox Code Playgroud)

检测写入日志文件的进程已停止(或 tail -f 不再接收输入)并向屏幕回显消息以提醒我该事件的最简单和最有效的方法是什么?

tail open-files files

7
推荐指数
2
解决办法
3776
查看次数

无法让正则表达式与 find 一起使用

我在find使用正则表达式标志时遇到了很多麻烦。我egrep自己使用在文件中查找日期模式,如下所示:

egrep '[0-9]{4}-[0-9]{2}-[0-9]{2}' 
Run Code Online (Sandbox Code Playgroud)

这将返回格式为 CCYY-MM-DD 的日期就好了。我正在尝试将这种相同的模式与find. 我试过了:

find . -regextype egrep -regex "[0-9]{4}-[0-9]{2}-[0-9]{2}"
find . -type f -regex "[0-9]{4}-[0-9]{2}-[0-9]{2}"
Run Code Online (Sandbox Code Playgroud)

试图反斜杠大括号......

find . -type f -regextype egrep -regex "[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}"
Run Code Online (Sandbox Code Playgroud)

所有这些似乎都没有返回任何东西。我没有收到错误消息,没有输出......我什至试图将输出重定向到一个文件,但没有......

很难找到使用find正则表达式的好资源。如果有人可以提供帮助,我将不胜感激。我不反对任何类型的正则表达式find支持,尽管我喜欢egrep因为-o标志只返回匹配项,而不是整行。但实际上,我只需要find在目录中查找文件名中与上述模式匹配的所有文件。

find regular-expression

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