2015-10-23 50 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正在添加到文件中。將發送電子郵件地址添加爲受信任的發件人可能會這樣做。

檢查電子郵件標題以瞭解有關垃圾郵件分數的信息。