首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用watch命令(或其他方法)在文件更改时停止服务

使用watch命令(或其他方法)在文件更改时停止服务
EN

Ask Ubuntu用户
提问于 2018-09-06 08:03:02
回答 2查看 926关注 0票数 0

当failed.log文件中发生更改时,我需要停止服务。我正在查看watch命令以执行以下操作:watch -d -g -t 'ls -l /home/username/*failed.log' --此命令将检查来自ls的输出是否已更改。如果有,我想让它停止CUPS服务。

我在研究inotify-tools,但这对我来说有点太复杂了。有什么建议吗?

EN

回答 2

Ask Ubuntu用户

回答已采纳

发布于 2018-09-06 08:21:16

&&连接这两个命令怎么样?这将确保在执行第二部分之前,使用代码0 (在bash中等于true )成功地退出第一个命令。如果是这样,则执行第二部分并停止cups服务。

watch -d -g -t ls -l /home/username/*failed.log && service cups stop

票数 2
EN

Ask Ubuntu用户

发布于 2018-09-06 09:07:09

根据日志文件的内容,我有类似的使用场景,可能会对您有所帮助。

我有一台OpenVPN服务器在工作。当我需要重新启动来应用更新,但我有当前的用户会话时,我设置了一个while循环来检查一个特定的grep模式("vpnip,username,wanip,time戳“)。如果找到了该模式,我将等待一段时间;否则,如果找不到该模式(非零退出代码),我将重新启动。

这对我的服务器非常具体,但是您可以调整grep语句以满足您的需要。

代码语言:javascript
复制
while [ 1 ] ; do 
    if egrep '10.8.0.[0-9]+,[a-zA-Z\-]+,[0-9\.]{7,15}:[0-9]+,(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) +[0-9]{1,2} [0-9:]{8} [0-9]{4}' /ramdisk/openvpn-status.log ; then 
        echo someone still connected ;
        sleep 30s ; 
    else 
        echo reboot now ; 
    fi ; 
done

上面的例子有echo reboot now,因为我现在不想重新启动,但是您知道了。

票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1072672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档