2015-10-23 19 views
0

我已经创建了一个脚本,以便接收带有我的macbookpro的wan ip信息和GPS位置的邮件。脚本的内容是这样的:使用GPS信息和邮件更改IP日志。我需要鲁棒性


#!/bin/bash 
# -*- ENCODING: UTF-8 -*- 

if [ ! -e /tmp/ip ]; then 
    curl -s icanhazip.com > /tmp/ip 
fi 
curl -s icanhazip.com > /tmp/ip2 
newip=$(diff /tmp/ip /tmp/ip2 | wc -l) 
if [ $newip -ne 0 ]; then 
    mv -f /tmp/ip2 /tmp/ip 
    date > IPlog.txt 
    curl -s icanhazip.com >> IPlog.txt 
    sudo ./Downloads/whereami >> IPlog.txt 
    mailx [email protected] < IPlog.txt 
    rm IPlog.txt 
else 
    rm /tmp/ip2 
fi 

每分钟SISTEM执行这个脚本,如果广域网IP改变了这一验证。如果它发生了变化,脚本会向我发送一封包含新信息的邮件。问题是:

1.-邮件并不总是正确发送。有时候我不会重视它。

2.-邮件不包含所有的信息。有时它只包含新的wan ip地址。

3.-有时邮件被限定为垃圾邮件,我不知道为什么,因为发件人始终是同一个地址。

回答

0

我有一些建议来调试你的问题。

首先,你应该使用不同的位置来存储ip比tmp。如果您的系统在启动时擦除了您的tmp文件夹,并且您的系统在启动后得到新的WAN IP,您将丢失先前录制的IP。

使用$?发送时,请检查mailx的退出代码。 0是好的。你可以做一个while循环,并不断尝试发送它,直到你得到退出代码0.

你可以将邮件的信息添加到本地变量而不是文件。

IPLog=`date` 
IPLog+=`curl -s icanhazip.com` 

垃圾邮件问题可能是由于邮件中的IP地址。或者任何./Downloads/whereami正在添加到文件中。将发送电子邮件地址添加为受信任的发件人可能会这样做。

检查电子邮件标题以了解有关垃圾邮件分数的信息。