如何在watch结合grep+cut+sort使用时为指定IP添加颜色高亮
邮件服务器登录日志IP高亮监控配置
我正使用watch命令监控邮件服务器的登录日志(近期服务器遭遇入侵),现有命令运行正常,但我希望为指定IP地址配置颜色高亮,方便快速识别非内网IP的登录请求。
现有命令
当前使用的日志查询命令:
grep -Hrn "Login:" /var/log/maillog | cut -d ' ' -f 8,10 | sort -u
配合watch的实时监控命令:
watch "grep -Hrn "Login:" /var/log/maillog | cut -d ' ' -f 8,10 | sort -u"
命令输出样例
user=<Email1@Doamin.co.uk>, rip=123.123.123.123, user=<Email1@Doamin.co.uk>, rip=321.321.321.321, user=<Email2@Doamin.co.uk>, rip=123.123.123.123, user=<Email2@Doamin.co.uk>, rip=111.111.111.111, user=<Email3@Doamin.co.uk>, rip=123.123.123.123, user=<Email4@Doamin.co.uk>, rip=123.123.123.123, user=<Email4@Doamin.co.uk>, rip=198.1987.198.198, user=<Email4@Doamin.co.uk>, rip=81.81.81.81,
需求说明
假设内网IP为123.123.123.123,需要实现该IP的自动颜色高亮效果。目前员工有异地办公、移动端登录邮箱的场景,同个邮箱账号出现多个登录IP属于正常情况,高亮IP仅为方便日常排查。
最终解决方案
为watch命令添加-c参数,grep添加-z参数即可实现高亮且不修改原始输出,最终命令如下:
watch -c "grep -Hrn --color=always "Login:" /var/log/maillog | grep --color=always -z "123.123.123.123" | cut -d ' ' -f 8,10 | sort -u"
内容的提问来源于stack exchange,提问作者Dave Hamilton
相关产品推荐
相关产品推荐

