首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

今天小结-shell脚本小结

2012-09-14 
今日小结--shell脚本小结?昨晚到现在都一直在弄apache更新,由于机器数较多,又是单独操作,所以特别慢。?终于

今日小结--shell脚本小结

?

昨晚到现在都一直在弄apache更新,由于机器数较多,又是单独操作,

所以特别慢。

?

终于在今日完成了更新……

总结一下写这个脚本所学习到的知识:

?

1、用ssh链接远程主机执行命令的时候,加上 -n 参数

? ? ssh -n 192.168.1.100 "cd /home/admin;bash apache_fix.sh"

? ? 双引号里面接你要执行的命令,用分号隔开多条命令,双引号里面的单引号使用问题我还在摸索。。。

? ? ·如果你要执行的命令很多的话,最好是写在一个shell文件里面,scp到远程主机上执行。

?

2、重定向的问题

? ? 一个命令执行完之后打印的信息分为stdout和stderr,分别用 1 和 2 两个文件描述符来描述。

? ? 重定向一条命令的输入到文件里可以这样:

? ? ls -al > output.log 2>&1 ? # 把ls -al的stdout输出到output.log文件里面,同时stderr也输入到这个文件,2>&1 即完成把stderr也输入到文件的功能。

? ? 当然,把 > 换成 >> 即转换为追加stdout到文件中

?

3、cp 覆盖问题

? ? 修改文件的时候,要先备份,在出错之后就cp备份覆盖掉出错的配置文件,有时候cp覆盖会提示你是否确认override,在shell里面你可以这样写:

? ? yes | cp httpd.conf.bak.20110826 httpd.conf ?即在提示你确认是否override的时候输入yes

? ? 借此跳过这个输入的挂起,不然脚本一直要等待输入,之后的语句就执行不了了。

?

4、一个应用的启动脚本,以及目录,还有所实用配置的目录很多时候都可以用ps命令来查看

? ? 比如 ps axu | grep 'httpd' 在最后的几栏你可以看到启动脚本的位置还有使用的什么配置文件(如果你启动的是用这个命令的话)

? ? 然后再使用 sed 或者 awk 来处理每一行和每一段字符,拿到想要的数据

?

总结:

1、修改任何一个重要的文件之前记得要备份。

2、把提示消息同时记录到日志里面。

3、判断出程序错误后,要把备份好的配置文件覆盖回去,还原环境。

4、多写程序,多思考。

?

(2011-08-26 19:38:27)

热点排行