标签: tail

grub2 配置中的命令“exec tail -n +3 $0”有什么逻辑?

创建自定义菜单项,卡在这个命令上:

exec tail -n +3 $0
Run Code Online (Sandbox Code Playgroud)

在终端中尝试过,得到了奇怪的结果,无法理解,这个命令究竟做了什么以及为什么 grub 需要它。请你解释一下好吗?

shell tail grub2 exec

8
推荐指数
2
解决办法
2190
查看次数

回显 tail 命令会产生意外输出?

此命令单独运行时会产生预期结果(crontab 的最后一行):

tail -n 1 /etc/crontab
Run Code Online (Sandbox Code Playgroud)

但是,当我将它作为 echo 命令的一部分运行以将结果发送到文件时,它会添加工作目录中所有文件的摘要以及预期结果:

sudo bash -c 'echo $(tail -n 1 /etc/crontab) > /path/to/file'
Run Code Online (Sandbox Code Playgroud)

为什么这个命令会产生额外的数据?

bash cron sudo echo tail

8
推荐指数
2
解决办法
2182
查看次数

是否可以将符号链接“滚动”到新文件而不影响任何打开的文件句柄?

我在本地开发的应用程序将其输出记录到使用当前时间戳格式化的文件中,例如app-%Y%m%d.log.

为了使能够在终端窗口中跟踪当前日日志变得简单,我有一个名为的符号链接current.log,指向今天的日志。

每天开始工作时,我需要杀死尾部进程,将符号链接指向今天的文件,然后重新运行命令到tail -f current.log.

是否可以在无需重新启动的情况下更改符号链接的目标tail- 通过更改文件句柄的目标而tail不是更明智?

为了自动执行这个“新工作日开始”任务,很容易设置一个 cron'ed 脚本来将符号链接指向今天的文件,但似乎现有tail流程不知道目标已经改变。

logs tail symlink

7
推荐指数
1
解决办法
6860
查看次数

tail -f 最近的日志文件

在一些地方我得到了这个工作

ls -rt /path/to/log/file/ | tail -1 | xargs tail -f
Run Code Online (Sandbox Code Playgroud)

但我不知道为什么它不会总是有效
(这是快速修复,直到我在这里修复日志滚动)

ls shell tail

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

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
查看次数

将 ls 的结果传送到尾部

我有一个包含一堆日志文件的目录。像这样的东西:

data170213.log
data170214.log
data170215.log
data170216.log
Run Code Online (Sandbox Code Playgroud)

我有兴趣查看最新文件的最后一个条目并关注它。如果我知道最新的文件是data170216.log,我可以用

tail -f data170216.log
Run Code Online (Sandbox Code Playgroud)

问题是,我不知道目录中最新文件的名称是什么。我可以识别它虽然

ls -1r *.log | head -1
Run Code Online (Sandbox Code Playgroud)

无法解决的是如何发送命令ls -1r *.log |的结果。head -1到命令tail -f [FILE]

我尝试了以下方法,但没有成功

tail -f < ls -1r *.log | head -1
Run Code Online (Sandbox Code Playgroud)

ls tail

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

将 EOF 发送到命名管道 - 清理/干燥 fifo

如果我有一些从命名管道读取的随机进程:

tail -f MYNAMEDPIPED 
cat MYNAMEDPIPE | someOtherProc
Run Code Online (Sandbox Code Playgroud)

在其他地方,我可以按名称处理 MYNAMEDPIPED。是否有一种安全干净的方法可以通过删除 MYNAMEDPIPED 或以某种方式“使其变干”来停止尾部进程?

换句话说

MYNAMEDPIPED.noMoreDataIsComingThroughSoPleaseStopTailingThis()
Run Code Online (Sandbox Code Playgroud)

:)

从其中一条评论来看,它说将 EOF 发送到 MYNAMEDPIPE。但我无法弄清楚如何做到这一点。

这显示了我面临的困难:

http://comp.os.linux.questions.narkive.com/2AW9g5yn/sending-an-eof-to-a-named-pipe

pipe shell-script tail fifo

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

仅显示文本的倒数第二行(倒数第二行)

我有一个未知的行数的一首诗,我想只显示倒数第一位。我应该使用什么命令?

sed awk tail text-processing ed

7
推荐指数
4
解决办法
5284
查看次数

使用“tail”跟踪文件而不显示最近的行

我想使用像 tail 这样的程序来跟踪正在写入的文件,但不显示最近的行。

例如,当关注一个新文件时,当文件少于 30 行时,不会显示任何文本。写入文件超过 30 行后,行将从第 1 行开始写入屏幕。

因此,当第 31-40 行写入文件时,第 1-10 行将写入屏幕。

如果没有简单的方法可以用tail来做到这一点,也许有一种方法可以在每次第一个文件扩展一行时将第一个文件的前一行写入新文件,并将新文件的尾部写入......

linux command-line tail

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

通过 grep 管道传输的 tail -f 不输出到文件,而是输出到控制台

我正在使用以下命令

tail -f /mydir/myfile |  grep "searchterm" >> outfile
Run Code Online (Sandbox Code Playgroud)

没有-f它就可以正常工作,但是有了-f我需要的 ,就不会将任何内容写入文件。以下输出到控制台就好了

tail -f /mydir/myfile |  grep "searchterm"
Run Code Online (Sandbox Code Playgroud)

我需要做什么才能让我的命令正确地写入文件?

grep tail stdout

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

标签 统计

tail ×10

ls ×2

shell ×2

awk ×1

bash ×1

command-line ×1

cron ×1

echo ×1

ed ×1

exec ×1

fifo ×1

files ×1

grep ×1

grub2 ×1

linux ×1

logs ×1

open-files ×1

pipe ×1

sed ×1

shell-script ×1

stdout ×1

sudo ×1

symlink ×1

text-processing ×1