随笔-69  评论-0  文章-5  trackbacks-0
  2006年11月29日
先占个地儿
http://blog.csdn.net/boat1980/archive/2008/07/23/2698318.aspx

posted @ 2008-09-22 11:36 liunix 阅读(228) | 评论 (0)编辑 收藏
<html>
<head>
<script>
function overlay() {
    el 
= document.getElementById("overlay");
    el.style.visibility 
= (el.style.visibility == "visible"? "hidden" : "visible";
}
</script>
<style>
body 
{
     height
:100%;
     margin
:0;
     padding
:0;
}
/*外层全部*/
#overlay
{
     visibility
: hidden;
     position
: absolute;
     left
: 0px;
     top
: 0px;
     width
:100%;
     height
:100%;
     text-align
:center;
     z-index
: 1000;
     background-color
:#000;
     filter
: alpha(opacity=70); /*ie支持的半透明,下面两名为ff支持的*/
     -moz-opacity
: 0.7;
     opacity
:.70;
}
/*外层的显示区*/
#overlay div 
{
     width
:300px;
     margin
: 100px auto;
     background-color
: #FFFFFF;
     border
:1px solid #000;
     padding
:15px;
     text-align
:center;
}
</style>
</head>
<body id="body">
<div id="overlay">
     
<div>
        用户名:
<input type="text" name="" /><br/>
        密  码:
<input type="text" name="" /><br/>
        
<input type="button" value="关闭" onclick="overlay()" />
     
</div>
</div>

<href='#' onclick='overlay()'>Click here to show the overlay</a>
</body>
</html>   
posted @ 2008-08-29 16:23 liunix 阅读(634) | 评论 (0)编辑 收藏
一、DESede加密(对应SunJCE不提供模式和填充的情况)
declare
    result raw(
2000);
    l_mod number :
= dbms_crypto.ENCRYPT_3DES+dbms_crypto.CHAIN_ECB+dbms_crypto.PAD_PKCS5;
begin
    result :
= dbms_crypto.Encrypt(src => utl_i18n.string_to_raw('wwww'),typ => l_mod,key => hextoraw('123456789012345678901234567890123456')
    );
    dbms_output.put_line(result);
end;
/

二,摘要
dbms_crypto.Hash(utl_i18n.string_to_raw('input'),dbms_crypto.MD5))
posted @ 2008-07-21 14:54 liunix 阅读(664) | 评论 (0)编辑 收藏
用了几天jira管理对它的权限模式有了初步理解:



project和permission schema多对一,从而形成了permission schema的重用
而permission schema本身则代表了group/user和pemission之前的映射关系

另外,jira还有一个Project Role的概念更增加了jira权限管理的灵活性
其实它实质上就是一个角色(RBAC中的R),可以和group/user多对多关联,
(当然也可和Permission通过schema进行关联)
使jira的权限配置更新灵活的同时,也增加了相当的复杂性

posted @ 2008-07-17 16:06 liunix 阅读(1297) | 评论 (0)编辑 收藏
一,造libmysql.def文件
   1, ${mysql_home}/include/libmySQL.def文件如果有直接用
   2, 否则下载pexports工具,执行pexprots libmySQL.dll> libmySQL.def(libmySQL.dll在${mysql_home}/bin目录下一般会有)
二,转换成静态库
   dlltool --input-def libmySQL.def --dllname libmySQL.dll --output-lib libmysql.a -k
三,配置Eclipse(静态库和动态库加法都是-L${DIR} -l${libname},但谁的优先级高呢?)
    1, 加上库目录,如"${workspace_loc:/hello_mysql/libs}"
    2, 加上libmysql.a的库名: mysql
    3, 构建,报错:  #ff0000 reference to `mysql_real_connect@32'之类的错
    4, 修改def文件,将mysql_real_connect改成mysql_real_connect@32,其它错误同理,并重新生成静态库
    5, 重新构建完成
四,示例程序(只须修改连接信息及表名)
#include <stdio.h>
/*下面这一行一定要加上*/
#include 
<my_global.h>
#include 
<mysql.h>

int main() {
    MYSQL mysql;
    MYSQL_RES 
*result;
    MYSQL_ROW row;

    
int numrows, numcols, c;

    mysql_init(
&mysql);

    
if (!mysql_real_connect(&mysql, "localhost""opencart""opencart""opencart"0, NULL, 0)) {
        fprintf(stderr,
"Failed to connect to database: Error %d:%s\n", mysql_errno(&mysql), mysql_error(&mysql));
    }
    
char query[] = "SELECT * FROM product";

    
if (mysql_query(&mysql, query))
    {
        fprintf(stderr,
"Error executing query: Error %d: %s\n", mysql_errno(&mysql), mysql_error(&mysql));
    }

    result 
= mysql_use_result(&mysql);

    
if (!result) {
        fprintf(stderr,
"Error executing query: Error %d: %s\n", mysql_errno(&mysql), mysql_error(&mysql));
    }
    numcols 
= mysql_num_fields(result);

    
while (row = mysql_fetch_row(result)) {
        
for (c = 0; c < numcols; c++) {
            printf(
"%s\t", row[c]);
        }
        printf(
"\n");
    }
}

   
posted @ 2008-07-14 15:36 liunix 阅读(1025) | 评论 (0)编辑 收藏
一、安装
1, 安装xampp
2, 安装zend studio[6]

二、配置调式
1,在http.conf中指定php.ini的位置
    PhpIniDir "D:/xampp/php"

2, 在php.ini中的zend的部分指定以下内容(ZendDebugger.dll是从zend studio中搜出来的)
[Zend]
zend_extension_ts = "D:\xampp\php\zendOptimizer\lib\ZendDebugger_5.2.12.dll"
;下面部分可选
zend_debugger.allow_hosts=127.0.0.1/32,127.0.0.1/24
zend_debugger.expose_remotely=allowed_hosts


posted @ 2008-07-07 11:38 liunix 阅读(281) | 评论 (0)编辑 收藏
放在/usr/local/bin下,挺好用
 #!/bin/sh
 # this script converts an rpm into a plain tarball

 mkdir $$.cpio
 rpm2cpio $@ 
> $$.cpio/foo
 cd $$
.cpio
 cpio 
---< foo
 rm 
-f foo
 find 
. -type d -perm 700 -exec chmod 755 {} \;
 tar cvzf 
../`basename $@ .rpm`.tar.gz .
 cd 
../
 rm 
-rf $$.cpio


posted @ 2008-06-18 11:37 liunix 阅读(330) | 评论 (0)编辑 收藏
1,去http://rpm.pbone.net/下载下列rpm包并安装
libnasl-2.2.9-1.fc5.i386.rpm
nessus-core-2.2.9-1.fc5.i386.rpm
nessus-core-debuginfo-2.2.9-1.fc5.i386.rpm(可选)
nessus-libraries-2.2.9-1.fc5.i386.rpm
nessus-server-2.2.9-1.fc5.i386.rpm
nessus-gui-2.2.9-1.fc5.i386.rpm
2, 找个能用的邮箱去http://www.nessus.org/plugins/index.php?view=register注册一下
3, 按邮件中的方式运行nessus-fetch --register ****
4, 运行nessus-adduser增加一个没有rule的用户
5, 运行nessus-mkcert造个证书
6, 运行nessus-fetch --check检查一下状态
7, 如果前面没啥问题,运行service nessusd start
   如果这一步除了成功没啥别的输出就ok啦


posted @ 2008-06-18 10:44 liunix 阅读(266) | 评论 (0)编辑 收藏
限制本机的对外访问(例如不让测试环境访问生产库):
iptables -t filter -A OUTPUT -d 192.168.2.2 -p tcp --dport 1521 -j REJECT

#端口转发到另一台机器上
-A PREROUTING -d $ip1 -i eth0 -p tcp -m tcp --dport $port1 -j DNAT --to-destination $ip2:$port2
-A POSTROUTING -d $ip2 -p tcp -m tcp --dport $port2 -j SNAT --to-source $ip1
#本机端口相互映射
-A PREROUTING -p tcp --dport $port1 -j REDIRECT --to-port $port2
posted @ 2008-06-02 11:07 liunix 阅读(210) | 评论 (0)编辑 收藏
pre-commit.tmpl,然后更名pre-commit并加上执行权限:
#!/bin/sh

REPOS
="$1"
TXN
="$2"

RES
="OK"
# Make sure that the log message contains some text.
SVNLOOK=/app/subversion/bin/svnlook
$SVNLOOK log -"$TXN" "$REPOS" | egrep "[^[:space:]]+" >/dev/null || unset RES
if [ "$RES" != "OK" ]
then
    echo 
"You must input some comments for you commit" >&2
    
exit 1
fi

# All checks passed, so allow the commit.
exit 0


posted @ 2008-05-28 14:18 liunix 阅读(1480) | 评论 (0)编辑 收藏
fisheye(1.4.3):
    cenqua_com_licensing.atlassian.license.DefaultLicense
       isExpired(),getExpiryDate()
    cenqua_com_licensing.atlassian.license.DefaultLicenseType(重点)
       isEvaluationLicenseType(),expires().....

posted @ 2008-05-28 11:13 liunix 阅读(507) | 评论 (0)编辑 收藏

一,将pem格式的key文件导入keystore

摘抄备用:http://www.agentbob.info/agentbob/79-AB.html

说明: 经试验证书的pem文件可能通过keytool直接导入keystore中的

Apache Tomcat and many other Java applications expect to retrieve SSL/TLS certificates from a Java Key Store (JKS). Jave Virtual Machines usually come with keytool  to help you create a new key store.

Keytool helps you to:

  • create a new JKS with a new private key
  • generate a Certificate Signung Request (CSR) for the private key in this JKS
  • import a certificate that you received for this CSR into your JKS

Keytool does not let you import an existing private key for which you already have a certificate. So you need to do this yourself, here's how:

Let's assume you have a private key (key.pem) and a certificate (cert.pem), both in PEM format as the file names suggest.

PEM format is 'kind-of-human-readable' and looks like e.g.

-----BEGIN CERTIFICATE-----
Ulv6GtdFbjzLeqlkelqwewlq822OrEPdH+zxKUkKGX/eN
.
. (snip)
.
9801asds3BCfu52dm7JHzPAOqWKaEwIgymlk=
----END CERTIFICATE-----

Convert both, the key and the certificate into DER format using openssl :

openssl pkcs8 -topk8 -nocrypt -in key.pem -inform PEM -out key.der -outform DER
openssl x509 -in cert.pem -inform PEM -out cert.der -outform DER

Now comes the tricky bit, you need something to import these files into the JKS. ImportKey will do this for you, get the ImportKey.java (text/x-java-source, 6.6 kB, info) source or the compiled (Java 1.5 !) ImportKey.class (application/octet-stream, 3.3 kB, info) and run it like

user@host:~$ java ImportKey key.der cert.der
Using keystore-file : /home/user/keystore.ImportKey
One certificate, no chain.
Key and certificate stored.
Alias:importkey Password:importkey

Now we have a proper JKS containing our private key and certificate in a file called keystore.ImportKey, using 'importkey' as alias and also as password. For any further changes, like changing the password we can use keytool.



二、将私钥导出成pem文件(默认keytool是不能导出私钥的)
import sun.misc.BASE64Encoder;
import java.security.cert.Certificate;
import java.security.*;
import java.io.File;
import java.io.FileInputStream;
 
class ExportPriv {
    
public static void main(String args[]) throws Exception{
    ExportPriv myep 
= new ExportPriv();
    myep.doit();
    }
 
    
public void doit() throws Exception{
 
    KeyStore ks 
= KeyStore.getInstance("JKS");
    String fileName 
= "store.jks";
 
    
char[] passPhrase = "password".toCharArray();
    BASE64Encoder myB64 
= new BASE64Encoder();
    
 
    File certificateFile 
= new File(fileName);
    ks.load(
new FileInputStream(certificateFile), passPhrase);
 
    KeyPair kp 
= getPrivateKey(ks, "alias", passPhrase);
        
    PrivateKey privKey 
= kp.getPrivate();
    
 
    String b64 
= myB64.encode(privKey.getEncoded());
 
    System.out.println(
"-----BEGIN PRIVATE KEY-----");
    System.out.println(b64);
    System.out.println(
"-----END PRIVATE KEY-----");
 
    }
 
// From http://javaalmanac.com/egs/java.security/GetKeyFromKs.html
 
   
public KeyPair getPrivateKey(KeyStore keystore, String alias, char[] password) {
        
try {
            
// Get private key
            Key key = keystore.getKey(alias, password);
            
if (key instanceof PrivateKey) {
                
// Get certificate of public key
                Certificate cert = keystore.getCertificate(alias);
    
                
// Get public key
                PublicKey publicKey = cert.getPublicKey();
    
                
// Return a key pair
                return new KeyPair(publicKey, (PrivateKey)key);
            }
        } 
catch (UnrecoverableKeyException e) {
        } 
catch (NoSuchAlgorithmException e) {
        } 
catch (KeyStoreException e) {
        }
        
return null;
    }
 
}
 

posted @ 2008-04-17 16:27 liunix 阅读(7984) | 评论 (0)编辑 收藏
去年rails正火的时候,仿active record用hibernate实现了一个BasePo,当时用的是一个
静态sessionfactory注入的方式,感觉很不好,当明也没想到好的方案,后来发现有人通过
threadlocal实现了下面这个,可以看看:
 1 public class Persistent implements Lifecycle, Validatable, Serializable {
 2    
 3    protected Serializable _id;
 4    protected int _version;
 5 
 6    public Serializable getIdentifier() {
 7       return _id;
 8    }
 9    public void setIdentifier(Serializable id) {
10       _id = id;
11    }
12    public int getVersion() {
13       return _version;
14    }
15    public void setVersion(int version) {
16       _version = version;
17    }
18 
19    public Long persist() throws HibernateException, SQLException {
20       HibernateSession.currentSession().saveOrUpdate(this);
21       return _id;
22    }
23    public void delete() throws HibernateException, SQLException {
24       HibernateSession.currentSession().delete(this);
25    }
26    public void refresh() throws HibernateException, SQLException {
27       HibernateSession.currentSession().load(this, _id);
28    }
29    public void lock() throws HibernateException, SQLException {
30       HibernateSession.currentSession().lock(this, LockMode.UPGRADE);
31    }
32 
33    public boolean onSave(Session s) throws CallbackException {
34       return NO_VETO;
35    }
36    public boolean onDelete(Session s) throws CallbackException {
37       return NO_VETO;
38    }
39    public boolean onUpdate(Session s) throws CallbackException {
40       return NO_VETO;
41    }
42    public void onLoad(Session s, Serializable id) {
43       _id = id;
44    }
45 
46    public void validate() throws ValidationFailure {
47    }
48 }

原文:http://hibernate.bluemars.net/46.html?cmd=prntdoc

下面是hibernatesession的源码,应该考滤一下如何与spring事务结合的问题(还是加一个doInTransaction 的callback?)
 1 import java.util.Collection;
 2 
 3 import net.sf.hibernate.HibernateException;
 4 import net.sf.hibernate.Session;
 5 import net.sf.hibernate.Transaction;
 6 
 7 import org.apache.commons.logging.Log;
 8 import org.apache.commons.logging.LogFactory;
 9 
10 /**
11  * @author Ralph Schaer
12  * @version $Revision: 1.6 $ $Date: 2004/05/22 12:24:32 $
13  */
14 public class HibernateSession {
15 
16   private static final Log LOG = LogFactory.getLog(HibernateSession.class);
17   public static final ThreadLocal SESSION = new ThreadLocal();
18 
19   public static Session currentSession() throws HibernateException {
20 
21     Session s = (Session) SESSION.get();
22     if (s == null) {
23       s = HibernateFactoryManager.getSessionFactory().openSession();
24       SESSION.set(s);
25     }
26     return s;
27   }
28 
29   public static Session getSession() throws HibernateException {
30     return HibernateFactoryManager.getSessionFactory().openSession();
31   }
32 
33   public static void closeSession() {
34     try {
35       Session s = (Session) SESSION.get();
36       SESSION.set(null);
37       if (s != null) {
38         s.close();
39       }
40 
41     } catch (HibernateException e) {
42       LOG.error("HibernateSession:  closeSession", e);
43     }
44 
45   }
46 
47   public static void rollback(Transaction tx) {
48     if (tx != null) {
49       try {
50         tx.rollback();
51         closeSession();
52       } catch (HibernateException he) {
53         LOG.error("HibernateSession: rollback", he);
54       }
55     }
56   }
57 
58   //Utility methods
59   public static int collectionSize(Collection coll) throws HibernateException {
60     return ((Integer) currentSession().createFilter(coll, "select count(*)").iterate().next()).intValue();
61   }
62 
63 }


还有一种考虑泛型的方式可以参考:
http://privacyneed.info/index.php?hl=f5&q=uggc%3A%2F%2Fcrgreonpxyhaq.oybtfcbg.pbz%2F2007%2F07%2Fvzcyrzragvat-npgvirerpbeq-va-wnin.ugzy
posted @ 2008-03-28 11:30 liunix 阅读(466) | 评论 (0)编辑 收藏
从网上找了一段,写得挺麻烦,但可以借一下思路
cat watch.sh

#!/bin/sh
cd /root/bin

PID
=`ps -aef | grep Xms500M | grep -grep | gawk '{print $2}'`
PID
=`expr $PID + 1 - 1`

date
free
echo 
$PID
echo 
"------------------"

if [ $PID -eq 0 ]
then
sleep 10
/usr/java/tomcat/bin/startup.sh
sleep 160
fi

while [ 1 ]
do
date
free
echo 
"Tomcat process ID is $PID"
wget http
://192.168.1.101/jsp/w_blog/blog.jsp -O working.jpg 2>> /dev/null &
sleep 120
touch working
.jpg
SIZE
=`du working.jpg | gawk '{print $1}'`
if [ $SIZE -le 20 ]
then


WID
=`ps -aef | grep 192.168.1.101 | grep -grep | gawk '{print $2}'`
WID
=`expr $WID + 1 - 1`

if ! test -$WID
then
killall wget
fi


echo 
"Tomcat restart checking"
free
vmstat
FREEMEM
=`free | grep Mem | gawk '{print $4}'`

if [ $FREEMEM -le 15000 ]
then

if [ $PID -ne 0 ]
then
kill -9 $PID
ls 
-l
/usr/java/tomcat/bin/shutdown.sh
fi

/usr/java/tomcat/bin/shutdown.sh
sleep 10
/usr/java/tomcat/bin/startup.sh
sleep 30
fi

date
ps 
-aef | grep -v httpd
ls 
-l
PID
=`ps -aef | grep Xms500M | grep -grep | gawk '{print $2}'`
PID
=`expr $PID + 1 - 1`

fi

rm 
-f working.jpg

done


posted @ 2008-03-24 19:25 liunix 阅读(1295) | 评论 (0)编辑 收藏
1,设置好WEB-INF/classes/xplanner-customer.properties中的数据连接,建mysql库[xplanner]
2, 运行会自动创建数据库表和sysadmin/admin用户
3, 中文乱码,先导出数据库[主要保存用户维护数据]
    mysqldump --opt --database xplanner > xplanner.sql
4, 将sql中的create database语句改成default charset utf8;
5, souce xplanner.sql
6, 将server-config.wsdd[WEB-INF]下的附件上传位置改成合适目录
7, 重启xplanner即可

posted @ 2008-03-20 20:22 liunix 阅读(254) | 评论 (0)编辑 收藏
概念:
    唯一的就是一个候选键(数据库理论基础)
所以要增加唯一性就是增加一个Alternate key

操作:
    单击表模型,选中keys签,增加一个key,不选primary即可

信息来源sybooks online:
    http://infocenter.sybase.com/help/index.jsp
查找unique constraint找出和PDM相关的内容

posted @ 2008-03-19 15:36 liunix 阅读(170) | 评论 (0)编辑 收藏
网上说的比较多
不过一定要记住看服务进程的log:
view /var/log/mysql.log
在我这里问题是:


/usr/libexec/mysqld: Can't create/write to file '/tmp/'


说明mysql用户无权使用/tmp目录,改一下目录权限就好了
chmow -R 777 /tmp

posted @ 2008-03-18 14:29 liunix 阅读(171) | 评论 (0)编辑 收藏
一,JIRA安装
    1, 下载最新的JIRA(要注册才能得到测试liense)
    2,  创建数据库用户[注意:jira用的utf8],create database jira default charset utf8; (mysql)
    3,  按官网WIKI配置数据库,所有表会自动创建


二,SUBVERSION-PLUGIN
    1, 下载插件
    2,  拷完lib到指定位置即可(不要拷properties)   
    3, 在管理端增加仓库位置

三,svnwebclient
    1, enscript不是语法加亮,只是加彩而已(而且大部分linux版本自带)

posted @ 2008-03-18 14:04 liunix 阅读(217) | 评论 (0)编辑 收藏
1, 下载http://www.allwiki.com/wiki/Mediawiki
2,  解压放到/var/www/html下,将config目录权限改为777
3,  给apache增加一个配置文件mediawiki.conf,内容如下:
<Directory "/var/www/html/mediawiki">
    AllowOverride None
    Options +ExecCGI
    Order allow,deny
    Allow from all
</Directory>
4,浏览器中输入:http://hostname/mediawiki/index.php
5,安装看是否缺php-mysql,如果缺到fc5的cd-rom中安装
6, 创建数据库
    mysql -u root
    create database mediawiki;
    grant all on mediawiki.* to mediawiki@'localhost' identified by 'mediawiki';
6, 输入各项配置
7, mysql5创建表有问题,尚未解决,实在不行只能换个wiki看看了

posted @ 2008-03-15 15:59 liunix 阅读(152) | 评论 (0)编辑 收藏
1, 下载bugzilla
    运行./checksetup.pl
2, 根据提示安装perl模块
    位置:http://search.cpan.org/search?query=IO%3A%3AScalarArray&mode=all
    下载后:
    perl Makefile.pl
    make
    make test
    make install
    (过程如果有依整性错误,请安装相应模块)
3,配置mysql
    mysql -u root
    create database bugs
    grant all on bugs.* to bugzilla@'localhost' identified by 'bugs'
4,配置vi ./localconfig设置数据库
5, 再次运行./checksetup.pl会创建数据库和设置bugzilla管理员(以mail作为登录名)
6, 将bugzilla目录拷到/www/html/下
7, 在/etc/httpd/conf.d/下增加bugzilla.conf内容如下:
AddHandler cgi-script .cgi .pl
<Directory "/var/www/html/bugzilla">
    AllowOverride None
    Options +ExecCGI
    Order allow,deny
    Allow from all
</Directory>
8,运行apachectl restart
9,访问:http://hostname/bugzilla/index.cgi
   

posted @ 2008-03-15 14:41 liunix 阅读(161) | 评论 (0)编辑 收藏
常用操作:
-- job 权限
grant create job to somebody;

-- job 创建
begin
 dbms_scheduler.create_job (
     job_name 
=> 'AGENT_LIQUIDATION_JOB',
     job_type 
=> 'STORED_PROCEDURE',
     job_action 
=> 'AGENT_LIQUIDATION.LIQUIDATION'--存储过程名
     start_date => sysdate,
     repeat_interval 
=> 'FREQ=MONTHLY; INTERVAL=1; BYMONTHDAY=1;BYHOUR=1;BYMINUTE=0;BYSECOND=0',  -- 按月,间隔为1个(月),每月1号,凌晨1点
     comments => '执行代理商清分程序'
 );
end;
/

-- job 执行时间测试
DECLARE
    start_date date;
    return_date_after date;
    next_run_date date;
BEGIN
    start_date :
= sysdate;--to_timestamp_tz('10-OCT-2004 10:00:00','DD-MM-YYYY HH24:MI:SS');
    return_date_after := start_date;
FOR i IN 1..10 LOOP
     DBMS_SCHEDULER.EVALUATE_CALENDAR_STRING(
'FREQ=MONTHLY; INTERVAL=1; BYMONTHDAY=1;BYHOUR=1;BYMINUTE=0;BYSECOND=0',start_date, return_date_after, next_run_date);
     DBMS_OUTPUT.PUT_LINE(
'next_run_date: ' || to_char(next_run_date,'yyyy-mm-dd HH24:MI:SS'));
     return_date_after :
= next_run_date;
    
END LOOP;
END;
/

-- job 查询
select owner, job_name, state from dba_scheduler_jobs;
select job_name, state from user_scheduler_jobs;

-- job 启用
begin
    dbms_scheduler.enable(
'BACKUP_JOB');
end;
/

-- job 运行
begin
    dbms_scheduler.run_job(
'COLA_JOB',TRUE); -- true代表同步执行
end;
/

-- job 停止(不太好用)
begin
    dbms_scheduler.stop_job(job_name 
=> 'COLA_JOB',force => TRUE);
end;
/

-- job 删除(对停job来说好用)
begin
    dbms_scheduler.drop_job(job_name 
=> 'COLA_JOB',force => TRUE);)
end;
/

posted @ 2008-03-14 10:36 liunix 阅读(619) | 评论 (0)编辑 收藏
位置:
http://xfire.codehaus.org/HTTP+Transport
posted @ 2008-03-13 14:58 liunix 阅读(526) | 评论 (0)编辑 收藏
1,一定不要下载.zip,而用tar.gz或bz2
2, 安装到/usr/local/subverion时再启apache
    出现: /usr/local/subverion/lib/libaprutil-0.so.0: undefined symbol: gdbm_errno
    解决:export LD_PRELOAD=/usr/lib/libgdbm.so.2 再执行 apachectl start(或 service httpd start)
    可以将export这一行放入apachectl脚本中
3, 安装可以自动更新apache中的moudle, 不用换rpm安装剩下的svn等命令,这些只不过是服务器上的客户端
    只要以后执行/usr/local/subverion/bin下的命令即可(可以在profile中修改PATH)

posted @ 2008-03-11 13:40 liunix 阅读(224) | 评论 (0)编辑 收藏
1, 准备相关JAVA包
2,  jce_policy-1_4_2.zip中的两个jar到D:\jdk14\jre\lib\security
3,  bcprov-jdk14-138.jar到D:\jdk14\jre\lib\ext并修改D:\jdk14\jre\lib\security\java.security加入
    security.provider.6=org.bouncycastle.jce.provider.BouncyCastleProvider


posted @ 2008-03-07 20:13 liunix 阅读(202) | 评论 (0)编辑 收藏
 


posted @ 2008-03-03 16:21 liunix 阅读(916) | 评论 (0)编辑 收藏
一,基本安装

如果不能获得额外的IP
vmware-tool的安装:
0, 将fc5安装CD中的kernel-devel安装上
1,将CD-ROM置为默认状态
2, 在菜单中选取安装vmware-tool
3,将cd mount上
4, install
5, 运行vmware-any-any-update101.tar.gz中的runme.pl(改其中的路径/etc/vmware --> /etc/vmware-tools   /usr/bin/vmware-config.pl -->/usr/bin/vmware-tool-config.pl)


-- 下面这个可能依赖前一项的成功
vm:网卡配置选nat
vm的linux中:netconfig 指定与"VMware Network Adapter VMnet8"相同的IP网段地址和子网
vm的linux中:子网默认网关和edit->virtual network setting->nat 中的网关地址一样(还可以在neat中加上路由)
vm的dns: 和主机相同
vm的linux中:service network restart

二、添加硬盘
基本知识:
      硬盘命名规则-----hda代表硬盘名,hda1则代表hda上的第1个分区
过程如下:
0,   在vmware中用新增硬盘向导添加一块硬盘,下面就是操作linux的fdisk的事情了
1,   fdisk -l   ----------查看当前硬盘的分区情况
2,   fdisk  /dev/hdb  --为指定硬盘分区
3,   m          -----------查看帮助
4,   n           -----------新建分区(要选主分区,不知何为)
5    w           -----------写入磁盘的分区表
6,   mkfs -t ex2 /dev/hdb1  --为新建分区创建文件系统(或mkfs.ex2  /dev/hdb1,都是mkfs.$type 命令系列)
##7,   mount  /hdb1   /dev/hdb1 加载新建文件系统
若使用了逻辑卷管理器:则用system-config-lvm调整,可以将新建的分区逻辑地加到原来的
mount点下,等于动态扩展了原来的磁盘(比较好用)



posted @ 2008-02-27 09:19 liunix 阅读(180) | 评论 (0)编辑 收藏
xplanner         进度
bugzilla(--jira) bug
eclipse mylyn    任务
emma             覆盖
cs               集成
SVN              版本
ant              构建
selenium         黑盒测试
--wiki           文档

junit            白盒测试
ant              构建

--powerdesigner    数据库设计
--rose/vision      UML/流程图工具
--word             文档工具

人个schedule     qorganizer


说明: --为收费工具
posted @ 2008-02-26 11:07 liunix 阅读(125) | 评论 (0)编辑 收藏
ant

<?xml version="1.0"?>
<project name="PGAgent" basedir="." default="default">
    
    
<target name="default" depends="deploy" description="代理商平台构建" />
    
    
<property name="build.path" value="build" />
    
    
<tstamp>
        
<format property="date.MMdd" pattern="MMdd"/>
    
</tstamp>
    
    
<filterset id="filter.test">
        
<filter token="dataSource.url" value="jdbc:oracle:thin:@1.2.3.4:1521:p5dbb1"/>
        
<filter token="dataSource.username" value="gagent"/>
        
<filter token="dataSource.password" value="gagent"/>
        
<filter token="log4j.path" value="/home/xuzhijin/logs/pgagent/pgagent.log"/>
    
</filterset>
    
    
<filterset id="filter.deploy">
        
<filter token="dataSource.url" value="null"/>
        
<filter token="dataSource.username" value="null"/>
        
<filter token="dataSource.password" value="null"/>
        
<filter token="log4j.path" value="null"/>
    
</filterset>    

    
<target name="deploy" depends="test_tidy,deploy_tidy">
        
<antcall target="clean_before" />
           
<zip destfile="${build.path}/${ant.project.name}_test_${date.MMdd}.zip" basedir="${build.path}/test" />
           
<zip destfile="${build.path}/${ant.project.name}_deploy_${date.MMdd}.zip" basedir="${build.path}/deploy" />
        
<antcall target="clean_after" />
    
</target>
    
    
<target name="deploy_tidy">
        
<copy todir="${build.path}/deploy/${ant.project.name}/">
            
<fileset dir="${basedir}/WebRoot/">
                
<exclude name="**/.svn"/>
                
<exclude name="**/.svn/*.*"/>
            
</fileset>
        
</copy>
        
<copy todir="${build.path}/deploy/${ant.project.name}/WEB-INF/classes" overwrite="true" >
            
<fileset dir="${basedir}/buildFilter/">
                
<include name="*.properties"/>
            
</fileset>                
            
<filterset refid="filter.deploy" />
        
</copy>
    
</target>
    
    
<target name="test_tidy">
        
<copy todir="${build.path}/test/${ant.project.name}/">
            
<fileset dir="${basedir}/WebRoot/">
                
<exclude name="**/.svn"/>
                
<exclude name="**/.svn/*.*"/>
            
</fileset>
        
</copy>
        
<copy todir="${build.path}/test/${ant.project.name}/WEB-INF/classes/" overwrite="true" >
            
<fileset dir="${basedir}/buildFilter/">
                
<include name="*.properties"/>
            
</fileset>            
            
<filterset refid="filter.test" />
        
</copy>
    
</target>    
    
    
<target name="clean_after">
        
<delete dir="${build.path}/test" />
        
<delete dir="${build.path}/deploy" />
    
</target>
    
    
<target name="clean_before">
        
<delete file="${build.path}/${ant.project.name}_test_${date.MMdd}.zip" />
        
<delete file="${build.path}/${ant.project.name}_deploy_${date.MMdd}.zip" />
    
</target>

</project>



bash:
#!/bin/bash
file_prefix=PGAgent_test
dest_dir
=/usr/local/ciecc/webapps/
today
=`date +%m%d`
 
rm 
-rf $dest_dir${file_prefix%_*}
unzip 
-$dest_dir $file_prefix'_'$today.zip
tail 
-/home/xuzhijin/logs/pgagent/pgagent.log

posted @ 2008-02-22 20:28 liunix 阅读(151) | 评论 (0)编辑 收藏
    String.prototype.trim = function() {
        return this.replace(/^\s+|\s+$/g,"");
    }
   
    String.prototype.isBlank = function() {
        return this == null || this == "";
    }
    
    function validate_required(form){
        for(var i=0;i<form.elements.length;i++){
            var element  = form.elements[i];
            if(null != element.getAttribute('required') && 'TRUE' == element.getAttribute('required').toUpperCase()){
                if(element.value.trim().isBlank()){
                    alert('所有必填项都不能为空');
                    return false;
                }
            }
       }
       return true;
    }
   
    function validate_pattern(form){
        for(var i=0;i<form.elements.length;i++){
            var element  = form.elements[i];
            if(null != element.getAttribute('pattern')){
                if( !element.value.trim().isBlank() && !new RegExp(element.getAttribute('pattern').split("/")[0]).test(element.value.trim())){
                    alert(element.getAttribute('pattern').split("/")[1]);
                    return false;
                }
            }
       }
       return true;                         
    }
   
    -- 校验不必填的传真只填一半的特殊情况
    function validate_other(form){
        if(form.cpFaxPart1.value.isBlank() != form.cpFaxPart2.value.isBlank()){
           alert('公司传真未填写完整(也可完全不填)');
           return false;
        }
        return true;
    }
           
    function validate(form){
        return validate_required(form) && validate_pattern(form) && validate_other(form);
    }
posted @ 2008-02-15 15:52 liunix 阅读(161) | 评论 (0)编辑 收藏
alter session set max_dump_file_size=unlimited;
alter session set timed_statistics=true;
alter session set events '10046 trace name context forever, level 12';
select 'Hello, world; today is '||sysdate from dual; exit;

tkprof card_ora_13226.trc trace.txt print=100 record=sql.txt sys=no

然后查年trace.txt就是分析内容了
posted @ 2007-11-06 09:52 liunix 阅读(372) | 评论 (0)编辑 收藏
#少了一步安装 fcgi本身的
#将public下面的所有ruby路径改正确
#详细说明如何启用fcgi而不是cgi(改.htpaccess)
#将ruby-fcgi按README安装完全
#启用SYBASE要设置/etc/ld.so.conf加上sybase的lib路径(APACHE以NOBODY启动,LD_LIBRARY_PATH似乎没用)


1,为编译fastcgi,安装httpd-dev包
    rpm -ivh httpd-dev***.rpm    #会要求安装其它依赖包
2,构建mod_fastcgi.so,正常构建会报缺少文件(对fc4自动安装apache而言),会自动加入/usr/lib/httpd/module中,/etc/httpd/conf/httpd.conf也会自动加载(但语法不对)
    apxs -n mod_fastcgi -i -a -c mod_fastcgi.c fcgi_buf.c fcgi_config.c fcgi_pm.c fcgi_protocol.c fcgi_util.c  #在解压后的mod_fast2.4.2包中执行,构建mod_fast.so
    chmod 755 /usr/lib/httpd/modules/mod_fastcgi.so #修改访问权限
3,ruby的fcgi模块正确安装方法
   1,下载ruby-fcgi-0.8.7.tar.gz
   2,ruby install.rb config -- --with-fcgi-include=/usr/local/include --with-fcgi-lib=/usr/local/lib  (指向正确的fcgi安装路径)
   3,其余按readme
4,为apache配置虚拟主机(客户机的host要配合指向)---还要加上一条时间选项
    <Directory /var/www/>
        AllowOverride all
    </Directory>

    LoadModule fastcgi_module modules/mod_fastcgi.so
    FastCgiConfig -singleThreshold 100 -killInterval 300 -autoUpdate -idle-timeout 240  -pass-header HTTP_AUTHORIZATION
    AddHandler fastcgi-script .fcgi

    <VirtualHost *:80>
        ServerAdmin webmaster@example.com
        DocumentRoot /var/www/rails/testapp/public        #testapp即为你rails程序的根目录
        ServerName www.example.com
        ErrorLog /var/log/httpd/testapp-error_log
        CustomLog /var/log/httpd/testapp-access_log common
        Options Indexes ExecCGI FollowSymLinks
        RewriteEngine On
    </VirtualHost>
6,启动apache,看欢迎页面
    apachectl start   #用这种方式可以在控制台查看错误消息(应该会报一条无效的加截so的行190?)
7,根据需要修改rails应用(producation环境,facgi的dispatch,数据库支持)


8,后续修改如下
    chown -R apache.apache ${railsapp}
    mkdir /tmp/fcgi_ipc
    httpd.conf-->FastCgiIpcDir "/tmp/fcgi_ipc/"
    chown -R apache.apache /tmp/fcgi_ipc





错误情况分析:
1,apache的error.log或app的error.log会报:(权限问题)
    [Sun Nov 19 14:05:29 2006] [crit] (13)Permission denied:
    FastCGI: can't create (dynamic) server "/var/www/rails/testapp/public/dispatch.fcgi":
    bind() failed [/etc/httpd/logs/fastcgi/dynamic/3c713fbde3044b67e240a7bf3791f36b]

2,测试dispatch.fcgi的方法ruby -d dispatch.fcgi

3,app下面的fastcgi.crash.log中产生----注意,说方法丢失可能是c的动态库没有找到
   Dispatcher failed to catch: undefined method `is_cgi?' for FCGI:Class (NoMethodError)
   fcgi的问题


posted @ 2007-08-10 11:46 liunix 阅读(958) | 评论 (0)编辑 收藏
1, 安装系统时尽量不要选择ruby,如果已安装
    rpm -qa | grep ruby
    rpm -e ${已安装上ruby包名}

2, 检查系统,确定已安装gcc,make
    gcc -v
    make -v

3, 安装ruby 1.8.5
    wget ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.8.5.tar.gz
    tar xzvf ruby-1.8.5.tar.gz
    cd ruby-1.8.5
    ./configure --prefix=/usr/local/ruby
    make && make install
    export PATH=$PATH:/usr/local/ruby/bin/

4, 安装rubygems
    wget http://rubyforge.org/frs/download.php/20990/rubygems-0.9.4.zip
    unzip rubygems-0.9.4.zip && cd rubygems-0.9.4
    ruby setup.rb

5, 安装rails
    gem install rails  -v=1.2.3
    各种依赖库均选Y

6, 安装mongrel(有平台选项的均选ruby)
    gem install mongrel
    各种依赖库均Y

7, 安装sybase-ruby库
    wget http://enjoy1.bb-east.ne.jp/~tetsu/sybct-ruby-0.2.9.tar.gz
    tar xzvf sybct-ruby-0.2.9.tar.gz
    cd sybct-ruby-0.2.9
    编缉extconf.rb文件,指向正确sybase路径
    ruby extconf.rb
    make
    cp sybct.o sybct.so sybct.rb sybsql.rb /usr/local/ruby/lib/ruby/site_ruby/1.8/i686-linux
    export LD_LIBRARY_PATH=${SYBASE_HOME}/OCS-12_5/lib

8, 结合apache与mongrel (APP_ROOT为应用程序根目录)
   参见文章: http://mongrel.rubyforge.org/docs/apache.html

9, 安装ImageMagick和RMagic(不要安装RMagic的gem包)
    先检查依赖库:libpng,libjpeg,libtiff,gd-devel
    unzip ImageMagick-6.3.4-4.zip
    cd ImageMagick-6.3.4-4
    ./configure --prefix=/usr/local/ImageMagick
    make && make install
    export PATH=$PATH:/usr/local/ImageMagic/bin
    编辑:/etc/ld.so.conf,加入
    /usr/local/ImageMagick/lib
    执行:ldconfig

   
    tar xzvf RMagick-1.15.6.tar.gz
    cd RMagick-1.15.6
    ./configure
    make && make install


posted @ 2007-07-11 12:44 liunix 阅读(626) | 评论 (0)编辑 收藏
cygwin清屏:
1, ctrl+l
2, alias cls='echo -e "\E[2J"'

复制,粘帖:
控制台的编辑选项选上"快带编辑"
就可以左键直接选取,右键粘帖了
posted @ 2007-06-11 20:19 liunix 阅读(2522) | 评论 (0)编辑 收藏
为了rails的图形开发
参照 robbin说法:
http://robbin.javaeye.com/blog/post/296400

补充一下:
下ImageMagick的源码版(即便安装了rpm,也再下一版)
    configure时一定指定路径
RMagick也最好是源码版

posted @ 2007-05-31 20:33 liunix 阅读(144) | 评论 (0)编辑 收藏
目的:为了用老的gcc进行sybase的c开发

-,fc6 上安装  VMware

1, 下载VMware-server-1.0.1-29996.tar.gz,vmware-any-any-update109.tar.gz,yum install xined

2, 安装vmware(一路default),config.pl报错,运行update109,搜一个注册码填上

3,启动xinted,vmware的xined脚本

4, 启动客户端vmare

二,vmware安装rh7

图形界面,不说了

安装 sshd_server,setup 配置开启sshd服务, 然后service sshd start

执行ipchains -A input -p tcp -s 192.168.1.6 -d 192.168.1.8 22 -j ACCEPT

打开防火墙端口:ipchains(7.1就变成真的iptable了)

三,openclient 12.5
先装common rpm再openclient.rpm


posted @ 2007-05-25 23:48 liunix 阅读(321) | 评论 (0)编辑 收藏
一,3.12版

1, 慢
    3.12版真的很慢,那就用ibm的jre吧,听说4.0就好了

2, 类库的引入
    project properties--->c/c++builder-->Tools setting选项中

3, 2中的warning选项最好别改,否则build项目会有问题

4, 刚上手的话,最好使用managed c project

5, 问题binaries要变没,那就换浏览视图找到二进制文件右键debug吧



二,4,0 m版 

总得来说,快了,功能多了,复杂了,可以直接用sun的jdk了,run/debug没前一版方便了

1, 配eclipse 3.3 m版

2,   项目的配置界面变化不小

3,  项目默认不启用自动构建

4, 问题:加入线程库的L和l后,编译还会报找不到,一个钟头过去了
                   直接链接的字串中手工加上lpthread即可,这个应该算是个偏方了。。。

posted @ 2007-05-17 14:39 liunix 阅读(1361) | 评论 (0)编辑 收藏
显示行号:

第一步:安装setnu.el到/usr/share/emacs/site-lisp目录下;
第二步:在.emacs中添加
(require 'setnu)
(setnu-mode t)
第三步:在启动emacs后M-x setnu-mode即可以!


posted @ 2007-05-14 10:07 liunix 阅读(154) | 评论 (0)编辑 收藏
出现check sum metadata error 的时候:
yum clean all

posted @ 2007-05-14 10:05 liunix 阅读(120) | 评论 (0)编辑 收藏
1, 手工清除后,数据库中还会存有记录:
select * from v$flash_recovery_area_usage;

2, 然后:
rman target /
crosscheck archivelog all;
delete expired archivelog all;

说明:2是修复1的办法,也应该是正常清除归档日志的办法吧


posted @ 2007-05-11 18:16 liunix 阅读(2062) | 评论 (0)编辑 收藏
1, 编译通过helloworld
cc hello.c -o b.out `pkg-config --cflags --libs gtk+-2.0`
后面的``内容主要是类库和头文件的引入,看来要仔细看看gcc的东西了

posted @ 2007-04-30 11:22 liunix 阅读(301) | 评论 (0)编辑 收藏
1,启用审计记录
    alter system set audit_trail=DB   SCOPE=SPFILE                                  //audit_trail的可选值为:OS或者NONE  
    startup force

2,  启/禁用审计
    audit table by scott
    noaudit table by scott
3,  查询审计
    先从字典中找出audit的相关视图
    dba_stmt_audit_opts                   关于已定义的审计
    dba_trail                                          已有审计的记录


....这里是stmt审计,其它种类审计待续...................

posted @ 2007-04-27 10:06 liunix 阅读(228) | 评论 (0)编辑 收藏
一个月前装ralis
    gem install rails --include-dependencies
     版本为1.2.1

现在升级
    gem update rails --include-dependencies
    版本为1.2.3
(反安装gem uninstall ? -v=?, 要一个包一个包的来)
但原的程序是在1.1.4上做的

出现问题,只好建了一个1.2.3的工程,将程序手工复制过来,
我是在fc上开发,出现编码错误,在环境文件中加上
$KCODE="none"
即可

附:gem 使用说明

gem --help 列出用法

gem help commands 列出所有子命令

gem help ${subcommand} 列出子命令用法



posted @ 2007-04-23 19:05 liunix 阅读(448) | 评论 (0)编辑 收藏
1, realplayer直接下载安装.bin即可
       可能会输入法有冲突,那么将realplay文件头中加上export GTK_IM_MODULE=xim

2, mplayer

装yum扩展库
        rpm -ivh http://rpm.livna.org/livna-release-6.rpm
        rpm -import http://rpm.livna.org/RPM-LIVNA-GPG-KEY
        ( rpm -ivh http://ftp.freshrpms.net/pub/freshrpms/fedora/linux/6/freshrpms-release/freshrpms-release-1.1-1.fc.noarch.rpm 可选)
        yum -y install mplayer
装maplayer菜单项
       yum install mplayer-gui

       yum install mplayerplug-in

让firefox正确打开mms媒体
        地址栏:about:config
        在显示网页的区域单击右键,选择新建字符串,串名是
        network.protocol-handler.app.mms
        串值是:
        /usr/bin/mplayer

posted @ 2007-04-19 20:35 liunix 阅读(178) | 评论 (0)编辑 收藏
一,联机日志文件

1,查看概要信息
    select l.group#,l.bytes/1024/1024 M,f.member from v$log l,v$logfile f
    where l.group#=f.group# order by 1

2,增/删一个新组
    alter database add logfile
    group 4
    ('/oracle/oradata/orcl/redo04.log')
    size 50M
    /
    系统会自动创建文件  


    alter database drop logfile group 4
    /
    rm logfile redo04.log
    在fc6不知为何还要手工删除

3,为一个组增删日志成员
   
    先建一个多文件的测试组,(前面的建的单文件的测试组增加成员时会报文件名字错误), 可见日志组的成员数并不要求一致
    alter database add logfile
    group 4
    ('/oracle/oradata/orcl/redo0401.log',
    '/oracle/oradata/orcl/redo0402.log')
    size 50m

    增加文件(不用指定文件大小)
    alter database add logfile member
    '/oracle/oradata/orcl/redo0403.log'
   to group 4
    /
  
    删除文件
    alter database drop logfile member '/oracle/oradata/orcl/redo0403.log'
    rm redo0403.log

4, 重命名日志文件会用到 alter database rename file 'old' to 'new' ,过程麻烦,还不如删了重建


5, 清理日志组(删除并重建)
      alter database clear logfile group 4
      /



二,归档日志文件


1,查看归档日志是否启用的方法
      achive log list
      select log_mode from v$database

2, db_recovery_file_dest == USE_DB_RECOVERY_FILE_DEST (地址)

3, shutdown immediate
 
4, startup mount

5, alter database archivelog

6, alter database open

7,  alter database switch logfile  生成一个新的

posted @ 2007-04-12 17:55 liunix 阅读(1834) | 评论 (0)编辑 收藏
1, 数据文件
       dba_data_files
2,日志文件
      v$log          大小
      v$logfile    路径
3,   控制文件
     show parameter control

posted @ 2007-04-12 17:49 liunix 阅读(198) | 评论 (0)编辑 收藏
1, 找到glogin.sql

设置:
    -- custom setup
REM Number of lines of SELECT statement output before reprinting headers
SET PAGESIZE 999

REM Width of displayed page, expressed in characters
SET LINESIZE 132

REM Enable display of DBMS_OUTPUT messages. Use 1000000 rather than
REM "UNLIMITED" for databases earlier than Oracle Database 10g Release 2
SET SERVEROUTPUT ON SIZE UNLIMITED FORMAT WRAPPED

REM Change default to "vi improved" editor
DEFINE _EDITOR = /usr/bin/vim

REM Format misc columns commonly retrieved from data dictionary
COLUMN segment_name FORMAT A30 WORD_WRAP
COLUMN object_name FORMAT A30 WORD_WRAP

REM set the prompt (works in SQL*Plus from Oracle9i Database or later)
SET SQLPROMPT "_USER'@'_CONNECT_IDENTIFIER > "


2, c /a/b/g  替换

3,   a [_][_] asdf  追加,注意两个空格

4,   column ${列名} format aNN  格式化字符
       column ${列名} format 99999.99  格式化数字,一个9代表1位
posted @ 2007-04-12 17:44 liunix 阅读(174) | 评论 (0)编辑 收藏
declare
    my_exception EXCEPTION;
    pragma EXCEPTION_INIT(my_exception,-20000);
begin
    raise_application_error(-20000,'自定义错语');
exception when my_exception then
    dbms_output.put_line('捕到了:'||sqlcode||sqlerrm);
end;
/


posted @ 2007-04-12 16:48 liunix 阅读(421) | 评论 (0)编辑 收藏
操作手顺:

1, alter database back controlfile to trace

2, show parameter user

        user_dump_dest                       string      /oracle/admin/orcl/udump

3, cd /oracle/admin/orcl/udmp

4, ll | srot -k 6  (按日期排序文件,sort 的用法和手上的不一样)



二,多路复用控制文件

1, 注意scope = spfile,若是init.ora文件,则必須关闭

alter system set control_files=
'/oracle/oradata/orcl/control01.ctl',
'/oracle/oradata/orcl/control02.ctl',
'/oracle/oradata/orcl/control03.ctl',
'/oracle/oradata/orcl/control04.ctl'
 scope=spfile
/

这时show parameter control  显示沿未更改

2, shutdown immediate

3,    cp control01.ctl control04.ctl

4,  startup

5,  show parameter control  显示已经修改
posted @ 2007-04-11 19:17 liunix 阅读(289) | 评论 (0)编辑 收藏
装apacheds时

如果su root的号,服务启动不了,报log文件无法写的问题,不知道为什么

但login root就没有问题了,这几天要搞清楚

posted @ 2007-04-10 20:36 liunix 阅读(145) | 评论 (0)编辑 收藏
一,右键菜单

右键菜单方法1:

在 ~/.gnome2/nautilus-scripts 目录下增加一个脚本文件,使之可执行

    如: gnome-terminal --working-directory=$PWD


右键菜单方法2:

安装一个插件
     
yum -y install nautilus-open-terminal


二,nautilus默认显示地址栏

yum install gconf-editor
运行 gconf-editor打开配置管理器-apps-nautilus-preferences-always_use_location_entry此项勾选就是默认显示地址栏。


三,总是以浏览文件夹的方式查看文件和目录而不是每次启一个新窗

nautilus--编缉--首选项--行为--总是在浏览器窗口中打开    选中   即可

posted @ 2007-04-06 09:01 liunix 阅读(178) | 评论 (0)编辑 收藏
有一个cmptradeservice的类
deal(byte[] buffer)
deal(isomsg msg)

在windows下远程无事,到了fc下完蛋了,浪费我了几个hours...

切忌:

不要用hessian编写多态的远程调用!!!!!!!!

posted @ 2007-04-05 21:30 liunix 阅读(205) | 评论 (0)编辑 收藏
理论说明:

~/.vimrc 是配置文件,一般可设置
set nu
set shiftwidth=4
set tabstop=4

一,打标记:
    1, m$标记名键
     2, '单引号$标记名键            即可定位

二,选取复制
     1,按v可视
    2,  选完按y 复制
    4,  p粘贴

三,清空缓冲区(%代表1,$ 对其它命令亦可用)
    %d

四,列编缉,超好用
    在光标指定列上ctrl+v
    用j/k移动光标到合适的行上
    按I(即shift+i)输入内容
    按ESC两次,搞定输入

    删除的话
    在移动j/k选完行后再h/l(即小写L)选列,会出现一个可视区,直接按d即可删除

五,大小写转换
    先ctr+v 选中文本,然后用命令gu或gU改变成小写或大写
    命令guu将一行全改成小写,gUU将一行全改成大小
    guw和gUw改一个word
    gggUG和ggguG改变整个缓冲区

例子: vi 综合操作举例

原文

                <entry key="0200/000000" value-ref="baseValidator" />
                <entry key="0100/300000" value-ref="baseValidator" />
                <entry key="0200/400000" value-ref="twoStepValidator" />
                <entry key="0200/020000" value-ref="twoStepValidator" />
                <entry key="0100/120000" value-ref="twoStepValidator" />
                <entry key="0200/420000" value-ref="twoStepValidator" />
                                                                   
                <entry key="0400/000000" value-ref="baseValidator" />
                <entry key="0400/300000" value-ref="baseValidator" />
                <entry key="0400/400000" value-ref="twoStepValidator" />
                <entry key="0400/020000" value-ref="twoStepValidator" />
                <entry key="0400/120000" value-ref="twoStepValidator" />
                <entry key="0400/420000" value-ref="twoStepValidator" />

                        props.setProperty("","");
                        props.setProperty("","");
                        props.setProperty("","");
                        props.setProperty("","");
                        props.setProperty("","");
                        props.setProperty("","");


目标文本:
                    props.setProperty("0200/000000","0400/000000");
                    props.setProperty("0100/300000","0400/300000");
                    props.setProperty("0200/400000","0400/400000");
                    props.setProperty("0200/020000","0400/020000");
                    props.setProperty("0100/120000","0400/120000");
                    props.setProperty("0200/420000","0400/420000");

操作:
 
1  ,替换: % s/<entry key="//g
2,     替换: % s/" .*$//g  (中间有一空格,  引号和控格在vi中都不是元字符)
3,  给props.setPropery("","") 中的每一对引号 中间加一空格(列编缉),否则会被覆盖
4, 拷贝相应上面的块到下面的块中



后记:
1,今天不小心将vim的前端字体变成黄色了,看着难受呀,搜了半天也没解决,不小心打了个:color ,竟然好了
posted @ 2007-04-03 19:05 liunix 阅读(419) | 评论 (0)编辑 收藏
设置:
ruby PATH
make PATH
oracle_home PATH
ld_libraray_path  (看指南)


装:
ruby_devel会提示依赖,那就yum


然后make,make install
最后会说一个permision的问题对liboci.so

是selinux作怪

操作:
管理---》安全级别和防火墙->selinux签-->改成允许-->点击下面一个箭头--》内存保护---->点上“允许无限制的可执行文件使用没有打textrel_shlib_t标签的需要文字重定位的库文件”





posted @ 2007-04-02 20:05 liunix 阅读(260) | 评论 (0)编辑 收藏
1,java_home/jre/lib/fonts下建立fallback
2, 拷贝C:\WINDOWS\Fonts下的simsun.ttc文件到刚建好的目录下


完事儿



posted @ 2007-04-02 14:18 liunix 阅读(286) | 评论 (0)编辑 收藏
sun.reflect.Reflection.getCallerClass(0)

StackTraceElement stack[] = (new Throwable()).getStackTrace(); 
posted @ 2007-03-30 08:37 liunix 阅读(320) | 评论 (0)编辑 收藏
一,ECLIPSE

1,Eclipse 和 wtp 或 myeclipse(可能有问题,但jsp editor 至少可用) 结合

2,sysdeo tomcat plugin for Eclipse 3.2

3,subclipse 1.2 (要安装javahl库,指定LA_LIBRARY_PATH=/usr/lib,具体看subclipse faq)


二,ORACLE
     安装oracle sql developer for linux


三,PDF,CHM
     PDF自带的文档查看器即可用,也可去adobe下载中文的reader
     chm---> yum install chmsee

四,文本编缉
      vi, gedit
      图形的vim是vim-X11包(而不是gvim),如果没安装yum -y install vim-X11

五,ruby & rails & radrails

       1, yum install ruby ruby-libs ruby-devel ruby-irb ruby-ri ruby-docs      
        2, 下载gem,按文档安装
        3, gem install rails
        4, radrails
        5, oci for linux(注意ruby-devel包依赖、oracle lib路径 和 装后selinux问题)

六,通讯  gaim(1.5.0)
   ./configure时一定要指定下面的参数(均在/usr/include和/usr/lib下)
  --with-nspr-includes=PREFIX     Specify location of Mozilla nspr4 includes.
  --with-nspr-libs=PREFIX         Specify location of Mozilla nspr4 libs.
  --with-nss-includes=PREFIX      Specify location of Mozilla nss3 includes.
  --with-nss-libs=PREFIX          Specify location of Mozilla nss3 libs.

七,浏览器  firefox

八,NTFS盘          yum install ntfs-3g

posted @ 2007-03-27 21:02 liunix 阅读(360) | 评论 (0)编辑 收藏
1,装库(盘里带的就行)
compat-gcc-7.3-2.96.122
compat-gcc-c++-7.3-2.96.122
compat-libstdc++-7.3-2.96.122
compat-libstdc++-devel-7.3-2.96.122
compat-db-4.0.14.5

libXp.so.6

libaio //建库用


2,三者同名
hostname
/etc/sysconfig/newwork
/etc/hosts

3,建用户
groupadd dba
useradd oracle -G dba
passwd oracle

4, 设变量
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=TESTFC
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
#export LC_CTYPE=en_US(安装临时需要)

export CLASSPATH=$ORACLE_HOME/jre
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export JAVA_HOME=$ORACLE_HOME/jre/1.4.2
export JRE=$JAVA_HOME/bin/java
export NETTOOLSDIR=$ORACLE_HOME/network/tools


5, 准备安装
mkdir /oracle
chown -R dba.oracle /oracle
chmod +x runinstall(直接解压zip不需要)
chmod +x install/*


6,安装
跳过检查 runinstall -IgnoreSysPreReqs

(安装日志:界面提示)

7,开放端口
/etc/sysconfig/iptables 打开端口:1158,5560,1521

8,建库
dbca

9,配置listener
netca

10,启动web控制台
emctl start dbconsole //1158
posted @ 2007-03-08 08:49 liunix 阅读(655) | 评论 (0)编辑 收藏
在线广播


中国国际广播电台:
mms://living.chinabroadcast.cn/inet

hit fm:
mms://live.hitfm.cn/fm887

cri easy fm:
mms://enmms.chinabroadcast.cn/fm91.5




在线电视


cctv-9

mms://winmedia.cctv.com.cn/live3

posted @ 2007-02-26 17:50 liunix 阅读(167) | 评论 (0)编辑 收藏
     < target  name ="jdoc" >
        
< javadoc 
            destdir ="${basedir}/doc/api"
            author
="true"
            version
="true"
            use
="true"
            fork="true"
            forkmode="perBatch"
            windowtitle="Project API">
            
<fileset dir="${basedir}/src" includes="**/*.java"/>
            
<classpath refid="classpath"></classpath>
            
<doctitle><![CDATA[<h1>Project API</h1>]]></doctitle>
            
<bottom><![CDATA[<i>Copyright &#169; 2005</i>]]></bottom>
        
</javadoc>
    
</target>

1,源文通过fileset指定较为灵活
2,注意将项目的classpath加入其内
3,对fork和formode的使用主要是为测试性能考虑(如有数据库连接静态初始化之类的操作会大大加快速度)

posted @ 2007-02-13 11:36 liunix 阅读(216) | 评论 (0)编辑 收藏
     < target  name ="test" >
        
< junit  printsummary ="on"  failureproperty ="testsFailed" >
            
< classpath  refid ="classpath"   />
            
< formatter  type ="xml" />
            
< batchtest  todir ="${basedir}/doc/junitReport" >
                
< fileset  dir ="${basedir}/web/WEB-INF/classes"  includes ="**/*Test.class"   />
            
</ batchtest >
        
</ junit >
        
< junitreport  todir ="${basedir}/doc/junitReport" >
            
< fileset  dir ="${basedir}/doc/junitReport" >
                
< include  name ="TEST-*.xml" />
            
</ fileset >
            
< report  todir ="${basedir}/doc/junitReport/html" />
        
</ junitreport >
    
</ target >
1,命名TEST-*.xml大小写有别
2,有可能须要xalan放到eclipse的ant/lib下(不确定)
3, 和cruisecontrol结合使用时junitreport就不要了,否则会生成双分的测试结果
posted @ 2007-02-12 14:09 liunix 阅读(331) | 评论 (0)编辑 收藏
rem ---------------------------------------------------------------------------
rem 和eclipse建立远程调试的方法,管用
rem ---------------------------------------------------------------------------
SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000

加入catalina.bat(在CATALINA_OPTS使用之前)文件

在eclipse的remote debug设置对应的主机地址和端口号即可

和tomcat的命令行方式配合使用,可以省插件了
posted @ 2007-01-24 17:29 liunix 阅读(421) | 评论 (0)编辑 收藏
    <!--ssl连接,如果要验证客户端证书,只需要将clientauth设为true即可-->
    <Connector port="8443"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" disableUploadTimeout="true"
               acceptCount="100" debug="0" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS"
               keystoreFile="/D:/tomcat_command/teststore"
               keystorePass="125521"
               />
posted @ 2006-12-25 16:08 liunix 阅读(411) | 评论 (0)编辑 收藏
1,按说明安装ruby的apache mod
2,配置文件如下:
 1  #########################################################
 2  #     ruby cgi 配置
 3  #########################################################
 4  LoadModule ruby_module /usr/lib/httpd/modules/mod_ruby.so
 5  
 6  <IfModule mod_ruby.c>
 7      RubyRequire apache/ruby-run
 8      <Files *.rbx><!--不要误以为源文件以.rbx结尾,还是.rb(在windows下要用.rb)-->
 9          SetHandler ruby-object
10          RubyHandler Apache::RubyRun.instance
11      </Files>
12      RubyRequire apache/eruby-run
13      <Files *.rhtml>
14          SetHandler ruby-object
15          RubyHandler Apache::ERubyRun.instance
16      </Files>
17      #for debug
18      RubyRequire auto-reload
19  </IfModule>


windows:说明
先装:RubyForApache-1.3.1.exe
后装:eruby-1.0.5-i386-mswin32-1.8.zip
posted @ 2006-12-12 15:56 liunix 阅读(1109) | 评论 (0)编辑 收藏
命令形式:
java -classpath D:\tomcat5\bin\bootstrap.jar;D:\jdk15\lib\tools.jar -Dcatalina.home=D:\tomcat5 -Dcatalina.base=E:\webwork1_base  org.apache.catalina.startup.Bootstrap -config E:\webwork1_base\conf\tomcat_server.xml start

说明:
1,catalina.base要有一些类似tomcat安装目录的结构和文件
       --conf      #从安装目录将文件拷过来
       --webapps   #最好将应用放在这下面
       --work      #运行时目录
2,tomcat_server.xml文件的最后加入一个类似的context
<Context debug="0" docBase="/E:/webwork1_base/webapps/webwork1/web/" path="" reloadable="false" workDir="/E:/webwork1_base/work/webwork1/work"/>

3,关闭方式
把start换成stop就行了

4,有啥用?
想试验tomcat配置的,便可不用改原server.xml文件而随心所欲了
还有自动构造建布署等等啦
posted @ 2006-12-11 22:21 liunix 阅读(2441) | 评论 (0)编辑 收藏
Apache安装MOD_SSL的补充--手工签署证书的方法

 虽然在安装MOD_SSL时已经使用 make certificate 命令建立了服务器
的证书签名,但是有时你可能需要改变它。

当然有很多自动的脚本可以实现它,但是最可靠的方法是手工签署
证书。

首先我假定你已经安装好了openssl和MOD_SSL,如果你的openssl安装时
的prefix设置为/usr/local/openssl,那么把/usr/local/openssl/bin加入
执行文件查找路径。还需要MOD_SSL源代码中的一个脚本,它在MOD_SSL的
源代码目录树下的pkg.contrib目录中,文件名为 sign.sh。
将它拷贝到 /usr/local/openssl/bin 中。

先建立一个 CA 的证书,
首先为 CA 创建一个 RSA 私用密钥,
[S-1]
openssl genrsa -des3 -out ca.key 1024
系统提示输入 PEM pass phrase,也就是密码,输入后牢记它。
生成 ca.key 文件,将文件属性改为400,并放在安全的地方。
[S-2]
chmod 400 ca.key
你可以用下列命令查看它的内容,
[S-3]
openssl rsa -noout -text -in ca.key

利用 CA 的 RSA 密钥创建一个自签署的 CA 证书(X.509结构)
[S-4]
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
然后需要输入下列信息:
Country Name: cn 两个字母的国家代号
State or Province Name: An Hui 省份名称
Locality Name: Bengbu 城市名称
Organization Name: Family Network 公司名称
Organizational Unit Name: Home 部门名称
Common Name: Chen Yang 你的姓名
Email Address: sunstorm@263.net Email地址
生成 ca.crt 文件,将文件属性改为400,并放在安全的地方。
[S-5]
chmod 400 ca.crt
你可以用下列命令查看它的内容,
[S-6]
openssl x509 -noout -text -in ca.crt


下面要创建服务器证书签署请求,
首先为你的 Apache 创建一个 RSA 私用密钥:
[S-7]
openssl genrsa -des3 -out server.key 1024
这里也要设定pass phrase。
生成 server.key 文件,将文件属性改为400,并放在安全的地方。
[S-8]
chmod 400 server.key
你可以用下列命令查看它的内容,
[S-9]
openssl rsa -noout -text -in server.key

用 server.key 生成证书签署请求 CSR.
[S-10]
openssl req -new -key server.key -out server.csr
这里也要输入一些信息,和[S-4]中的内容类似。
至于 'extra' attributes 不用输入。

你可以查看 CSR 的细节
[S-11]
openssl req -noout -text -in server.csr

下面可以签署证书了,需要用到脚本 sign.sh
[S-12]
sign.sh server.csr
就可以得到server.crt。
将文件属性改为400,并放在安全的地方。
[S-13]
chmod 400 server.crt

删除CSR
[S-14]
rm server.csr


最后apache设置
如果你的apache编译参数prefix为/usr/local/apache,
那么拷贝server.crt 和 server.key 到 /usr/local/apache/conf
修改httpd.conf
将下面的参数改为:
SSLCertificateFILE /usr/local/apache/conf/server.crt
SSLCertificateKeyFile /usr/local/apache/conf/server.key





openssl自建证书SSL+apache

 本文章在LINUX9+apache2.0.52,tomcat5.5.6,j2se1.5,openssl0.97上实验通证
本文的目的是为了交流,如有出错的地方,请指教
转载请注明出处,并保持文章的完整性
现在开始安装

首先在安装之前要明白一些基本概念

1、SSL所使用的证书可以是自己建的生成的,也可以通过一个商业性CA如Verisign 或 Thawte签署证书。


2、证书的概念:首先要有一个根证书,然后用根证书来签发服务器证书和客户证书,一般理解:服务器证书和客户证书是平级关系。在SSL必须安装根证书和服务器证书来认证。

因此:在此环境中,至少必须有三个证书:即根证书,服务器证书,客户端证书
在生成证书之前,一般会有一个私钥,同时用私钥生成证书请求,再利用证书服务器的根证来签发证书。

3、签发证书的问题:我最近找了很多关于openssl的资料,基本上只生成了根证书和私钥及服务器证书请求,并没有真正的实现签证。我这里参考了一些资料,用openssl自带的一个CA.sh来签证书,而不是用MOD_ssl里的sign.sh来签。

用openssl语法来生成证书,有很多条件限定,如目录,key的位置等,比较麻烦,我实验了好几天,最后放弃了。有兴趣的可以参考一下openssl手册。


步骤一:安装openssl和apache
1、到www.openssl.org下载openssl-0.9.7e.tar.gz(目前最新版)
2、卸载掉老的opensll库
CODE:
#rpm –e –-nodeps openssl

3、解压:
CODE:
#tar xzvf openssl-0.9.7e.tar.gz

4、进入openssl目录,并安装,用--prefix指定openssl安装目录
CODE:
#cd openssl-0.9.7e
#./config --prefix=/usr/local/openssl
#make
#make test
#make install

5、安装apache
至www.apache.org/dist下载apache最新版httpd-2.0.52.tar.gz
解压后进入apache目录,根据需要安装需要的模块,我这里装了ssl,rewrite,动态模式安装
CODE:
#tar zxvf httpd-2.0.52.tar.gz
#cd httpd-2.0.52
#./configure --prefix=PREFIX --enable-ssl --enable-rewrite --enable-so --with-ssl=/usr/local/openssl
#make
#make install

步骤二:签证
安装openssl后,在openssl下有一个CA.sh文件,就是利用此文件来签证,
来签三张证书,然后利用这三张证书来布SSL服务器。

1、在/usr/local/apache/conf下,建立一个ssl.crt目录,将CA.sh文件copy至/usr/local/apache/conf/ssl.crt/目录
CODE:
[root@win ssl]# cp /usr/local/openssl/ssl/misc/CA.sh /usr/local/apache/conf/ssl.crt/CA.sh

2、运行CA.sh -newca,他会找你要CA需要的一个CA自己的私有密钥密码文件。如果没有这个文件?按回车会自动创建,输入密码来保护这个密码文件。之后会要你的一个公司信息来做CA.crt文件。最后在当前目录下多了一个./demoCA这样的目录../demoCA/private/cakey.pem就是CA 的key文件啦,./demoCA/cacert.pem就是CA的crt文件了
CODE:
[root@win ssl.crt]# ./CA.sh -newca

要求输入如下信息:
QUOTE:
Country Name (2 letter code) [GB]:CN
State or Province Name (full name) [Berkshire]:FUJIAN
Locality Name (eg, city) [Newbury]:FUZHOU
Organization Name (eg, company) [My Company Ltd]:FJJM
Organizational Unit Name (eg, section) []:FD
Common Name (eg, your name or your server's hostname) []:WIN
Email Address []:WIN@WIN.COM

这样就建好了一个CA服务器,有了一个根证书的私钥cakey.pem及一张根证书cacert.pem,现在就可以cacert.pem来给签证了

3、签署服务器证书
生成服务器私钥:
CODE:
[root@win ssl.crt]# openssl genrsa -des3 -out server.key 1024

生成服务器证书请求
CODE:
[root@win ssl.crt]# openssl req -new -key server.key -out server.csr

会要求输入信息
CODE:
Country Name (2 letter code) [GB]:CN
State or Province Name (full name) [Berkshire]:FUJIAN
Locality Name (eg, city) [Newbury]:FUZHOU
Organization Name (eg, company) [My Company Ltd]:FJJM
Organizational Unit Name (eg, section) []:FD
Common Name (eg, your name or your server's hostname) []:WIN
Email Address []:WIN@WIN.COM
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:WIN
An optional company name []:WING

最后把server.crt文件mv成newreq.pem,然后用CA.sh来签证就可以了
CODE:
[root@win ssl.crt]# mv server.csr newreq.pem
[root@win ssl.crt]# ./CA.sh -sign

这样就生成了server的证书newcert.pem
把newcert.pem改名成server.crt
CODE:
[root@win ssl.crt]# mv newcert.pem server.crt

4、处理客户端:
生成客户私钥:
CODE:
[root@win ssl.crt]# openssl genrsa -des3 -out client.key 1024

请求
CODE:
[root@win ssl.crt]# openssl req -new -key client.key -out client.csr

签证:
CODE:
[root@win ssl.crt]# openssl ca -in client.csr -out client.crt

把证书格式转换成pkcs12格式
CODE:
[root@win ssl.crt]# openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.pfx

5、这时就有了三张证书和三个私钥,一个是demoCA下的根证书,ssl.crt下的服务器证书和客户证书。及demoCA/private下的根key, ssl.crt下的服务器key和客户key,在conf下的ssl.conf下指定证书的位置和服务器key的位置.

我是在conf下建立一个ssl.crt目录,并将所有的key和证书放到这里
CODE:
#cp demoCA/cacert.pem cacert.pem

同时复制一份证书,更名为ca.crt
CODE:
#cp cacert.pem ca.crt

步骤三、编辑ssl.conf
CODE:
#cd /usr/local/apache/conf

编辑ssl.conf
CODE:
指定服务器证书位置
SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt
指定服务器证书key位置
SSLCertificateKeyFile /usr/local/apache/conf/ssl.crt/server.key
证书目录
SSLCACertificatePath /usr/local/apache/conf/ssl.crt
根证书位置
SSLCACertificateFile /usr/local/apache/conf/ssl.crt/cacert.pem
开启客户端SSL请求
SSLVerifyClient require
SSLVerifyDepth 1

启动ssl
CODE:
/usr/local/apache/bin/apachectl startssl

会要求输入server.key的密码
启动,这样一个默认的SSL服务器及http服务器就启动了,

步骤四、安装和使用证书
把刚才生成的证书:根证书ca.crt和客户证书client.pfx下到客户端,并安装,
ca.crt安装到信任的机构,client.pfx直接在windows安装或安装到个人证书位置,然后用IP访问HTTP和https服务器。
posted @ 2006-11-29 15:47 liunix 阅读(301) | 评论 (0)编辑 收藏