我那想法。
其实想法很简单,就是利用139邮箱,我在手机上发一封包含命令的邮件到我的电脑上,
我的电脑就自动读取邮件里的命令然后执行之,现在可以实现让电脑关机,自动放音乐
等等命令行下的内容,甚至还可以查单词,然后把查到的结果发到我的手机上来。
下面就说一下具体怎么做吧:
0、开通139邮箱
发送KTYX到10086开通139免费邮箱(189和联通也可以开通,具体方法不知)。
发送TL到10658139开通长短信提醒,也就是有邮件就把邮件以短信的形式发到你的手机上。
哎呀!在为139邮箱打广告呀!
其实大家还可以把你其他邮箱的邮件都自动转发到139邮箱,这样你就可以知道你有没有收到邮件啦。省得去打开邮箱查看是否有新邮件。
1、首先配置mutt,按照下面的方法配置
http://mail2.ustc.edu.cn/~lixuebai/GNU/MuttConfig.html
然后再在~/.procmailrc中加入
:0
* ^From.*[email protected]
hchl139
把从我的139邮箱发过来的邮件都放到~/.Mail/hchl139这个收件箱里
2、脚本
cat /usr/local/bin/mblctrlcmpt
代码: 全选
#!/bin/bash
#获取邮件
getmail -n > /dev/null 2>&1
#如果收件箱不为空的话,就说明收到了邮件
#我把从我的139邮箱收到的邮件都放入/home/hchl/.Mail/hchl139中
#这在.procmail中设置
if [ -s /home/hchl/.Mail/hchl139 ]
then
#读取邮件的最后两行内容,邮件里面有很多乱七八糟的东西,但是倒数第二行是
#邮件内容,最后一行是空行。当然这是指只发一条命令的情况,目前我也只能做
#到这一点。
mailcmd=`tail -n 2 /home/hchl/.Mail/hchl139`
#如果那条命令最后含有":y"两个字符,说明要把执行结果返回到我的手机上。
#本来是想要发送两行的,第一行是命令,第二行是:y或者为空,但是发现我的收
#件箱里得到的只是一行并且换行变成了一些乱七八糟的字符,这个我不知道怎么
#处理。好像用不同的方法发送收到的邮件格式也不一样,所以这要视具体情况。
yesno=`echo $mailcmd | sed 's/^.*:\(y\)/\1/'`
if [ $yesno = 'y' ]
then
`echo $mailcmd | sed 's/\(^.*\):y/\1/'`
#把执行结果发到我的手机
`echo $mailcmd | sed 's/\(^.*\):y/\1/'` | mutt -s "Result"
[email protected]
#如果那条命令最后没有以":y"两个字符结尾,则直接执行命令
else
`echo $mailcmd`
fi
#收件箱为空的话就直接退出了
else
exit 0
fi
#执行完命令后把收件箱清空
cat /dev/null > /home/hchl/.Mail/hchl139
#######################THE END##################################
在crontab中加入
* * * * * root mblctrlcmpt
表示每一分钟都执行
4、手机自带邮件客户端设置139邮箱
邮箱名称:139邮箱
发送设置信息:
服务器:smtp.139.com
端口:25
电子邮件:你的139邮箱帐号
接收设置:
选择POP3协议
服务器: pop.139.com
端口:110
用户名:你的139邮箱帐号
密码:你的邮箱密码
连接设置:
连接互联网
不要设置成移动梦网
5、存在的问题
能不能把定时执行的时间间隔改小一点?一分钟执行一次太慢了!
我为了实现关机和待机两个功能,把执行权限给了root,这样很危险。那么如何实现
需要root权限的命令普通用户可以执行呢?我的想法是这样的,在命令中发送root
密码过去,但是怎样把那个密码给要执行的命令呢?
望各位高手不吝赐教!