bash 通配符 如何表示'排除'?
时间:2010-06-21
来源:互联网
作者: 十月流星 发布时间: 2010-06-21
1 #!/bin/sh
2
3
4 ip=`curl -s 'http://checkip.dyndns.org' | sed 's/.*Current IP Address: \([0- 9\.]*\).*/\1/g'`
5 echo "Sending ip $ip..."
6
7 to="[email protected]"
8 subject="IP"
9 message="IP is $ip"
10 headers="From:[email protected]"
11 echo $message | mail -s $subject $to -- -f $headers
12 echo "Send OK!"
先通过查询http://checkip.dyndns.org获取外网IP,通过sendmail发送邮件。
首先需要安装curl:
安装sendmail:
sendmail 貌似配置比较复杂,不过什么都不配,直接使用默认也可以发送邮件成功,学习ing~
至于如何定时发送,cron可以吧?
作者: boboj 发布时间: 2010-06-21
作者: 十月流星 发布时间: 2010-06-21
作者: 十月流星 发布时间: 2010-06-21
什么都不用配,直接默认就可以
然后安装curl
然后编写下面的脚本checkIP.sh
2
3 #获取IP
4 ip=`curl -s 'http://checkip.dyndns.org' | sed 's/.*Current IP Address: \([0- 9\.]*\).*/\1/g'`
5 echo "Sending ip $ip..."
6 #发送邮件
7 to="[email protected]"
8 subject="IP"
9 message="IP is $ip"
10 headers="[email protected]"
11 echo $message | mail -s $subject $to -- -f $headers
12 echo "Send OK!"
把[email protected]换成你要接受邮件的邮箱,[email protected]是你sendmail服务器的名字。
这个脚本先从http://checkip.dyndns.org查询到外网IP,然后通过sendmail发送邮件。
最后配置每日定时执行者个脚本:
编辑/etc/crontab
添加如下
这个配置的意思是每天6点执行查询IP脚本
最后重启cron
这样就可以了。(cron不懂得话,自己google吧)
作者: boboj 发布时间: 2010-06-21
第一步:sudo apt-get install sendmail
第二步:sudo apt-get install curl
第三步:在vim /etc/checkIP.sh内容如下:
#!/bin/sh
#获取IP
ip=`curl -s 'http://checkip.dyndns.org' | sed 's/.*Current IP Address: \([0- 9\.]*\).*/\1/g'`
echo "Sending ip $ip..."
#发送邮件
to="[email protected]"
subject="IP"
message="IP is $ip"
headers="[email protected]"
echo $message | mail -s $subject $to -- -f $headers
echo "Send OK!"
第四步:编辑sudo vim /etc/crontab在最后一行添加如下内容:
00 20 * * * root /etc/checkIP.sh
第五步:重启cron
sudo service cron restart
第六步:我设置了我的Ubuntu系统时间,使用date查看跟我主机时间相对应;
第七步:我检查了我的收件箱,发现没有邮件,我检查了checkIP.sh文件的权限,发现没有执行权限,所以:
chmod 755 /etc/checkIP.sh
此时我又重新设定时间,并重启cron,但是还没有收到邮件,我不知道是怎么回事,请你指点!谢谢~
作者: 十月流星 发布时间: 2010-06-22
作者: qu_son 发布时间: 2010-06-22
第一步:sudo apt-get install sendmail
第二步:sudo apt-get install curl
第三步:在vim /etc/checkIP.sh内容如下:
#!/bin/sh
#获取IP
ip=`curl -s 'http://checkip.dyndns.org' | sed 's/.*Current IP Address: \([0- 9\.]*\).*/\1/g'`
echo "Sending ip $ip..."
#发送邮件
to="[email protected]"
subject="IP"
message="IP is $ip"
headers="[email protected]"
echo $message | mail -s $subject $to -- -f $headers
echo "Send OK!"
第四步:编辑sudo vim /etc/crontab在最后一行添加如下内容:
00 20 * * * root /etc/checkIP.sh
第五步:重启cron
sudo service cron restart
第六步:我设置了我的Ubuntu系统时间,使用date查看跟我主机时间相对应;
第七步:我检查了我的收件箱,发现没有邮件,我检查了checkIP.sh文件的权限,发现没有执行权限,所以:
chmod 755 /etc/checkIP.sh
此时我又重新设定时间,并重启cron,但是还没有收到邮件,我不知道是怎么回事,请你指点!谢谢~
先试试直接手动执行那个脚本,看看能不能发吧,能的话,就是cron配错了,有可能是你设的时间已经过了,没有执行,不能的话,看看能不能直接查到IP,能的话就是sendmail有问题,再排查下吧。另外,[email protected]要换为你的机器名,不过貌似不换也无所谓。
作者: boboj 发布时间: 2010-06-23
嗯,用动态域名解决最好!
echo $message | mail -s $subject $to -- -f $header
这行报错,./sendmail.sh: line 10: mail: command not found
这个mail程序要install什么?
作者: basncy 发布时间: 2010-06-23
第一步:sudo apt-get install sendmail
第二步:sudo apt-get install curl
第三步:在vim /etc/checkIP.sh内容如下:
#!/bin/sh
#获取IP
ip=`curl -s 'http://checkip.dyndns.org' | sed 's/.*Current IP Address: \([0- 9\.]*\).*/\1/g'`
echo "Sending ip $ip..."
#发送邮件
to="[email protected]"
subject="IP"
message="IP is $ip"
headers="[email protected]"
echo $message | mail -s $subject $to -- -f $headers
echo "Send OK!"
第四步:编辑sudo vim /etc/crontab在最后一行添加如下内容:
00 20 * * * root /etc/checkIP.sh
第五步:重启cron
sudo service cron restart
第六步:我设置了我的Ubuntu系统时间,使用date查看跟我主机时间相对应;
第七步:我检查了我的收件箱,发现没有邮件,我检查了checkIP.sh文件的权限,发现没有执行权限,所以:
chmod 755 /etc/checkIP.sh
此时我又重新设定时间,并重启cron,但是还没有收到邮件,我不知道是怎么回事,请你指点!谢谢~
先试试直接手动执行那个脚本,看看能不能发吧,能的话,就是cron配错了,有可能是你设的时间已经过了,没有执行,不能的话,看看能不能直接查到IP,能的话就是sendmail有问题,再排查下吧。另外,[email protected]要换为你的机器名,不过貌似不换也无所谓。
我手动执行过脚本了,谢谢你!貌似好像还是不行,我再检查下~你有时间的话,帮忙也测试下吧,说不定,你的代码都对,是我那里做错了,谢谢你哈~
作者: 十月流星 发布时间: 2010-06-23
嗯,用动态域名解决最好!
echo $message | mail -s $subject $to -- -f $header
这行报错,./sendmail.sh: line 10: mail: command not found
这个mail程序要install什么?
多学一种解决的办法,更好,老兄,你要不也把你的解决方案,做个步骤发上来吧!谢谢了~
作者: 十月流星 发布时间: 2010-06-23
作者: xyf 发布时间: 2010-06-24
作者: 特务小象 发布时间: 2010-06-24
嗯,用动态域名解决最好!
echo $message | mail -s $subject $to -- -f $header
这行报错,./sendmail.sh: line 10: mail: command not found
这个mail程序要install什么?
多学一种解决的办法,更好,老兄,你要不也把你的解决方案,做个步骤发上来吧!谢谢了~
到http://www.3322.org/注册一个动态域名(免费)
然后终端运行:
lynx -mime_header -auth=user : pass "http://www.3322.org/dyndns/update?system=dyndns&hostname=myhost.3322.org"
参见:http://www.3322.org/static/client.html
作者: basncy 发布时间: 2010-06-25
作者: xiaorui 发布时间: 2010-06-25
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28