这几天一直在忙家庭智能服务器的架设,今天运气好申请到了SSL证书,我用的是Webmin管理面板,启用SSL后发现 每次启动Webmin管理的时候都需要我输入 PEM 密码(Enter PEM pass phrase:),这样就会出现一个问题,开机无法自动启动这个服务了。。
在网上搜索一大堆以后我总结到了2个Linux交互的方法。
第一个方法 – 管道法
这个办法不是所有的地方都有用,但是呢他非常的简单方便,不需要装第三方软件的支持,在一些命令比如passwd上就非常有用了。
代码如下:
- #!/bin/bash
- (echo "curpassword"
- sleep 1
- echo "newpassword"
- sleep 1
- echo "newpassword")|passwd
这个是sh脚本,如果想直接在shell里面操作就要这样写
- 后执行的命令 | 先执行的命令
- 比如:
- (echo 123;echo 123) | passwd
- Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
- 这个命令就会先执行passwd然后执行前面的 echo 123将向控制台输出123 , 多个语句必须使用;来分开,另外必须用括号包裹起来。
- 这个命令运行以后将会修改当前用户的密码 为123
第二个方法 – 强大的expect
expect是一个非常强大的shell工具,因为expect本来就是为实现自动交互功能而生,但是他也有个缺点,大多数的Linux都没默认安装它,需要自行安装一次。
Ubuntu用户用apt-get install expect
CentOS用户用yum install expect
来安装这个工具
首先我们要创建一个脚本文件,比如autostart,用vi进行编辑输入下面的代码
#!/usr/bin/expect
spawn /etc/webmin/start
expect "Enter PEM pass phrase:"
send "password\n"
expect eof
exit解释下:
第一行是可以理解成声明,反正这个必须的!
第二行spawn代表运行文件
第三行如果出现了Enter PEM pass phrase:
第四行则输出password和一个回车
第五行expect eof可以理解成是退出判断,这个是必须的,跟编程里面的}一样
最后一个是退出就不解释了。。
expect因为过于强大,所以有点难懂,建议大家多看看其他例子(搜索引擎关键字:expect 例子)和基本用法。
貌似用expect写过一个ssh自动登陆的脚本,后来改用mac后用私钥+keychain托管了
你黑苹果已经升级到Lion啦?
%xyq63 不是黑的….
MBA么?
嗯,mba的配置正好
那不是黑苹果是啥。(抛砖
%xyq63 为神马mba装lion成黑苹果了?¿
哎呀理解错了,我以为是电脑是MBA的配置。 %xyq58
%xyq42 纯表被当作spam了。。。信春哥,得永生!
恩,很早以前天天被国外的SPAM给轰炸,现在回复必须有中文。。