在 unRAID 用户脚本中记录 jdupes 输出

在 unRAID 用户脚本中记录 jdupes 输出

我有一个 unRAID 服务器,用于jdupes管理重复文件。我设置了一个用户脚本jdupes -rL /dir1 /dir2。但是,用户脚本的日志不显示jdupes.

jdupes输出在终端中工作。如果我stdbuf -oL jdupes -rL /dir1 /dir2 >output.txt 2>&1从脚本中调用,output.txt 包含我需要查看的数据。

但是,这两种方法都无法在用户脚本中工作。我也尝试过

output=$(stdbuf -oL jdupes -rL /dir1 /dir2 2>&1)
echo $output
blah=42
echo $blah

日志文件仅显示42.我尝试过的其他事情包括写入临时文件并再次读取它并将输出回显到日志(但临时文件已创建但从未写入),直接写入用户脚本的日志文件(无输出)以及tee文件(文件已创建但为空)。

所有这些方法在从终端调用时都有效。我认为这是 unRAID 用户脚本和 jdupes 之间交互所特有的问题,但任何指针都会有帮助。

更新:

所以标准输出jdupes如下(带有我的注释):

Scanning: x files, y items (in d specified)                # line 1
Progress [i/j, k pairs matched] n%  (confirm: m%)          # line 2

# output lines (I want to log these)
[SRC] /dir1/file1
----> /dir2/filex1

[SRC] /dir1/file2
----> /dir2/filex2

从终端运行时,第 1 行和第 2 行显示在终端中并在运行时更新。运行完成后,将显示第 1 行和输出行。

当从终端运行并重定向到类似 的文件时jdupes -rfL /dir1 /dir2 >> output.txt,第 1 行和第 2 行在运行时和完成后显示在终端中,第 1 行位于终端中,输出行位于 output.txt 中。这正是我想要发生的事情。

但是,当从用户脚本中运行时,日志文件绝对不会显示任何内容。使用Chris回答中的方法,日志文件显示运行时不断更新的第1行和第2行,但脚本完成后,日志文件为空。没有线路 1、没有线路 2、也没有输出线。我希望输出行单独出现在日志文件中。

希望这能让我的问题和意图更清楚。

相关内容