当 failed.log 文件发生更改时,我需要停止服务。我正在查看 watch 命令来执行此操作:
watch -d -g -t 'ls -l /home/username/*failed.log'
此命令将检查输出ls
是否已更改。如果有,我希望它停止 CUPS 服务。
我正在调查inotify-tools
,但这对我来说有点太复杂了。有什么建议么?
当 failed.log 文件发生更改时,我需要停止服务。我正在查看 watch 命令来执行此操作:
watch -d -g -t 'ls -l /home/username/*failed.log'
此命令将检查输出ls
是否已更改。如果有,我希望它停止 CUPS 服务。
我正在调查inotify-tools
,但这对我来说有点太复杂了。有什么建议么?
连接两个命令怎么样
&&
?这将确保在执行第二部分之前使用0
等于true
in的代码成功退出第一个命令。bash
如果是这样,则执行第二部分并且将停止 cups 服务。watch -d -g -t ls -l /home/username/*failed.log && service cups stop
我有一个类似的使用场景可能会对您有所帮助,具体取决于日志文件的内容。
我有一个 OpenVPN 服务器在工作。当我需要重新启动以应用更新但我有当前的用户会话时,我会设置一个 while 循环来检查特定
grep
模式(“ vpnip、用户名、wanip、时间戳”)。如果找到模式,我等待一段时间;否则,如果找不到模式(非零退出代码),我会重新启动。这对我的服务器非常具体,但您可以调整 grep 语句以满足您的需要。
上面的例子是
echo reboot now
因为我刚才不想重新启动,但你明白了。