반응형

윈도우7 에서는 파티션 재설정 기능을 지원해 준다. 

컴퓨터에서 마우스 오른쪽 메뉴 관리로 들어 가서 

아래 이미지와 같이 저장소 > 디스크 관리 에서 

볼륨 축소를 선택하면 기존 파티션 용량을 변경 할 수 있다. 


반응형
반응형

오라클 접속 가능한 세션의 수 변경

http://db.necoaki.net/144

오라클 안에는 세션에 관련된 두개의 파라미터 값이 있다.

show parameter processes


SESSIONS = (PROCESSES * 1.1) + 5

 ex> 150 *1.1+5= 170


현재 DB의 최대 접속 가능 세션은 170개 이다.

spfile을 사용 하는 경우 아래의 명령으로 변경 가능하다. (DB 재구동 후 반영)


SQL> alter system set PROCESSES = 300 scope=spfile;

pfile을 사용하는 경우 파라미터 파일을 직접 열어서 *.processes= 값을 변경해주고 재구동 해주면 된다.



반응형
반응형

W(와트) = V(볼트) * A(암페어)

전압V(볼트) = 전류(암페어) * 저항

1노트 = 0.5144 m/s

10km/h = 10000m/3600 = 2.77778 (약 5노트)

5노트 정도에 발전가능 여부 

반응형
반응형

산술적복잡성(Arithmatic complexity)이란 번호조합에서 나타난 어떤 2쌍의 번호의 양수 차들의 개수에서 (r-1)를 뺀 값입니다. 약어로 AC라 하는데 예를 들면 24,25,26,30,31,32는 일곱 개의 양수 차 즉, 1(25-24, 26-25, 31-30, 32-31) 2(26-24, 32-30) 6(30-24, 31-25, 32-26) 7(31-24,32-25) 8(32-24) 5(30-25) 4(30-26) 5(31-26)이 있고 r=6(뽑는 번호개수)이므로 AC는 2입니다. 또한 AC의 최소값은 0이고, 최대값은 10이 됩니다. 

이는 미국의 플로리다주 200회 당첨번호를 분석한 결과, 이 중 195개가 적어도 6이상의 AC값을 갖고 4나 5의 AC값을 갖는 번호조합은 낮은 당첨금을 기록했다는 분석이 근거를 가집니다. 

이는 여러분들이 잘 알고 있는 특정한 숫자놀이에 의한 번호조합(등차수열, 등비수열, 피보나치 수열, 끝자리를 같은 숫자로 전부 밀기 등등)이 어리석은 선택이라는 것을 뒷받침해주는 분석이라고 할 수 있겠습니다. 여러분이 고른 번호 6개를 가지고 (수고스럽겠지만!!) AC를 계산해보세요! 그래서 8이상이 되지 못하는 조합들은 과감히 버리시기 바랍니다. 



예1> 대상숫자가 01 02 03 04 05 06 이 라면... 중복되지 않게 두 개씩 묶어주면요... 


(01 02) (01 03) (01 04) (01 05) (01 06) 

(02 03) (02 04) (02 05) (02 06) 

(03 04) (03 05) (03 06) 

(04 05) (04 06) 

(05 06) ...이렇게 15개가 되구여... 물론 반대로 묶어도 됩니다. 뒤 쪽 부터 묶어서 

(큰 수, 작은 수)로 하면 보기는 더 좋겠지여... 그러나 그건 중요한 건 아니구요... 

단, 중복된 게 없는지, 빠뜨린 건 없는지, 모두 15개 인지를 확인해 보시구여... 


... 다음, 각각 큰 수에서 작은 수를 빼보면 차 값이 다음과 같이 됩니다. 

이때... "차 값"이라 함은 자동차 값도 아니고 커피 값도 아니고... 그냥... 

큰 수에서 작은 수 를 빼고 남은 수를 말하는 거 겠지염~^^ 


(1) (2) (3) (4) (5) 

(1) (2) (3) (4) 

(1) (2) (3) 

(1) (2) 

(1) ...... 그 다음... 같은 값끼리 묶어주세여. 


차 값 (1)은 5개가 한묶음 

차 값 (2)는 4개가 한묶음 

차 값 (3)은 3개가 한묶음 

차 값 (4)는 2개가 한묶음 

차 값 (5)는 1개가 한묶음...... 이렇게 총5묶음이 됩니다.^^ 


그러면 5-(r-1) 이때 r=6이므로, 5-5=0 ∴AC = 0 (최소값이 되었네요.) 



예2> 대상숫자가 32차 당첨번호 06 14 19 25 34 44 라면 


(06 14) (06 19) (06 25) (06 34) (06 44) 

(14 19) (14 25) (14 34) (14 44) 

(19 25) (19 34) (19 44) 

(25 34) (25 44) 

(34 44) ..... 이렇게 되구요, 각각 큰 수에서 작은 수를 빼보면 


(8) (13) (19) (28) (38) 

(5) (11) (20) (30) 

(6) (15) (25) 

(9) (19) 

(10) ... 이렇게 됩니다. 그 다음... 같은 값끼리 묶어보면요... 


... 작은 수 순서로 나열할께요.^^ 


(5) (6) (8) (9) (10) (11) (13) (15) (19) (20) (25) (28) (30) (38) 이렇게 14개 묶음이군요. 

차 값 (19)만 2개가 한 묶음이고 나머진 모두 1개씩 한 묶음으로 총14묶음이 되지요? 


그러면 14-(r-1) 이때 r=6이므로, 14-5=9 ∴AC = 9 (32차는 AC값이 9 였군요.) 


그리고 AC값의 최소값은 0, 최대값은 10인데요... 

그건 묶음 갯수가 최소5개∼최대15개(순서쌍갯수)로 묶이기 때문입니다. 


참고로, 45개 숫자를 6개씩 묶었을 때 완전조합갯수인 8,145,060 중에서 

AC값 7~10에 해당되는 조합갯수는 6,943,080개로 85.2%를 차지한다고 하는군요. 

당연히 이 범위의 조합 중에서 당첨될 확률이 높겠지요. 











로또지 

참고로 전체 조합(8,145,060)의 AC값 분류 표입니다. 

AC -- 출현횟수 -- 백분율(전체) 

0 --------- 180 ---- 0.00% 

1 --------- 858 ---- 0.01% 

2 ------- 7,873 ---- 0.10% 

3 ------ 26,292 ---- 0.32% 

4 ----- 103,461 ---- 1.27% 

5 ----- 239,998 ---- 2.95% 

6 ----- 823,318 --- 10.11% 

7 --- 1,148,170 --- 14.10% 

8 --- 2,675,680 --- 32.85% 

9 --- 1,609,174 --- 19.76% 

10 -- 1,510,056 --- 18.54% 

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

계 --- 8,145,060 -- 100.00% 



반응형
반응형

 scp rexec ssh (ssh원격실행)


 1.   1번 서버에 접속 !

 2.   ~ $]   ssh   아이디@111.11.11.1  "ls  -al"


 결과   :  111.11.11.1 서버의 아이디의 기본디렉토리 위치에서 "ls -al" 의 결과를 현재1번섭에서 볼 수 있다


 같은 방법으로 파일도 가져올 수 있다..


 ~$]  scp  아이디@111.11.11.1:/디렉토리1/디렉토리2/exam.txt    .  << 현재위치에 111.11.11.1 서버의 exam.txt  파일을 가져옴(원본은 남아있음)


######  ssh 비밀번호 없이 서버이동 하기  (2012-04-26 업데잇;)


비밀번호없이 리눅스에서 한서버에서 다른서버로 이동하는 방법입니다.


   a번서버 ----->  2번 서버


a번 서버에서 입력 : 

~]   ssh-keygen -t rsa      <엔터>

      Enter file in which to save the key (/home/user1/.ssh/id_rsa): <엔터>

      Enter passphrase (empty for no passphrase):                         <엔터>

      Enter same passphrase again:                                              <엔터>


위의 과정을 하고나면   .ssh/   아래에   /id_rsa.pub    <--    이녀석이 생성되어 있음


생성된  id_rsa.pub 파일을 암호없이 이동할  2번서버의   .ssh/폴더에 넣고   파일명을  authorized_keys 로 수정


끝 ㅡㅡ;


이제 a  서버에서  2번 서버로 이동할때 비밀번호따윈 묻지 않는다.. 생성되었던 파일을 다른 서버에다가도 똑같이 적용하면 여러서버에서도 


비밀번호를 입력하지 않아도 된다.

반응형
반응형

ssh를 사용하여 원격 컴퓨터의 shell script를 실행하는 방법?

원격 컴퓨터에서 shell script를 실행하는 방법을 저에게 제안해주실 수 있나요?


A 컴퓨터와 B컴퓨터 모두에서 설정된 ssh가 있습니다. 저의 스크립트는 B컴퓨터에서 수행할 내용이 A컴퓨터에 있습니다.


----


9개의 답변 중 1개의 답변만 추려냄.


만약 A 컴퓨터가 Windows box라면 -m 파라미터와 함께 Plink(의 일부)를 사용하실 수 있고 원격 서버에 로컬(내 컴퓨터의) 스크립트를 실행할 것입니다.


plink root@MachineB -m local_script.sh

만약 A컴퓨터가 유닉스를 기반으로한 시스템이면 다음처럼 사용할 수 있습니다.

ssh root@MachineB 'bash -s' < local_script.sh

이를 수행하기 위해 스크립트를 원격 컴퓨터로 복사하실 필요가 없습니다.


----


(번역과 관련없는) 추가내용


ssh 뿐만이 아니라 rsh도 똑같은 방법으로 실행이 가능합니다.


ssh root@MachineB 'bash -s' < local_script.sh


ssh  계정명@원격호스트(IP)  수행할명령어 < 로컬_스크립트.sh


만약 원격 컴퓨터의 프로그램이 수행이 되지 않는다면 


로컬_스크립트.sh에서 export LD_LIBRARY_PATH를 원격컴퓨터에 맞게 설정하셔야 됩니다.


예) export LD_LIBRARY_PATH=/usr/lib:/usr/local/lib

출처 : http://stackoverflow.com/questions/305035/how-to-use-ssh-to-run-shell-script-on-a-remote-machine

반응형
반응형

import java.io.BufferedReader;


import java.io.InputStream;


import java.io.InputStreamReader;


import java.util.ArrayList;


import java.util.List;


import java.util.StringTokenizer;



import ch.ethz.ssh2.Connection;


import ch.ethz.ssh2.Session;


import ch.ethz.ssh2.StreamGobbler;




import com.javasrc.jolt.component.linux.model.FileSystem;




/**


 * SSHAgent는 Java 응용 프로그램이 SSH를 통해 원격 서버에서 명령을 실행할 수 있도록


 * 한다.


 * @author madnix


 *


 */


public class SSHAgent {


    


    /**


     * 서버에 연결하는 호스트 이름 (or IP 주소)


     */


    private String hostname;


    


    /**


     * 해당 서버에 있는 사용자 이름


     */


    private String username;


    


    /**


     * 해당 서버에 있는 사용자의 암호


     */


    private String password;


    


    /**


     * 서버 연결 커넥션 객체


     */


    private Connection connection;


    


    /**


     * SSHAgent 객체 생성


     * 


     * @param hostname


     * @param username


     * @param password


     */


    public SSHAgent( String hostname, String username, String password )


    {


        this.hostname = hostname;


        this.username = username;


        this.password = password;


    }


    


    /**


     * 서버에 연결


     * 


     * @return        연결 성공 시 true, 그 외에는 false


     */


    public boolean connect() throws SSHException


    {


        try


        {


            // 서버 연결 객체 생성


            connection = new Connection( hostname );


            connection.connect();


            


            // 인증


            boolean result = connection.authenticateWithPassword( username,    


                                   password );


            System.out.println( "연결 성공 여부 : " + result );


            return result;


        }


        catch( Exception e )


        {


            throw new SSHException( "호스트에 연결하는 동안 예외가 발생하였습니다 : 


                                  " + hostname + ", Exception=" + e.getMessage(), e ); 


        }


    }


    


    /**


     * 지정된 명령을 실행하고 서버에서 응답을 반환한다.


     *  


     * @param command        command 실행


     * @return               서버에서 반환하는 응답 (or null)


     */


    public String executeCommand( String command ) throws SSHException 


    {


        try


        {


            // 세션 생성


            Session session = connection.openSession();


            


            // command 실행


            session.execCommand( command );


            


            // 결과 확인


            StringBuilder sb = new StringBuilder();


            InputStream stdout = new StreamGobbler( session.getStdout() );


            BufferedReader br = new BufferedReader(new 


                                             InputStreamReader(stdout));


            String line = br.readLine();


            while( line != null )


            {


                sb.append( line + "\n" );


                line = br.readLine();


            }




            // DEBUG : exit 코드 덤프


            System.out.println( "ExitCode : " + session.getExitStatus() );




            // 세션 종료


            session.close();


            


            // 호출자에게 결과를 반환


            return sb.toString();


        }


        catch( Exception e )


        {


            throw new SSHException( "다음 명령을 실행하는 동안 예외가 발생하였습니다. 


                               : " + command + ". Exception = " + e.getMessage(), e );


        }


    }




    /**


     * 서버에서 로그 아웃


     * @throws SSHException


     */


    public void logout() throws SSHException


    {


        try


        {


            connection.close();


        }


        catch( Exception e )


        {


            throw new SSHException( "SSH 연결을 종료하는 동안 예외가 발생했습니다. : 


                                               " + e.getMessage(), e );


        }


    }


    


    /**


     * 기본 인증이 완료되면 true를 반환하고 그렇지 않을 경우 false


     * @return


     */


    public boolean isAuthenticationComplete()


    {


        return connection.isAuthenticationComplete();


    }


    


    public static void main( String[] args ) 


    {


        try


        {


            SSHAgent sshAgent = new SSHAgent( "192.168.2.3", "username", 


                                                               "mypassword" );


            if( sshAgent.connect() ) 


            {


                String diskInfo = sshAgent.executeCommand( "df -k" );


                System.out.println( "디스크 정보 : " + diskInfo );


                


                String processInfo = sshAgent.executeCommand( "top -b -n 1" );


                System.out.println( "프로세스 정보 : " + processInfo );


                


                // 로그아웃


                sshAgent.logout();


            }


        }


        catch( SSHException e )


        {


            e.printStackTrace();


        }


    }


}


출처: http://madnix.tistory.com/entry/Java에서-SSH를-통해-리눅스-서버에-명령을-전달하는-코드

반응형
반응형

간만해 충만해지는 글을 읽은 것 같다. 

신을 다룬 소재로는 참신한 아이디어 였다. 본래 상상하거나 생각해왔던 

신에 대한 생각을 그대로 전달하는 내용이 

마음에 많이 와 닿았다.

요즘 점점 휴머니즘에 감동하는 내자신을 느끼면서

오래간만에 몰입하여 읽은 책이다.


눈시울이 붉어 지기도 찌릿한 느낌이 척추를 흐르기도 하고

캐릭터 하나하나 살아 있는 느낌...


이쁜 번개폭풍~ 


조물주와 피조물 관계 정립은 참 맘에 드는 작품이다. 


모든 세상의 근원은 의지 이며 

       선과 악도 의지 안에 속하고 의를 모아 뜻을 이룰 수 있다


포기는 의지를 놓고 무로 돌아가는 행위이다.


추천할 만한 책 


월드 메이커 10권 - 취룡 작품

반응형
반응형

[JEUS_6_deployment.pdf 발췌]


Ant Task를 이용한 Deploy


Jeus에서는 Ant를 사용하여 Java EE 애플리케이션 디플로이를 쉽게 할 수 있다. 

그러기 위해서는 Ant를 통해 실행해야 할 task를 기술한 build 파일을 작성해야 한다. 


build.xml


build.xml은 Ant Task를 기술한 XML 형식의 Ant Build 파일이다 


Build 파일의 중요한 부분은 <project> 요소에 포함되어 있으며, 일반적으로 1개의 프로젝트에 여러 개의 <target>이 존재한다. <target>은 실제 실행해야 하는 Ant Task 작업을 정의한다. 프로젝트의 속성들은 <project> 하위에 정의하며, ${property-name}의 표현식을 통해 프로젝트 내에서 속성 값들을 사용할 수 있다. 

JEUS Ant Task에 정의된 작업은 다음과 같다. 


● deploy

애플리케이션을 디플로이한다. deploy task는 지정한 Java EE 애플리케이션을 JEUS 서버에 배치한다.



참고

deploy Task 파라미터에 대한 자세한 내용은 “JEUS Reference Book”의 “5.4. Deployment Ant Task” 를 참고한다.



● modulecommand

디플로이 외 다른 administrative operation들(start, stop, undeploy)을 실행한다.

– start : 애플리케이션 시작하기

– stop : 애플리케이션 정지하기

– undeploy : 애플리케이션 제거하기



참고

modulecommand Task의 파라미터에 대한 자세한 내용은 “JEUS Reference Book”의 “5.4. Deployment Ant Task”를 참고한다.


나중에 정리


추가 정리 사이트 주소

https://technet.tmaxsoft.com/upload/download/online/jeus/pver-20140827-000001/reference-book/ch05.html

반응형
반응형

-- JOB 조회

select * from user_jobs;


-- JOB 조회, dba_jobs 테이블에서 정보 확인

select job, what, failures, total_time, last_date, last_sec, next_date, next_sec, interval

from dba_jobs order by next_date;


-- JOB 조회 dba_jobs 테블에서 확인

select job, what, last_date, next_date, interval

from dba_jobs order by next_date;


-- JOB 등록

EXECUTE dbms_job.submit( JOBNO, 'USER_NAME.PROCEDURE_NAME;', TRUNC(SYSDATE)+23/24, 'TRUNC(SYSDATE+1)+23/24', FALSE);

commit;


--> ex>

EXECUTE dbms_job.submit(

JOB번호, JOB내용, JOB 실행시간, JOB실행되는간격, FALSE)


JOB내용 : ' ' 으로 감싸고, USER를 반드시 확인 할것

             운영은 US_DBA, 개발을 각 USER


-- JOB 정지

EXECUTE dbms_job.broken(JOB번호, FALSE);

commit;


--> ex> EXECUTE dbms_job.broken(143, FALSE);


-- JOB 삭제

EXECUTE dbms_job.REMOVE(JOB번호);



-- JOB 변경 NEXT_DATE

EXECUTE DBMS_JOB.NEXT_DATE(4, TRUNC(SYSDATE)+1+1/24/60);


-- JOB 실행

EXECUTE DBMS_JOB.RUN(JOB번호);

commit;





반응형
반응형

오라클 테이블 권한 주기(oracle table grant)


1. 테이블 조회 권한 주기 [SELECT]


GRANT SELECT ON 권한 줄 테이블명 TO 권한 받을 사용자계정;


2. 테이블 입력이나 수정 삭제의 권한을 부여 [INSERT, UPDATE, DELETE]


GRANT INSERT, UPDATE, DELETE ON 권한줄 테이블명 TO 권한받을 사용자 계정;


3. FUNCTION 실행 권한 주기 [execute]


GRANT EXECUTE ON 권한 줄 함수명 TO 권한 받을 사용자계정


* SYNONM 생성


내 계정에서 다른 계정의 특정 테이브을 내 계정에서 볼때 Alias(별칭)을 정해서

그 테이블을 참조할때 사용한다.

(타 계정 테이블을 참조 또는 변경하기 위해서 권한이 부여 되면 자신의 계정에서 

 SYNONM을 생성하면 된다. )


CREATE SYNONM 시노임 명 FOR 계정명.테이블명;


[예제] 


본인계정 : MY_USER

타 계정 : OTHER_USER

테이블명 : OTHER_TABLE


SELECT * FROM OTHER_USER.OTHER_TABLE;


CREATE SYNONM OTHER FOR OTHER_USER.OTHER_TABLE;


SELECT * FROM OTHER;


결과는 같은 값이 나온다. 





반응형
반응형

SYNONYM은 오라클 객체(테이블,뷰,시퀀스,프로시저)에 대한 Alias를 말한다.

SYNONYM은 실질적으로 그차제가 Object가 아니라 Object에 대한 직접적인 참조 


- 실무에서 다른 유저의 객체를 참고할 경우 SYNONYM을 생성해서 사용을 하면

  추후에 참고하고 있는 오프젝트가 이름을 바꾸거나 이동을 할 경우 객체를 사용하는

  SQL 구문을 모두 다시 고칠 필요가 없이 SYNONYM 만 다시 정의 하면 된다.

- 긴 이름을 단순하게, 짧게 만들어 쓸 수 있다. 

- 객체를 참조하는 사용자의 오브젝트를 감출 수 있기 때문에 보안 유지가 된다. 

  SYNONYM을 사용하는 유저는 참조하고 있는 객체에 대한 사용자의 오브젝트 

  소유자,이름,서버이름을 몰라도 SYNONYM이름만 알면 사용할 수 있다. 


SYNONYM 사용하는 경우

#오브젝트의 실제 이름과 소유자 그리고 위치를 감추고 DB보안을 개선하는데 사용

#오브젝트에 Public Access를 제공

#Remote DB의 table,view, program Init를 위해 투명성 제공

#DB SQL문 단순화


SYNONYM 두가지 종류가 있다.

- Private SYNONYM

  특정사용사만 이용할 수있다.

- Publice SYNONYM

  DB에 있는 모든 사용자가 공유 하여 사용할 수 있다. 



SYNONYM 구문


CREATE [PUBLIC] SYNONYM synonm_name

FOR object_name


- Public : 모든 사용자가 접근 가능한 SYNONYM을 생성

             Publice SYNONYM 은 DBA만 생성할 수 있다.



% scott USER의 emp 테이블을 test USER가 사용하는 예제

1. 먼저 scott/tiger USER로 접속해서 test USER에게 emp 테이블의 조작할 권한을 부여한다


GRANT ALL ON emp TO test;

권한이 부여 되었습니다. 


test user에 대하여 scott의 emp테이블을 조작할 수 있는 권한을 부여한다.

권한이 있어야 select 하거나 update, insert 할 수 있다.


2. test USER로 접속해 동의어를 생성한다 


connect test/test


GREATE SYNONYM scott_emp FOR scott.emp;

시노임이 생성 됨


scott USER가 소유하고 있는 emp테이블에 대해 scott_emp라는 일반 시노임을 생성

scott 사용자의 emp 테이블을 test 사용자가 scott_emp라는 동의러로 사용한다.


-- SYNONYM을 이용한 쿼리

select empno ,ename from scott_emp;


-- 일반 테이블 쿼리

select empno ,ename from scott.emp;


두 쿼리 결과는 같다.


동의어 삭제


DROP SYNONM scott_emp;

시노임이 삭제 되었습니다. 


select empno ,ename from scott_emp;

라인 1에 오류:

ORA-00942: 테이블 또는 뷰가 존재 하지 않는다. 


http://jhbench.tistory.com/200 블로그 참조

반응형
반응형

telnet 으로 포트 통신 상태 확인


1.ping test를 한다.
[svr:usr] ping 172.0.0.1
응답없으면(ping이 되지 않으면) firewall에 등록이 되지 않은 것이다.
정상적 결과 172.0.0.1  is alive

2.1.telnet ip port 로 확인한다. 
[svr:usr] telnet 172.0.0.1 9999 
Trying 172.0.0.1... 
계속 대기 중이면 방화벽 오픈이 안된 것이다.

2.2 
[svr:usr] telnet 172.0.0.1 9999 
Trying 172.0.0.1... 
telnet: Unable to connect to remote host: Connection refused 
바로 연결거부가 발생하면 방화벽 오픈은 되었으나 프로세스가 안 떠있는 것이다. 
(포트를 열고 대기하고 있지 않은 상태) 

2.3 
[svr:usr] telnet 172.0.0.1 9999 
Trying 172.0.0.1...
Connected to 172.0.0.1
Escape character is '^]'.
방화벽 오픈이 정상적으로 되었고 프로세스가 올라가 있는 것이다.
(포트를 열고 대기하고 있는 상태)
=> 이상태가 되야 통신테스트를 할 수 있다

3. 라우팅 테이블 확인하기
[svr:usr] netstat -rn | grep 172.0.0.1
172.0.0.1         172.0.0.1            UG       1 186064
여기에 값이 있으면 올바로 설정된 것임.


http://anti1346.egloos.com/v/4565634 펌...

반응형
반응형

리눅스 표준 입출력 기호 쉘 스크립트 사용 시 (shell Script -input,output)

http://webdir.tistory.com/256 출처

리눅스 표준 입출력 리다이렉션

쉘에서 명령의 결과를 모니터로 출력하지 않고 파일로 저장할 수 있는데 이때 리다이렉션을 사용한다. 리다이렉션을 사용하여 출력과 입력의 방향을 지정해 줄 수 있다.


기호 방향                 의미

> 표준 출력         명령 > 파일 : 명령의 결과를 파일로 저장

>> 표준 출력(추가) 명령 >> 파일 : 명령의 결과를 기존 파일 데이터에 추가

< 표준 입력         명령 < 파일 : 파일의 데이터를 명령에 입력

기타 리다이렉션 기호의 쓰임은 아래와 같다.


명령 >& 파일명 : 명령이 실행된 표준 출력의 결과와 에러를 파일로 출력

명령 >>& 파일명 : 명령이 실행된 표준 출력의 결과와 에러를 파일로 덧붙여 출력

명령 >! 파일명 : 파일의 존재 유무와 상관없이 생성하고 명령이 실행된 표준 출력의 결과를 파일로 출력

명령 >&! 파일명 : 파일의 존재 유무와 상관없이 생성하고 명령이 실행된 표준 출력의 결과와 에러를 파일로 출력

명령 >>! 파일명 : 파일의 존재 유무와 상관없이 생성하고 파일에 덧붙여 출력

명령 >>&! 파일명 : 파일의 존재 유무와 상관없이 생성하고 명령이 실행된 표준 출력의 결과와 에러를 파일에 덧붙여 출력

명령A | 명령B : 명령A의 출력을 명령B 입력으로 사용하여 실행

명령A |& 명령B : 명령A의 출력과 에러를 명령 B의 입력으로 사용하여 실행


파일 디스크립터

표준 입력과 표준 출력 그리고 표준 에러를 쉘이나 시스템 프로그래밍에서는 숫자로도 표현할 수 있는데 이를 파일 디스크립터라고 한다.


구분         장치         파일 디스크립터

표준 입력 키보드 0

표준 출력 모니터 1

표준 에러 모니터 2

/dev/null 2>&1


/dev/null은 0 값을 갖는 null 파일이고 표준 에러(2)를 표준 출력(1)으로 리다이렉션 하라는 의미이다.

반응형
반응형

[자바] 설치된 자바(java) bit 확인 방법 32bit/64bit

어떤 상황에 어떤 버전의 자바가 설치 되어 있는지 확인 해야 하는 경우가 

발생한다. 

또한 룰 등이 바뀌면서 java 설치 등을 서버 담당자가 하는 경우가 빈번히 일어

나기 때문에 확인할 방법이 필요해서 적는다. 


64bit 자바 버전을 확인하는 명령어

1. bin폴더 java.exe 파일이 있는 위치로 이동한다. (윈도우 경우)

  리눅스의 경우에는 which java 명령을 사용하거나 하면 찾을 수 있다. 

2. 버전 확인용 아래 명령을 실행 한다.

   java -d64 -version (윈도우/리눅스 공통)

 실행 후 64 비트 인경우 다음과 같은 메세지가 나온다. 

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

 java version "1.7.0_75" (버전숫자는 다르게 나올수 있다.)

 OpenJDK Runtime Environment (IcedTea6 1.10.4) (rhel-1.24.1.10.4.el5-x86_64)

 OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)

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

위와 같이 나올경우 리눅스에서 64비트를 나타낸다. 

32비트 인경우는 다음과 같은 메세지가 나온다. 

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

Error: This Java instance does not support a 64-bit JVM.

Please install the desired version.

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

에러 메세지가 나올경우 32비트로 설치 되어 있는것이다. 



반응형

+ Recent posts