博文

JAVA执行Linux脚本问题(2012-05-04 12:43:00)

摘要: 在项目中需要修改Linux主机信息,于是用了Linux支持的命令来完成操作。   该命令为  /bin/sed -i '1,$'d   /var/log/XX.log   调用方法为: public static InputStream excute(String command) {     InputStream inputStream = null;     System.out.println(command);     try{      Process process = Runtime.getRuntime().exec(command);       inputStream = process.getInputStream();       BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));       System.out.println(br.readLine());     }catch(Exception e){      e.printStackTrace();     }     return inputStream;    } 发现根本就为清空该log文件。调试了半天不知道什么原因。 我于是在主机上自己新建了一个 shell脚本rmfilecontent  该脚本中写了/bin/sed -i '1,$'d   /var/log/XX.log   在调用 excute("rmfileconten......

阅读全文(4997) | 评论:0

ExtJs3.3  IE9 Tree点击事件无效(2012-05-02 15:37:00)

摘要: 这两天在用ExtJs做个树形组件,在IE7、8下完好,但放到IE9下就出现tree node移动、点击事件无效。摸索了半天终于解决了。   解决方案是: Ext.tree.TreeEventModel.prototype 中的 添加如下红色背景部分 getNode : function(e){         var t;         if(t = e.getTarget('.x-tree-node-el', 10)){             var id = Ext.fly(t, '_treeEvents').getAttribute('tree-node-id', 'ext') || t.getAttribute('ext:tree-node-id');             if(id){                 return this.tree.getNodeById(id);             }         }         return null;     }       ......

阅读全文(7681) | 评论:2

java中的io系统总结(转)(2012-04-17 18:13:00)

摘要: java中的io中的(input/output)stream无非就是包括基于字符的stream、基于字节的stream和把字节导向的stream转换 字符为导向的stream的stream。(很难理解么?) 以字节为导向的stream------InputStream/OutputStream InputStream 和 OutputStream是两个abstact类,对于字节为导向的stream都扩展这两个鸡肋(基类^_^); --InputStream ByteArrayInputStream -- 把内存中的一个缓冲区作为InputStream使用. construct---ByteArrayInputStream(byte[])创建一个新字节数组输入流,它从指定字节数组中读取数据。 ---ByteArrayInputStream(byte[], int, int) 创建一个新字节数组输入流,它从指定字节数组中读取数据。 ---mark::该字节数组未被复制。 StringBufferInputStream -- 把一个String对象作为InputStream . 注释:不推荐使用 StringBufferInputStream 方法。 此类不能将字符正确的转换为字节。 同 JDK 1.1 版中的类似,从一个串创建一个流的最佳方法是采用 StringReader 类。 construct---StringBufferInputStream(String) 据指定串创建一个读取数据的输入流串。 FileInputStream -- 把一个文件作为InputStream,实现对文件的读取操作 construct---FileInputStream(File) 创建一个输入文件流,从指定的 File 对象读取数据。 ---FileInputStream(FileDescriptor) 创建一个输入文件流,从指定的文件描述器读取数据。 ---FileInputStream(String) 创建一个输入文件流,从指定名称的文件读取数据。 method ---- read() 从当前输入流中读取一字节数据。 ......

阅读全文(5230) | 评论:0

MySQL客户端连接太慢(2012-04-17 08:55:00)

摘要: 使用MySQL时,发现用客户端连接速度非常缓慢。刚开始以为是网速慢导致的,之后在同一台主机安装了postgreSQL数据库,并用客户端连接,发现速度很快。因此可见不是网速问题导致MySQL客户端连接慢。 查了相关资料,发现MySQL配置文件中的my.cnf  [mysql] 下面没有 skip-name-resolve 。这个属性是不做DNS反向解析。 而恰恰我主机配置了DNS。所以导致了速度太慢。 于是我添加了skip-name-resolve属性。重启MySQL服务,再次连接,速度很快了。 ......

阅读全文(4388) | 评论:0

BI 定义(2012-04-14 22:35:00)

摘要: 一、BI的定义 BI是Business Intelligence的英文缩写,中文解释为商务智能,用来帮助企业更好地利用数据提高决策质量的技术集合,是从大量的数据中钻取信息与知识的过程。简单讲就是业务、数据、数据价值应用的过程。用图解的方式可以理解为下图: 图(1) 这样不难看出,传统的交易系统完成的是Business到Data的过程,而BI要做的事情是在Data的基础上,让Data产生价值,这个产生价值的过程就是Business Intelligence analyse的过程。 如何实现Business Intelligence analyse的过程,从技术角度来说,是一个复杂的技术集合,它包含ETL、DW、OLAP、DM等多环节,基本过程可用下图描述。 图(2) 上 图流程,简单的说就是把交易系统已经发生过的数据,通过ETL工具抽取到主题明确的数据仓库中,OLAP后生成Cube或报表,透过Portal展现给用 户,用户利用这些经过分类(Classification)、聚集(Clustering)、描述和可视化(Description and Visualization)的数据,支持业务决策。 说明: BI 不能产生决策,而是利用BI过程处理后的数据来支持决策。哪么BI所谓的智能到底是什么呢?(理清这个概念,有助于对BI的应用。)BI最终展现给用户的 信息就是报表或图视,但它不同于传统的静态报表或图视,它颠覆了传统报表或图视的提供与阅读的方式,产生的数据集合就象玩具“魔方”一样,可以任意快速的 旋转组合报表或图视,有力的保障了用户分析数据时操作的简单性、报表或图视直观性及思维的连惯性。 我想这是大家热衷于BI的根本原因。 二、BI的诞生 随 着IT技术的进步,传统的业务交易系统有了长足的发展,已经实现了业务信息化,每一笔业务数据都记录在数据库中,星转斗移,累积了以TB为计量单位的业务 数据记录。也许你会问:这么多数据,占用了很多存储设备,耗费存储成本,却又不经常访问,留着它有什么用处?可以给你肯定的回答,留着这些历史数据意义巨 大,挖掘业务的规......

阅读全文(2761) | 评论:0

Extjs3.3 IE9  createContextualFragment(2012-04-09 14:45:00)

摘要:if ((typeof Range !== "undefined") && !Range.prototype.createContextualFragment) {Range.prototype.createContextualFragment = function (html) {var frag = document.createDocumentFragment(),div = document.createElement("div");frag.appendChild(div);div.outerHTML = html;return frag;};}......

阅读全文(4555) | 评论:0

Linux 防火墙规则修改(2012-04-09 12:40:00)

摘要: 如果你发现你的服务开着,对应的端口也有。但还是用客户端访问不了,那么请注意是否是防火墙规则过滤掉了你所要访问的端口。   1、 /etc/sysconfig/iptables 这个是防火墙的规则文件, 内容为; *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT -A RH-Firewall-1-INPUT -p 50 -j ACCEPT -A RH-Firewall-1-INPUT -p 51 -j ACCEPT -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A RH-Firewa......

阅读全文(4373) | 评论:0

MySQL添加用户基本命令(2012-04-09 11:49:00)

摘要: 1. 新增用户 mysql>insert into mysql.user(Host,User,Password) values("localhost","lionbule",password("hello1234")); mysql>flush privileges;   2. 修改用户密码 mysql>update mysql.user set password=password('new password') where User="lionbule" and Host="localhost"; mysql>flush privileges;   3. 删除用户 mysql>DELETE FROM user WHERE User="lionbule" and Host="localhost"; mysql>flush privileges;   4. 权限分配    权限:     常用总结, ALL/ALTER/CREATE/DROP/SELECT/UPDATE/DELETE 数据库:      *.*                    表示所有库的所有表      test.*                表示test库的所有表      test.test_table  表示test库的test_table表     用户名:      m......

阅读全文(3265) | 评论:0

java 实现ping(2012-03-06 13:18:00)

摘要:一、纯Java实现ICMP的ping命令 import java.io.*; import java.net.*; import java.nio.channels.*; import java.util.*; import java.util.regex.*; public class Ping {     static int DAYTIME_PORT = 13;     static int port = DAYTIME_PORT;     static class Target {         InetSocketAddress address;         SocketChannel channel;         Exception failure;         long connectStart;         long connectFinish = 0;         boolean shown = false;         Target(String host) {             try {                 address = new InetSocketAddress(InetAddress.getByName(host), &n......

阅读全文(5696) | 评论:2

JS 数组操作(2012-03-01 13:12:00)

摘要: js数组的操作 用 js有很久了,但都没有深究过js的数组形式。偶尔用用也就是简单的string.split(char)。这段时间做的一个项目,用到数组的地方很多, 自以为js高手的自己居然无从下手,一下狠心,我学!呵呵。学了之后才知道,js数组的功能强大很,远比VB,C#强多了,大家慢慢看吧 1、数组的创建   var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度 var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); //创建一个数组并赋值 复制代码         要说明的是,虽然第二种方法创建数组指定了长度,但实际上所有情况下数组都是变长的,也就是说即使指定了长度为5,仍然可以将元素存储在规定长度以外的,注意:这时长度会随之改变。 2、数组的元素的访问   var testGetArrValue=arrayObj[1]; //获取数组的元素值 arrayObj[1]= "这是新值"; //给数组元素赋予新的值 复制代码     3、数组元素的添加   代码 arrayObj. push([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组结尾,并返回数组新长度 arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组开始,数组中的元素自动后移,返回数组新长度 arrayO......

阅读全文(4378) | 评论:1