甜咖啡

我的IT空间

2013年2月28日

Java遍历Map
public static void main(String[] args) {

  Map<String, String> map = new HashMap<String, String>();
  map.put("1", "value1");
  map.put("2", "value2");
  map.put("3", "value3");
  
  //第一种:普遍使用,二次取值
  System.out.println("通过Map.keySet遍历key和value:");
  for (String key : map.keySet()) {
   System.out.println("key= "+ key + " and value= " + map.get(key));
  }
  
  //第二种
  System.out.println("通过Map.entrySet使用iterator遍历key和value:");
  Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
  while (it.hasNext()) {
   Map.Entry<String, String> entry = it.next();
   System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
  }
  
  //第三种:推荐,尤其是容量大时
  System.out.println("通过Map.entrySet遍历key和value");
  for (Map.Entry<String, String> entry : map.entrySet()) {
   System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
  }

  //第四种
  System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
  for (String v : map.values()) {
   System.out.println("value= " + v);
  }
 }

Java遍历Set

对 set 的遍历  
1.迭代遍历:  
Set<String> set = new HashSet<String>();  
Iterator<String> it = set.iterator();  
while (it.hasNext()) {  
  String str = it.next();  
  System.out.println(str);  
}  
  
2.for循环遍历:  
for (String str : set) {  
      System.out.println(str);  
}  
  
  
优点还体现在泛型 假如 set中存放的是Object  
  
Set<Object> set = new HashSet<Object>();  
for循环遍历:  
for (Object obj: set) {  
      if(obj instanceof Integer){  
                int aa= (Integer)obj;  
             }else if(obj instanceof String){  
               String aa = (String)obj  
             }  
              ........  
}  

当一个人找不到出路的时候,最好的办法就是将当前能做好的事情做到极致,做到无人能及。
posted @ 2013-04-03 12:12 甜咖啡 阅读(17165) | 评论 (0)编辑 收藏

今天在研究了一下关于ORACLE的导入导出的功能,周五快要下班的时候给同事新建一个表空间,将同一个数据库中的某个用户下的表导入新的表空间上,建好表空间和用户后,直接用 exp ,imp 来导入数据到新的表空间,查是发现后来导入的数据还在原来的表空间上,(周五那天的我是用工具编辑DMP文件,修改里的表空间名后导入的),后来想起来了eygle的书上写了关于这个的问题,于是今天就来试验了一下。

第一种:修改用户的一些权限。

首先使用sytem帐户登陆

--创建新表空间的用户

SQL> create user pangzi identified by pangzi default tablespace pangzi temporary tablespace temp;

用户已创建。

--授给新用户一般的权限

SQL> grant export full database to pangzi;

授权成功。

SQL> grant import full database to pangzi;

授权成功。

SQL> grant connect,resource to pangzi;

授权成功。

SQL> grant create procedure to pangzi;

授权成功。

SQL> grant create job to pangzi;

授权成功。

SQL> grant create view to pangzi;

授权成功。

SQL> grant create synonym to pangzi;

授权成功。

--从这里开始将是增加的,为了使导入的数据,不放在原来的表空间上

SQL> grant dba to pangzi;

--收回用户的umlimited tablespace权限

SQL> revoke unlimited tablespace from pangzi;

--设置新创建的用户可使用syb表空间的大小0(原数据所在的表空间为syb)

SQL> alter user pangzi quota 0 on syb;

--设置新创建的用户可使用pangzi表空间的大小不限制

 

SQL> alter user pangzi quota unlimited on pangzi;

--收回DBA权限

SQL> revoke dba from pangzi;

执行导入数据

C:\Users\dyspangzi>imp pangzi/pangzi@testdev file=syb.dmp full=y

 

Import: Release 10.2.0.3.0 - Production on 星期六 4月 21 17:48:54 2012

 

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

 

 

连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

 

经由常规路径由 EXPORT:V10.02.01 创建的导出文件

 

警告: 这些对象由 SYB 导出, 而不是当前用户

 

已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入

. 正在将 SYB 的对象导入到 PANGZI

. . 正在导入表                     "ALL_SALES"导入了         360 行

. . 正在导入表                       "COUPONS"导入了           6 行

. . 正在导入表                     "CUSTOMERS"导入了           5 行

. .中间部分内容省略,都是导入的信息

 

 

. . 正在导入表                      "REG_EXPS"导入了           1 行

. . 正在导入表                 "SALARY_GRADES"导入了           4 行

即将启用约束条件...

成功终止导入, 没有出现警告。

导入成功,我们看导的表已经在新的表空间中了

SQL> show user
USER 为 "PANGZI"
SQL> select table_name,tablespace_name from user_tables;

TABLE_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
DYSPANGZI                      PANGZI
CUSTOMERS                      PANGZI
PRODUCT_TYPES                  PANGZI
PRODUCTS                       PANGZI
PURCHASES                      PANGZI
EMPLOYEES                      PANGZI
SALARY_GRADES                  PANGZI
PURCHASES_WITH_TIMESTAMP       PANGZI
PURCHASES_TIMESTAMP_WITH_TZ    PANGZI
PURCHASES_WITH_LOCAL_TZ        PANGZI
COUPONS                        PANGZI

TABLE_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
PROMOTIONS                     PANGZI
ORDER_STATUS                   PANGZI
PRODUCT_CHANGES                PANGZI
MORE_PRODUCTS                  PANGZI
MORE_EMPLOYEES                 PANGZI
DIVISIONS                      PANGZI
JOBS                           PANGZI
EMPLOYEES2                     PANGZI
ALL_SALES                      PANGZI
PRODUCT_PRICE_AUDIT            PANGZI
REG_EXPS                       PANGZI

已选择22行。                      

第二种:使用EXPDP和IMPDP来导入和导出

       使用expdp来导出,首先要为一个参数来指定一个路径——directory,expdp是在服务器端工作,导出的文件需要放在本地目录,这个参数就是保存导出文件的位置。这个可以自己创建,也可以是默认的,我自己创建了一个,名字是expdir

SQL> CREATE OR REPLACE DIRECTORY expdir AS '/var/backup';

 

目录已创建。

 

SQL> select * from dba_directories;

 

OWNER        DIRECTORY_NAME      DIRECTORY_PATH

-------------------   -------------------------------  -----------------------------------------

SYS             ADMIN_DIR            /ade/aime_10.2_lnx_push/oracle/md/admin

 

SYS             DATA_PUMP_DIR       /usr/app/oracle/product/10.2.0/db_1/rdbms/log/

 

SYS             WORK_DIR             /ade/aime_10.2_lnx_push/oracle/work

 

SYS             EXPDIR                /var/backup

--给用户授予读写权限

 

 

SQL> grant read,write on directory expdir to syb;

开始导出数据

[oracle@dyspangzi ~]$ expdp dumpfile=syb.dmp directory=expdir;

Export: Release 10.2.0.1.0 - Production on Saturday, 21 April, 2012 18:06:46

Copyright (c) 2003, 2005, Oracle.  All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
Starting "SYB"."SYS_EXPORT_SCHEMA_01":  dumpfile=syb.dmp directory=expdir
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 1.375 MB
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type SCHEMA_EXPORT/TABLE/COMMENT
Processing object type SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC
Processing object type SCHEMA_EXPORT/FUNCTION/FUNCTION
Processing object type SCHEMA_EXPORT/PROCEDURE/PROCEDURE
Processing object type SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SPEC
Processing object type SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION
Processing object type SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
Processing object type SCHEMA_EXPORT/PACKAGE/PACKAGE_BODY
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/TRIGGER
. . exported "SYB"."DYSPANGZI"                           48.50 KB     659 rows
. . exported "SYB"."ALL_SALES"                           13.68 KB     360 rows
       中间导出信息省略

.  . exported "SYB"."REG_EXPS"                            5.437 KB       1 rows
. . exported "SYB"."SALARY_GRADES"                       5.710 KB       4 rows
. . exported "SYB"."PRODUCT_PRICE_AUDIT"                     0 KB       0 rows
Master table "SYB"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SYB.SYS_EXPORT_SCHEMA_01 is:
  /var/backup/syb.dmp
Job "SYB"."SYS_EXPORT_SCHEMA_01" successfully completed at 18:07:11

 

导出成功后查看一下刚才创建目录里边的内容

[root@dyspangzi var]# cd backup
[root@dyspangzi backup]# ls -l
总计 720
-rw-r--r-- 1 oracle oinstall   3472 04-21 18:07 export.log
-rw-r----- 1 oracle oinstall 729088 04-21 18:07 syb.dmp

多了两个文件,一个是日志文件一个是导出的数据文件,在导入的时候需要这两个文件。下面开始导入。

===================================================================================

出现了第一个错误

[oracle@dyspangzi ~]$ impdp pangzi/pangzi dumpfile=syb.dmp directory=expdir remap_tablespace=syb:pangzi

Import: Release 10.2.0.1.0 - Production on Saturday, 21 April, 2012 18:45:35

Copyright (c) 2003, 2005, Oracle.  All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-39087: directory name EXPDIR is invalid

出现了错误,后来发现这个是因为新用户pangzi没有对目录的读写权限造成的,于是加上权限

SQL> grant read,write on directory expdir to pangzi;

授权成功。

==================================================================================

出现了第二个错误

[oracle@dyspangzi ~]$ impdp pangzi/pangzi dumpfile=syb.dmp directory=expdir remap_tablespace=syb:pangzi

Import: Release 10.2.0.1.0 - Production on Saturday, 21 April, 2012 18:47:38

Copyright (c) 2003, 2005, Oracle.  All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
ORA-31655: no data or metadata objects selected for job
ORA-39154: Objects from foreign schemas have been removed from import
Master table "PANGZI"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
Starting "PANGZI"."SYS_IMPORT_FULL_01":  pangzi/******** dumpfile=syb.dmp directory=expdir remap_tablespace=syb:pangzi
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Job "PANGZI"."SYS_IMPORT_FULL_01" successfully completed at 18:47:41

这个是由于原来的用户和现在的不一样了,加上这个参数就好了  remap_schema=syb:pangzi

=====================================================================================================

下面是没有任何错误的导入了

[oracle@dyspangzi ~]$ impdp pangzi/pangzi dumpfile=syb.dmp directory=expdir remap_schema=syb:pangzi remap_tablespace=syb:pangzi

Import: Release 10.2.0.1.0 - Production on Saturday, 21 April, 2012 18:49:24

Copyright (c) 2003, 2005, Oracle.  All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
Master table "PANGZI"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
Starting "PANGZI"."SYS_IMPORT_FULL_01":  pangzi/******** dumpfile=syb.dmp directory=expdir remap_schema=syb:pangzi remap_tablespace=syb:pangzi
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
. . imported "PANGZI"."DYSPANGZI"                        48.50 KB     659 rows
. . imported "PANGZI"."ALL_SALES"                        13.68 KB     360 rows
     中间部分导入信息省略

. . imported "PANGZI"."PURCHASES_WITH_TIMESTAMP"         5.609 KB       1 rows
. . imported "PANGZI"."REG_EXPS"                         5.437 KB       1 rows
. . imported "PANGZI"."SALARY_GRADES"                    5.710 KB       4 rows
. . imported "PANGZI"."PRODUCT_PRICE_AUDIT"                  0 KB       0 rows
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC
Processing object type SCHEMA_EXPORT/FUNCTION/FUNCTION
Processing object type SCHEMA_EXPORT/PROCEDURE/PROCEDURE
Processing object type SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SPEC
Processing object type SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION
Processing object type SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
Processing object type SCHEMA_EXPORT/PACKAGE/PACKAGE_BODY
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/TRIGGER
Job "PANGZI"."SYS_IMPORT_FULL_01" successfully completed at 18:49:37

成功导入!!!!

查看默认的表空间

SQL> select table_name,tablespace_name from user_tables;

TABLE_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
DYSPANGZI                      PANGZI
CUSTOMERS                      PANGZI
PRODUCT_TYPES                  PANGZI
PRODUCTS                       PANGZI
PURCHASES                      PANGZI
EMPLOYEES                      PANGZI
SALARY_GRADES                  PANGZI
PURCHASES_WITH_TIMESTAMP       PANGZI
PURCHASES_TIMESTAMP_WITH_TZ    PANGZI
PURCHASES_WITH_LOCAL_TZ        PANGZI
COUPONS                        PANGZI

TABLE_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
PROMOTIONS                     PANGZI
ORDER_STATUS                   PANGZI
PRODUCT_CHANGES                PANGZI
MORE_PRODUCTS                  PANGZI
MORE_EMPLOYEES                 PANGZI
DIVISIONS                      PANGZI
JOBS                           PANGZI
EMPLOYEES2                     PANGZI
ALL_SALES                      PANGZI
PRODUCT_PRICE_AUDIT            PANGZI
REG_EXPS                       PANGZI

已选择22行。

此表空间中没有索引,所以第一种方法也没有报错,如果出现有索引的第一种方法还得增加几步,等我明天找到周五那个数据再来再着做试验。

-----------------------------------------------------------

今天特意去公司找来了那天导的数据库,回来做实验。采用第一种方法不可行,虽然说可以使用IMP  加indexs参数来导出一些索引,但是导入的时候总有莫名其妙的错误,估计还是我没弄好,所以为了省事还是直接用第二种吧,方便,无错。

posted @ 2013-04-03 12:07 甜咖啡 阅读(902) | 评论 (0)编辑 收藏

1.在Oracle中可以用下面两种:

01: 
     create table newtable   as select * from oldtable;//用于复制前未创建新表newtable不存在的情况 
02: 
      insert into newtable   select * from oldtable;//已经创建了新表newtable 的情况

注意:第一种方式只是复制了表结构,但是主键什么的并没有复制进去,所以用的时候要小心在意。

2.如果想简单快速的复制表结构,而不需要oldtable里面的数据,可以用下面的语句:

    create table newtable   as  select * from oldtable where 1=2;(把数据过滤掉)

3.如过newtable 和oldtable的表结构不同,可以使用下面的方式:

 create table newtable  as select  s.c1,s.c2  from oldtable s;

 

4.如果想重新命名newtable的列名:

在oracle中:

 create table  newtable(id,name1) as select  s.c1,s.c2  from oldtable s;

或者

 create table  newtable as select  s.c1 ,s.c2  from oldtable s;

在mysql中恐怕只能用第二种方式了。

5.如果是只需要把一部分的oldtable中的数据添加到newtable中。可以这样:

 create table newtable   as (select * from oldtable where ...);//加where过滤条件

6.最常见的情况是id列新表中要用,并且和旧表中的不同,使用下面的语句就可以了(我们可以重新建一个sequence)

create table yang(id,name) as select hibernate_sequence.nextval,t.ename from emp t;

7.要注意,导出表的时候不能用select...into语句。

posted @ 2013-04-03 12:05 甜咖啡 阅读(370) | 评论 (0)编辑 收藏
方法1:
在shell中执行LANG=en 将语言设为英语就可以了.SSH下很多中文都不支持.
方法2:
在使用ssh远程控制redhat服务器时,中文显示为乱码。这个问题困扰了好久,后来发现修改i18n这个文件能够修正乱码。
 
方法如下:修改/etc/sysconfig/i18n文件,将其改成以下内容:
LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"
重启机器,问题应该解决了。
方法3:
如果你用的是putty ,你只要在字符编码里选择utf-8就正常了
 
补充:这样做的后果是,在linux启动时,那些提示文字中文都变成了“?”符号。如果不习惯的话将ssh显示端改成英文吧。如下:
LANG=en_US  
posted @ 2013-04-03 12:05 甜咖啡 阅读(588) | 评论 (0)编辑 收藏
一、java实现DES加密算法
为了实现一对密钥对整个项目所有加密解密文件都适用的方法,采用先生成一对密钥.保存到xml文件中,以后获得私匙和公钥只需要从xml文件中取得就可以了.
/**
* 把成生的一对密钥保存到DesKey.xml文件中
*/
public static void saveDesKey(){     
    try {
        SecureRandom sr = new SecureRandom();
        //为我们选择的DES算法生成一个KeyGenerator对象
        KeyGenerator kg = KeyGenerator.getInstance ("DES" );
        kg.init (sr);
        FileOutputStream fos = new FileOutputStream("C:/DesKey.xml");
      ObjectOutputStream oos = new ObjectOutputStream(fos);
        //生成密钥
        Key key = kg.generateKey();
      oos.writeObject(key);
      oos.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
}




获取密钥方法如下:

/**

* 获得DES加密的密钥。在交易处理的过程中应该定时更
* 换密钥。需要JCE的支持,如果jdk版本低于1.4,则需要
* 安装jce-1_2_2才能正常使用。
* @return   Key 返回对称密钥
*/
    public static Key getKey() {
        Key kp = null;
        try {
              String fileName = "conf/DesKey.xml";
              InputStream is = DesUtil.class.getClassLoader()
                      .getResourceAsStream(fileName);
              ObjectInputStream oos = new ObjectInputStream(is);
              kp = (Key) oos.readObject();
              oos.close();
        } catch (Exception e) {
              e.printStackTrace();
        }
        return kp;
    }


文件采用DES算法加密文件

/**
* 文件file进行加密并保存目标文件destFile中

* @param file
*         
要加密的文件 如c:/test/srcFile.txt
* @param destFile
*         加密后存放的文件名 如c:/加密后文件
.txt
*/

public static void encrypt(String file, String destFile) throws Exception {

        Cipher cipher = Cipher.getInstance("DES");

        cipher.init(Cipher.ENCRYPT_MODE, getKey());

        InputStream is = new FileInputStream(file);

        OutputStream out = new FileOutputStream(dest);

        CipherInputStream cis = new CipherInputStream(is, cipher);

        byte[] buffer = new byte[1024];

        int r;

        while ((r = cis.read(buffer)) > 0) {

              out.write(buffer, 0, r);

        }

        cis.close();

        is.close();

        out.close();

    }


文件采用DES算法解密文件


/**
文件file进行加密并保存目标文件destFile中

* @param file
*         
已加密的文件 如c:/加密后文件.txt
* @param destFile
*         解密后存放的文件名 如c:/ test/解密后文件
.txt
*/

public static void decrypt(String file, String dest) throws Exception {
        Cipher cipher = Cipher.getInstance("DES");
        cipher.init(Cipher.DECRYPT_MODE, getKey());
        InputStream is = new FileInputStream(file);
        OutputStream out = new FileOutputStream(dest);
        CipherOutputStream cos = new CipherOutputStream(out, cipher);
        byte[] buffer = new byte[1024];
        int r;
        while ((r = is.read(buffer)) >= 0) {
              cos.write(buffer, 0, r);
        }
        cos.close();
        out.close();
        is.close();
    } 
posted @ 2013-03-29 15:58 甜咖啡 阅读(405) | 评论 (0)编辑 收藏
1、查看操作系统版本和内核版本

#uname –a

#more /etc/redhat-release


2、创建相关目录

/usr/src/redhat/SOURCES //存放源代码,补丁,图标等文件。


/usr/src/redhat/SPECS //存放用于管理rpm制作进程的spec文件。


/usr/src/redhat/BUILD //解压后的文件存放在这里。


/usr/src/redhat/RPMS //存放由rpmbuild制作好的二进制包。


/usr/src/redhat/SRPMS //存放由rpmbuild制作好的源码包。


#mkdir -p /usr/src/redhat/

#cd /usr/src/redhat/

#mkdir SOURCES SPECS BUILD RPMS SRPMS


3、下载Nginx源码包

下载源码包到SOURCES目录,不需要解压


#wget http://nginx.org/download/nginx-1.3.9.tar.gz


4、手工创建SPEC文件

由于spec文件是由spec语言编写的,请注意spec语言的语法。

#cd /usr/src/redhat/SPECS/

#cat < nginx.spec > EOC

  

Summary:  High Performance Web Server

  

Name:  nginx

  

Version:  1.3.9

  

Release:  el5

  

License:  GPL

  

Group:  Applications/Server

  

Source:  http://nginx.org/download/nginx-1.3.9.tar.gz

  

URL:  http://nginx.org/

  

Distribution:  Linux

  

Packager:  JingSheng <jingsheng1@staff.sina.com.cn>

  
  

%description

  

nginx  [engine x] is a HTTP and reverse proxy server

  

%prep

  

useradd  nginx -s /sbin/nologin

  

rm -rf  $RPM_BUILD_DIR/nginx-1.3.9

  

zcat  $RPM_SOURCE_DIR/nginx-1.3.9.tar.gz | tar -xvf -

  

%build

  

cd  $RPM_BUILD_DIR/nginx-1.3.9

  

./configure  --user=nginx --group=nginx --prefix=/usr/local/nginx/ --with-http_stub_status_module  --with-http_ssl_module

  

make

  

%install

  

cd  $RPM_BUILD_DIR/nginx-1.3.9

  

make  install

  

%preun

  

if [ -z  "`ps aux | grep nginx | grep -v grep`" ];then

  

killall  nginx >/dev/null

  

exit 0

  

fi

  

%files

  

/usr/local/nginx

  

#:以#开头是注释,rpm会忽略它。
Summary:简单描述软件。
Name :定义rpm的名称。
Version: 定义软件版本
Release: 发行版本
License: 定义许可证
Group: 软件分类
Source: 源码下载地址
URL: 源码相关网站
Distribution: 发行版系列
Packager: 打包人的信息

scription:软件详细描述,可多行
%prep :软件编译之前的处理,如解压。
%build :开始编译软件,如make
%install :开始安装软件,如make install
%files :指定哪些文件需要被打包,如/usr/local/nginx
%preun :定义卸载之前的动作,如杀掉进程。


5、开始RPM制作

在制作RPM包之前,需要安装必要的编译工具

#yum install -y gcc rpm-build pcre-devel

开始编译生成rpm包

# rpmbuild-bb nginx.spec


注意:如果安装生成报错,请将安装过的东东全部去除,再重新打包


# rpm –qpl *.rpm 查看rpm包含哪些

posted @ 2013-03-22 09:59 甜咖啡 阅读(583) | 评论 (0)编辑 收藏

最近一直在折腾linux,centos、redhat装了又装,到最后还是装了redhat。

以前多少接触过linux,但是都不深入(这次虽然也是皮毛,但是稍微知道了一些东东,现在就卖了),这次从零开始自己折腾linux,确实是被linux折腾了。linux跟windows确实有很多不同,有机会再继续介绍,这次先说一下使用Xmanager远程连接Redhat的经历。

Xmanager不多说了,是一款非常不错的管理工具。但是,如果要让Xmanager远程连接redhat,其实远程连接,主要还是想要做成跟windows的远程桌面一样的东西,图形界面方便啦!

只是这次配置Xmanager相当痛苦,按照网上各种资料对redhat进行配置,然后不停的reboot,但是,xmanager总是连不上。

这其中,修改的文件包括:

/usr/share/gdm/defaults.conf这个gdm的配置文件,主要是以下内容:

Enable=true

DisplaysPerHost=10

Port=177

还有/etc/inittab文件,主要是首先默认级别为5,这个文件貌似在安装的时候就已经默认为5了。id:5:initdefault:

然后最后一行的“x:5:respawn:/etc/X11/prefdm -nodaemon”调整为:

x:5:respawn:/usr/sbin/gdm

当然,还得改!

依然是/usr/share/gdm/defaults.conf,在[security]中调整以下的值:

AllowRoot=true

AllowRemoteRoot=true

AllowRemoteAutoLogin=true

如果开着防火墙,那还是要放开177端口,我暂时把防火墙关了。

reboot!reboot总是很重要的!

如果上述调整完成之后,依然无法连接,我就是这样的情况,连接不上啊!!!!

又随便找了几篇文章,也许跟hosts文件有关系哦!

打开/etc/hosts文件一看,空的!!!

在其中加上127.0.0.1 localhost,reboot,我总是喜欢reboot,这样比较干净!比较彻底!

在Xstart中配置好相应的参数,一定要在Commond中选择“GNOME”,这样再Run,Xbrowser将久违的redhat桌面打开了!

posted @ 2013-02-28 20:06 甜咖啡 阅读(307) | 评论 (0)编辑 收藏

今天开发的同事,和我说

SecureCRT连接到IDC服务器,老超时断开,影响工作了

研究了下。

因为客户端与服务器之间存在路由器,防火墙以及为了本身的安全性,在超过特定的时间后就会把空闲连接断开。或者是服务器端设置了断开空闲连接。
解决方法:
既然会断开超时的空闲连接,那么我们就应该让客户端与服务器之间的连接“忙”起来,方法有两个:
从服务器方面入手:
修改/etc/ssh/sshd_config配置文件 ClientAliveInterval 300(默认为0)
这个参数的是意思是每5分钟,服务器向客户端发一个消息,用于保持连接
service sshd reload 生效
从客户端入手:
上面是配置需要服务器权限,如果没有服务器权限则可以使用这个方法,其思想是:客户端向服务器发一个消息,用于保持连接
secureCRT在选项 终端 反空闲 中设置每隔多少秒发送一个字符串,或者是NO-OP协议包
putty:putty -> Connection -> Seconds between keepalives ( 0 to turn off ), 默认为0, 改为300


CentOS 5远程SSH连接超时设定
操作系统:CentOS 5.6    SSH版本:OpenSSH_4.3p2
网上很多文章都说,远程SSH连接的超时设定是在/etc/ssh/sshd_config里,使用ClientAliveInterval和ClientAliveCountMax选项,我原来也这么认为的,不过一直没配置过超时。
今天配置了一下,发现这个是不对的,正确的配置是在/etc/profile里,使用TMOUT选项进行控制,如TMOUT=300,设定超时间隔为300秒。
posted @ 2013-02-28 20:04 甜咖啡 阅读(4528) | 评论 (0)编辑 收藏

导航

<2013年2月>
272829303112
3456789
10111213141516
17181920212223
242526272812
3456789

统计

常用链接

留言簿(1)

我参与的团队

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜