首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动广域网IP转发

自动广域网IP转发
EN

Stack Overflow用户
提问于 2017-11-30 16:32:03
回答 1查看 50关注 0票数 0

我想用我的脚本来完成:

  1. 把我的广域网地址写到文件里。
  2. 将现有文件与新文件进行比较。
  3. 如果新的和旧的不一样,它应该给我发电子邮件。
  4. 如果他们有不同之处,就应该用新的改写旧的。

但实际上不管用,我也不知道为什么。

它会发邮件给我WAN2.txt文件,不管它是否相同,它也不会覆盖它。

代码语言:javascript
复制
#!/bin/bash                                                 

wan1=/home/user/Scripts/wanip.txt                        
wan2=/home/user/Scripts/wanip2.txt                       


dig +short myip.opendns.com @resolver1.opendns.com>$wan2    

if [ "$wan1" != "$wan2" ]                                   

then                                                        
        /usr/bin/sendEmail -f showname@example.com -t sendto@example.com -u Wanip -m "hallo" -s smtp.example.com:587 -xu user -xp passwort -a $wan2

elif [ "$wan1" != "$wan2" ]                                 

then                                                        
        $wan2>$wan1                                         

else exit                                                   

fi                                                          
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-30 18:31:59

您正在比较变量,而不是文件的内容。

在您的示例中,变量$wan1将永远不会保存与$wan2相同的值,因此脚本将始终向您发送电子邮件。使用cmpdiff等比较文件。

而且,您的ifelif也有相同的条件,这意味着当if被触发时,elif不会触发。

$wan1 > $wan2也不正确,因为它会搜索名为/home/user/Scripts/wanip.txt程序并将输出重定向到/home/user/Scripts/wanip2.txt。使用cp覆盖或更改行为cat "$wan2" > "$wan1"

代码语言:javascript
复制
#!/bin/bash                                                 

wan1=/home/user/Scripts/wanip.txt                        
wan2=/home/user/Scripts/wanip2.txt                       

dig +short myip.opendns.com @resolver1.opendns.com > "$wan2"    

if ! cmp --quiet "$wan1" "$wan2"; then                                                        
   /usr/bin/sendEmail -f showname@example.com -t sendto@example.com -u Wanip -m "hallo" -s smtp.example.com:587 -xu user -xp passwort -a "$wan2"  
   cp -f "$wan2" "$wan1"                                                                                         
fi  
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47578195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档