小编Dew*_*oel的帖子

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

在启动时运行无限循环

我想在启动时运行一个命令,它每 10 分钟 ping 某个地址并将结果写入文件。我现在已经弄清楚如何执行 ping 和文件写入以及 10 分钟的间隔:

while true; do my-command-here; sleep 600; done
Run Code Online (Sandbox Code Playgroud)

我的问题是,/etc/init.d/rc.local我可以把它放进去还是应该把它/etc/rc.local完全放进去或其他地方?我特别担心,因为它是一个无限循环,所以我不确定是否可以将它放在这些启动脚本之一中。

一些帮助将不胜感激。我正在使用 Ubuntu 12.04.5

startup ping

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

从其他脚本内部调用脚本

我有一个脚本,我每 10 分钟调用一次 cronjob:

*/10 * * * * ~/mydirectory/myscript.sh

现在,里面~/mydirectory还有另一个脚本,让我们说myotherscript.sh我想从里面调用哪个myscript.sh。两个脚本都被chmod设置为可执行,当我myscript.sh从命令行执行时,~/mydirectory一切正常。我按如下方式执行它:

. 脚本文件

但它看起来不像 cronjob 工作。当我从主脚本中删除对第二个脚本的引用时,它仍然有效,所以我怀疑我引用第二个脚本的方式有问题。这是内容的myscript.sh样子:

#! /bin/bash
do-something
do-something-else
. myotherscript.sh
Run Code Online (Sandbox Code Playgroud)

是不是当cronjob 运行时,当前目录不是~/mydirectory,所以cronjob 找不到该myotherscript.sh文件?如果是这样,我如何让它看到文件?我不想在主脚本中指定绝对路径,因为我可能想myotherscript.sh在某个时候将它(和)移动到另一个目录,或者我可能想~/mydirectory在某个时候重命名,然后我不想更改内容myscript.sh以引用新的绝对路径。

额外问题:现在,当需要执行 cronjob 时,我基本上只是抱着大拇指并希望最好,但我无法看到它是否成功,如果失败,为什么失败。关于如何查看 cronjob 未按预期执行的任何提示?

cron shell-script

3
推荐指数
1
解决办法
6081
查看次数

标签 统计

cron ×1

ls ×1

ping ×1

shell-script ×1

startup ×1

tail ×1