锁定老帖子 主题:今日小结--shell脚本小结
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-03-07
昨晚到现在都一直在弄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) 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 2012 次