当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 11 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 请教个实现开机后自动发Email报告IP的问题
帖子发表于 : 2007-02-03 18:54 

注册: 2007-02-03 18:13
帖子: 21
送出感谢: 0 次
接收感谢: 0 次
因为我所处的网络IP不固定,我想让电脑远程启动(重启)后,不需要用户登陆。
自动发送IP到我的信箱myemail@to.com, 以便我能通过SSH远程控制这台电脑。

发送邮件我用了SendEmail这个程序,我写了下面的脚本upip,
放在了\etc\init.d里, chmod +x upip。
这个脚本测试通过,我可以收到相关包含IP的email。

然后执行 sudo update-rc.d upip defaults 自动做启动和关闭的链接.


#!/bin/bash
ifconfig >$filename

sendEmail -f email@from.com \
-t myemail@to.com \
-s server.com \
-o message-file= $filename \
-u "Report of IP"


可能的问题是启动后没有权限生成文件$filename。 我想应该可以把ifconfig结果存为一个变量,
然后直接发送,不存文件,但还不知道如何实现。

为了测试这个脚本是否能直接启动, 我把只发了一封简单的信,
#!/bin/bash

sendEmail -f email@from.com \
-t myemail@to.com \
-s server.com \
-m "test" \
-u "Report of IP"

但是发现启动后也没有自动执行。

请大伙帮忙看看是哪里出了问题。 谢谢!


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-02-03 19:10 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
ifconfig的不能认局域网的外网ip。
代码:
w3m -no-cookie -dump www.ip138.com|grep -o "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"
可以取得。

保存文件可以指定路径,就不会有权限问题。

既然是email。email的头信息,解析出来也可以直接看到发送的ip吧。

脚本执行,直接加到/etc/rc2.d/里面。加到S40网络启动以后的位置,试试。


_________________
● 鸣学


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-02-03 19:21 

注册: 2007-02-03 18:13
帖子: 21
送出感谢: 0 次
接收感谢: 0 次
eexpress 写道:
ifconfig的不能认局域网的外网ip。
代码:
w3m -no-cookie -dump www.ip138.com|grep -o "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"
可以取得。

保存文件可以指定路径,就不会有权限问题。



既然是email。email的头信息,解析出来也可以直接看到发送的ip吧。

脚本执行,直接加到/etc/rc2.d/里面。加到S40网络启动以后的位置,试试。


ifconfig我发现没有问题,是可以取得(实)IP的。

我把文件保存为 /tmp/ip.txt 这样可以吗? 启动的时候执行权限是su吗?

似乎最重要的问题还是这个脚本没有执行。
执行 sudo update-rc.d upip defaults 的结果是
Adding system startup for /etc/init.d/upip.sh ...
/etc/rc0.d/K20upip.sh -> ../init.d/upip.sh
/etc/rc1.d/K20upip.sh -> ../init.d/upip.sh
/etc/rc6.d/K20upip.sh -> ../init.d/upip.sh
/etc/rc2.d/S20upip.sh -> ../init.d/upip.sh
/etc/rc3.d/S20upip.sh -> ../init.d/upip.sh
/etc/rc4.d/S20upip.sh -> ../init.d/upip.sh
/etc/rc5.d/S20upip.sh -> ../init.d/upip.sh

我改到S40以后再试试。 多谢了。


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-02-03 19:38 

注册: 2007-02-03 18:13
帖子: 21
送出感谢: 0 次
接收感谢: 0 次
eexpress 写道:
既然是email。email的头信息,解析出来也可以直接看到发送的ip吧。

脚本执行,直接加到/etc/rc2.d/里面。加到S40网络启动以后的位置,试试。


请问如何如何从email头信息解析出发送ip?

我用了 ln -s /etc/init.d/upip /etc/rc2.d/S95upip,但还没有收到email :(

但查看状态 /etc/init.d/upip status 的时候会执行这个脚本。


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-02-03 22:01 
头像

注册: 2006-11-29 14:25
帖子: 78
送出感谢: 0 次
接收感谢: 0 次
引用:
请问如何如何从email头信息解析出发送ip?

我用了 ln -s /etc/init.d/upip /etc/rc2.d/S95upip,但还没有收到email :(

但查看状态 /etc/init.d/upip status 的时候会执行这个脚本。


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2007-02-03 23:06 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
email导出成mbs等格式。反正是文本的了。不过只能看到发送的服务器ip。还是你把ip加到邮件算了。

引用:
Received: from www.3322.org (unknown [61.177.95.125])
by mx7 (Coremail) with SMTP id wKjAO7D7L9YmiaNFQ9p8Lw==.16860S2;
Tue, 09 Jan 2007 20:23:02 +0800 (CST)


_________________
● 鸣学


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2007-02-04 3:52 
头像

注册: 2006-04-12 18:54
帖子: 4669
送出感谢: 0 次
接收感谢: 7
用花生壳之类的不好吗?


_________________
blog:杰林修·呓


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2007-02-04 10:25 

注册: 2007-02-03 18:13
帖子: 21
送出感谢: 0 次
接收感谢: 0 次
eexpress 写道:
脚本执行,直接加到/etc/rc2.d/里面。加到S40网络启动以后的位置,试试。


我把以前的链接都删除了,然后 ln -s /etc/init.d/upip /etc/rc2.d/S95upip,
现在可以生成所需要的文件,但是没有发送email, 请问可能是什么问题?
或者有没有更好的办法实现这个功能?
多谢!


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2007-02-04 15:00 
头像

注册: 2006-07-14 18:56
帖子: 345
地址: Apple Valley, Planet Tux, Linux System
送出感谢: 0 次
接收感谢: 0 次
如果你的ip经常变的话,最好把ipup放到crontab里去,而不是仅开机的时候执行一次。
comtex 写道:
或者有没有更好的办法实现这个功能?
多谢!

可以用ekiga啊,系统默认就装好了。再装个sipsak(只有147k)就能发消息了。
比如,在内网的机器上运行:
代码:
~$ sipsak -s sip:85451@ekiga.net -M -B "hello"
warning: ignoring -i option when in usrloc mode
timeout after 500 ms
biggest delay between request and response was 942.169 ms
1 time(s) the timeout of 500 ms exceeded and request was retransmitted.

在ekiga下就可以收到这条消息(见下图)。我是在本机上运行sipsak的,所以后面的地址是127.0.0.1,不然的话应该可以看到公网ip的。


附件:
Screenshot-Chat Window.png
Screenshot-Chat Window.png [ 19.1 KiB | 被浏览 1747 次 ]

页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2007-02-06 8:41 

注册: 2007-02-03 18:13
帖子: 21
送出感谢: 0 次
接收感谢: 0 次
5451vs5451 写道:
如果你的ip经常变的话,最好把ipup放到crontab里去,而不是仅开机的时候执行一次。
comtex 写道:
或者有没有更好的办法实现这个功能?
多谢!

可以用ekiga啊,系统默认就装好了。再装个sipsak(只有147k)就能发消息了。
比如,在内网的机器上运行:
代码:
~$ sipsak -s sip:85451@ekiga.net -M -B "hello"
warning: ignoring -i option when in usrloc mode
timeout after 500 ms
biggest delay between request and response was 942.169 ms
1 time(s) the timeout of 500 ms exceeded and request was retransmitted.

在ekiga下就可以收到这条消息(见下图)。我是在本机上运行sipsak的,所以后面的地址是127.0.0.1,不然的话应该可以看到公网ip的。


我的IP是每次开机的时候才有可能变,是不是就不用放到crontab了?

看起来ekiga不错,多谢多谢!

之前的email没有发送成功问题是因为我把sendEmail装在自己的账号下,启动的时候似乎没有权限执行,或者是找不到, 我重新装在了/usr/local/bin/sendEmail ,并指定了路径就可以了。在同事的帮助下,我又把原来的方法改了一下,不用存文件,直接从ipconfig的结果中提取并发送ip信息。完整脚本如下:

#!/bin/bash

ipinfo=`/sbin/ifconfig | grep 'inet addr:'| grep -v '127.0.0.1 ' | cut -d: -f2 | awk '{ print $1}'`
#echo $ipinfo

/usr/local/bin/sendEmail -f name@send.com \
-t name@to.com \
-s mailserver\
-u "Report of my IP:"$ipinfo
-m "anything"


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 请教个实现开机后自动发Email报告IP的问题
帖子发表于 : 2011-10-11 15:57 

注册: 2010-10-16 10:27
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
comtex 写道:
5451vs5451 写道:
如果你的ip经常变的话,最好把ipup放到crontab里去,而不是仅开机的时候执行一次。
comtex 写道:
或者有没有更好的办法实现这个功能?
多谢!

可以用ekiga啊,系统默认就装好了。再装个sipsak(只有147k)就能发消息了。
比如,在内网的机器上运行:
代码:
~$ sipsak -s sip:85451@ekiga.net -M -B "hello"
warning: ignoring -i option when in usrloc mode
timeout after 500 ms
biggest delay between request and response was 942.169 ms
1 time(s) the timeout of 500 ms exceeded and request was retransmitted.

在ekiga下就可以收到这条消息(见下图)。我是在本机上运行sipsak的,所以后面的地址是127.0.0.1,不然的话应该可以看到公网ip的。


我的IP是每次开机的时候才有可能变,是不是就不用放到crontab了?

看起来ekiga不错,多谢多谢!

之前的email没有发送成功问题是因为我把sendEmail装在自己的账号下,启动的时候似乎没有权限执行,或者是找不到, 我重新装在了/usr/local/bin/sendEmail ,并指定了路径就可以了。在同事的帮助下,我又把原来的方法改了一下,不用存文件,直接从ipconfig的结果中提取并发送ip信息。完整脚本如下:

#!/bin/bash

ipinfo=`/sbin/ifconfig | grep 'inet addr:'| grep -v '127.0.0.1 ' | cut -d: -f2 | awk '{ print $1}'`
#echo $ipinfo

/usr/local/bin/sendEmail -f <!-- e --><a href="mailto:name@send.com">name@send.com</a><!-- e --> \
-t <!-- e --><a href="mailto:name@to.com">name@to.com</a><!-- e --> \
-s mailserver\
-u "Report of my IP:"$ipinfo
-m "anything"
我主脚本实现是先用ifconfig获取ip信息存在一文件下,再用sendmail程序发邮件。具体把主脚本链接放在rc2.d的S99级别上,sendmail脚本在/usr/local/bin/下, 临时文件存在/tmp/下。
问题1. ifconfig获取到的信息没有实际ip的信息,如下:

eth0 Link encap:Ethernet HWaddr 00:23:5a:6d:df:02
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:17
而进入系统后才会有实际的ip, 这是什么原因呢,难道网络配置在rc2.d之后才进行?

问题2. sendmail 并没有工作, 我猜想是没有实际的ip所以邮件发送失败

ps: 系统是10.04版本


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 11 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译