- 论坛徽章:
- 0
|
昨日,在bash区的各位大师帮忙下完成了个脚本。但在使用过程中发现一个很奇怪的问题,手动执行该脚本的时候一切正常,但只要加入到crontab中就会获取出错误的信息,因此小弟非常迷惑。
脚本功能是使用telnet远程获取目标服务器上50001端口的xml信息,并将信息中的内容进行匹配,如果信息中匹配不到"lock status=null"字符串的时候,将会把当前获取到的xml信息l以邮件的方式发送出去。- #!/bin/bash
- /usr/bin/telnet 192.168.0.7 50001 > /tmp/info.txt
- grep -oP '((lock status|user online|login|player count|memory used|free|total)="([A-Z,a-z,0-9]*)")' /tmp/info.txt > /tmp/mail.txt
- if grep -q 'lock status="null"' /tmp/mail.txt;
- then
- echo "server is ok" > /tmp/server_ok.txt;
- else
- mail -s "server is down" admin@test.com < /tmp/mail.txt
复制代码 1、手动执行脚本时的信息- lock status="null"
- user online="4"
- login="0"
- player count="6"
- memory used="48329760"
- free="57097184"
- total="105426944"
复制代码 2、crontab执行后发现出现错误信息- Trying 192.168.0.7...
- Connected to 192.168.0.7.
- Escape character is '^]'.
复制代码 |
|