[置顶] 我在写shell自动部署脚本碰到的问题

摘要: 如题,最早接触shell脚本是大学的时候,感觉好复杂,最近几年工作中也零零散散的接触过很多,很多都是网上找资源进行解决,这两天在写自动部署的初始化脚本,感觉还是挺多不足的。shell脚本写的有点c语言的感觉,是过程语言,但是如何模块化就非常重要了,首先我的第一个版本是完成了从远端服务器获取资源文件,一键部署tomcat,jdk,生成backup目录,log目录,web目录,script目录,tools目录,生成tomcat自启动脚本。以及和远端服务器的交互等。整个shell脚本写下来花了半天的时间,一个方法搞定全部,没有错误处理机制,没有合适的操作日志。所有就有了下面的重构。shell脚本中遇 阅读全文

posted @ 2013-05-04 00:18 巴郎 阅读(475) 评论(0) 推荐(0) 编辑

2013年7月29日

线程互相组合,互相依赖,设计方法

摘要: 整理于服务器管理系统部分设计思想. 做系统始终坚持一个原则,首先保证工期,保证系统正确运行,然后系统经过一段时间的运行,肯定会有一些新的改变,新的变化,同时系统还有一些忽略的bug都可以再第二版进行迭代,第二版的重点就是提高系统的运行效率了.第一版保证系统可用,稳定,第二版重点保持稳定,提高系统效率,同时好处是第一版完成后会给用户一定的缓冲的时间将精力放在业务流程上,而不是来找你系统的bug,培... 阅读全文

posted @ 2013-07-29 23:19 巴郎 阅读(294) 评论(0) 推荐(0) 编辑

2013年6月20日

用nginx转发请求tomcat 如何配置访问日志获取真实ip

摘要: 用nginx作反向代理,发现访问日志ip一项都不是真实ip,解决方法 1. nginx增加配置 proxy_set_header X-Real-IP $remote_addr; more.. http://wiki.nginx.org/NginxHttpProxyModule 2.tomcat 设置使用请求头 %{X-Real-IP}i 在 pattern 参数里面 ... 阅读全文

posted @ 2013-06-20 22:14 巴郎 阅读(1474) 评论(0) 推荐(0) 编辑

2013年6月18日

jquery扩展方法(extend) 写法

摘要: 前因:一直有积累一个util.js ,在不同时间段的质量成迭代状,变量名随着心情的变化不断变得不可读.决定在新项目中整理一下.如果当插件来写好像也没那么多功能,所以就extend吧extend优点有很多,用java的思想就是有个包名比如这样$.myfunction.validate.isInt(str);$.myfunction.validate.isFloat(str);jquery extend的统一格式(function($){ $.extend({ …… }); })(jQuery);我这里整理了一点项目中用到的,摘抄成这样(function($) { ... 阅读全文

posted @ 2013-06-18 00:39 巴郎 阅读(407) 评论(0) 推荐(0) 编辑

2013年6月15日

linux shell 脚本攻略 下

摘要: sed 入门 sed可以替换给定文本中的字符串,当然也可以用正则表试试匹配 sed 's/pattern/replace_string/' file 或者 cat file | sed 's/pattern/replace_string' 使用-i选项,可以讲替换结果应用于原文件 sed -i 's/text/replace/' file 如果要替换所有的的内容,需要在末尾增加g ... 阅读全文

posted @ 2013-06-15 23:52 巴郎 阅读(183) 评论(0) 推荐(0) 编辑

linux通用自动清理日志脚本

摘要: 1.本文是在做自动部署系统时精简的一个脚本,主要功能是清理所有目录的日志 2.根据给定日志目录,删除时间 结合crontab进行清理日志,清理完成后,后在/var/log/deltelog/ 生成按照月的清理日志 3.扩展,因为脚本采用mtime(最后修改时间)进行删除,所以可以适用于删除过期备份等,不受文件名称的限制 shell小窍门 find –type f –print 时会根据换行... 阅读全文

posted @ 2013-06-15 15:31 巴郎 阅读(514) 评论(0) 推荐(0) 编辑

阿里云主机安装vpn(pptpd)

摘要: 1.下载安装脚本 http://pan.baidu.com/share/link?shareid=2128167377&uk=2282493620 更改执行权限 chmod 777 vpn_centos6.sh 使用 root执行 vpn_centos6.sh 选择1 安装vpn 会从网盘下载几个依赖包 然后选择3 增加vpnuser 安装完成 后续工作: 1.pptpd... 阅读全文

posted @ 2013-06-15 14:00 巴郎 阅读(475) 评论(0) 推荐(0) 编辑

2013年6月14日

linux shell 脚本攻略(上)

摘要: 自动部署系统需要重构一下脚本,就抓紧系统学习了一下shell脚本,本文是一些笔记整理 #tee命令接受来在cat a*的sudin(标准输入)的数据,将stdout(标准输出)的一份副本写入文件out.txt ,同时将另一份副本作为后续命令的stdin,命令cat -n将sudin中接受到的没一行数据前加上行号并写入stdout $cat a* | tee out.txt | cat ... 阅读全文

posted @ 2013-06-14 21:30 巴郎 阅读(206) 评论(0) 推荐(0) 编辑

2013年6月2日

Java Object.wait() jvm的bug

摘要: 在使用java线程的时候,经常会用到wait方法,如果在调用wait方法的时候被中断,jvm会捕获这个中断不断调用wait 指令这时候即使你使用interrupt 发法来中断都是没有用的.需要对wait方法做一些封装,捕获异常,然后停止执行它public static void wait(Object obj) { boolean interrupted = true; while (interrupted) { interrupted = false; try { obj.wait(); ... 阅读全文

posted @ 2013-06-02 14:49 巴郎 阅读(277) 评论(0) 推荐(0) 编辑

2013年5月29日

shell 脚本 更新或者添加host ,并且增加hostname映射到hosts (修改)

摘要: 有些服务需要在hosts中映射hostname 和 127.0.0.1 ,例如sudo ,新增方法updateHostName 脚本可以根据传入的参数进行对 /etc/hosts 更改或者添加host 例如执行 sudo ./changeHost.sh blog.duplicatedcode.com 192.168.1.222 域名是固定的,外网ip不断变化 # !/bin/s... 阅读全文

posted @ 2013-05-29 22:18 巴郎 阅读(1213) 评论(0) 推荐(0) 编辑

导航