Mar*_*arc 3 shell-script asterisk
无论如何编写一个bash,当我的电话分机无法访问时,它可以通过电子邮件通知我?
输出来自 /var/log/asterisk/full
[Nov 15 13:25:16] NOTICE[7884] chan_sip.c: Peer '7778' is now UNREACHABLE! Last qualify: 17
[Nov 15 13:25:17] NOTICE[7884] chan_sip.c: Peer '7169' is now UNREACHABLE! Last qualify: 17
[Nov 15 13:25:17] NOTICE[7884] chan_sip.c: Peer '7176' is now UNREACHABLE! Last qualify: 18
[Nov 15 13:25:18] NOTICE[7884] chan_sip.c: Peer '7771' is now UNREACHABLE! Last qualify: 14
[Nov 15 13:25:18] NOTICE[7884] chan_sip.c: Peer '7606' is now UNREACHABLE! Last qualify: 17
[Nov 15 13:25:18] NOTICE[7884] chan_sip.c: Peer '7773' is now UNREACHABLE! Last qualify: 14
[Nov 15 13:25:19] NOTICE[7884] chan_sip.c: Peer '7125' is now UNREACHABLE! Last qualify: 15
[Nov 15 13:25:20] NOTICE[7884] chan_sip.c: Peer '7772' is now UNREACHABLE! Last qualify: 15
[Nov 15 13:25:22] NOTICE[7884] chan_sip.c: Peer '7605' is now UNREACHABLE! Last qualify: 16
[Nov 15 13:25:22] NOTICE[7884] chan_sip.c: Peer '7183' is now UNREACHABLE! Last qualify: 18
[Nov 15 13:25:29] NOTICE[7884] chan_sip.c: Peer '7601' is now UNREACHABLE! Last qualify: 24
[Nov 15 13:25:30] NOTICE[7884] chan_sip.c: Peer '7776' is now UNREACHABLE! Last qualify: 47
[Nov 15 13:25:32] NOTICE[7884] chan_sip.c: Peer '7604' is now UNREACHABLE! Last qualify: 25
[Nov 15 13:25:34] NOTICE[7884] chan_sip.c: Peer '7774' is now UNREACHABLE! Last qualify: 46
[Nov 15 13:25:38] NOTICE[7884] chan_sip.c: Peer '7770' is now UNREACHABLE! Last qualify: 41
[Nov 15 13:25:41] NOTICE[7884] chan_sip.c: Peer '7775' is now UNREACHABLE! Last qualify: 42
Run Code Online (Sandbox Code Playgroud)
如您所见,直到人们抱怨无法拨打电话时,我才知道电话已停机。
到目前为止我做了什么:
#!/bin/bash
email="myemail@mydomain.com"
offlineExtensions=$(cat /var/log/asterisk/full | grep -i unreachable)
if [ "$offlineExtensions" ]
then
printf 'Extensions that are currently offline...\n''\n'"$offlineExtensions" | mail -s 'Extensions OFFLINE' "$email"
fi
Run Code Online (Sandbox Code Playgroud)
我想使用sed
and awk
,但我是 bash 脚本的新手。
如果此脚本不断检查Asterisk log file
以找出扩展是否无法访问,那就太好了。
不看日志,asterisk
直接问哪个扩展不行
asterisk -rx 'sip show peers like ^[0-9]{4}$' | awk 'NR>1 && !/ OK /'
Run Code Online (Sandbox Code Playgroud)
将报告不是“OK”的 4 位扩展名。