我有一个包含一堆日志文件的目录。像这样的东西:
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) 我想在启动时运行一个命令,它每 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
我有一个脚本,我每 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 未按预期执行的任何提示?