/dev/VolGroup00/LogVol00 contains a file system with errors, check forced.
강제 디스크 검사중 아래와 같이 발생하는 오류
   UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY

갑작스런 전원이 나가는 등의 사고로 인하여 파일시스템이 언마운트 되지 않은 상황에서
 OS가 죽어버리면 발생하는 부팅 에러

방안 1]
1. (Repair filesystem) 1#  fsck
    filesystem을 체크하다 질문이 나오면 y 를 선택 한다.
   (Repair filesystem) 1#  fsck -y

2. 모든 검사가 끝나면 시스템을 리부팅한.

방안 2]
1. "Give root password for maintenance" 메세지에 root 암호를 입력하여 Repair filesystem 모드로 진입
2. fdisk -l 을 실행하여 파티션(파일시스템)의 정보를 확인
3. e2fsck  -a /dev/hda1 ( -a option은 물어보지 않고 진행시키기 위해)
   e2fsck  -a /dev/hda2.. 등으로 fdisk -l에서 보여준 모든 파티션을 점검..
   단, swap 으로 되있는 파티션은 점검할 필요가 없으며, 혹 님의 파티션이 ext3 타입이면
   위 e2fsck /dev/hda1 을 다음으로  대신 합니다. e2fsck -j ext3 /dev/hda1
4. 모든 검사가 끝나면 시스템을 리부팅한다.


'OS > Linux' 카테고리의 다른 글

X매니저 사용법  (0) 2017.12.28
SVN(subversion) 설치방법 ~ eclipse를 통한 접속테스트 방법  (0) 2017.12.14
os별 libarary path 설정  (0) 2017.11.16
리눅스 명령어  (0) 2017.11.10
리눅스 자바 버전 변경하기  (0) 2017.11.10
DISPLAY=IP:0.0
export DISPLAY

echo $DISPLAY


프로젝트 형상관리를 위한
SVN(subversion) 설치방법 ~ eclipse를 통한 접속테스트 방법
 
* 기존에 svn이 설치 되어 있다면 문제 발생할 수 있으니 기존 svn을 삭제 후 install을 해야함
 
1. 설치 및 저장소 지정
1.1 설치 명령어 실행
#yum –y install subversion
 
1.2 Repository 생성
#mkdir /home/mwSVN  -- 해당 경로가 루트 저장소
#cd /home/mwSVN
 
1.3 svn 접속 시 사용되는 저장소 지정
#svnadmin create --fs-type fsfs /home/mwSVN/[저장소명]
 
2. 접속권한 설정
2.1 svnserve.conf 파일 설정
#cd /home/mwSVN/[저장소 명] /conf
#vi svnserve.conf
해당 부분 주석제거.
### This file controls the configuration of the svnserve daemon, if you
### use it to allow access to this repository.  (If you only allow
### access through http: and/or file: URLs, then this file is
### irrelevant.)
 
### Visit http://subversion.tigris.org/ for more information.
 
[general]
### These options control access to the repository for unauthenticated
### and authenticated users.  Valid values are "write", "read",
### and "none".  The sample settings below are the defaults.
anon-access = read    --익명 사용자 읽기 여부
auth-access = write    --인증 사용자 쓰기 여부
### The password-db option controls the location of the password
### database file.  Unless you specify a path starting with a /,
### the file's location is relative to the directory containing
### this configuration file.
### If SASL is enabled (see below), this file will NOT be used.
### Uncomment the line below to use the default password file.
password-db = passwd   --실행 시 계정 목록 불러오기
### The authz-db option controls the location of the authorization
### rules for path-based access control.  Unless you specify a path
### starting with a /, the file's location is relative to the the
### directory containing this file.  If you don't specify an
### authz-db, no path-based access control is done.
### Uncomment the line below to use the default authorization file.
authz-db = authz  --실행 시 계정 권한 체크
### This option specifies the authentication realm of the repository.
### If two repositories have the same authentication realm, they should
### have the same password database, and vice versa.  The default realm
### is repository's uuid.
### realm = MW First Repository
 
[sasl]
### This option specifies whether you want to use the Cyrus SASL
### library for authentication. Default is false.
### This section will be ignored if svnserve is not built with Cyrus
 
 
2.2 svn 접속을 위한 계정 추가
#cd /home/mwSVN/[저장소 명] /conf
#vi passwd
### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.
 
[users]
# harry = harryssecret
# sally = sallyssecret
mkgil = mkgil0415  -- 아이디=패스워드
 
 계정추가는 passwd 파일을 설정하면 된다.
 
2.3 사용자 권한 지정
### This file is an example authorization file for svnserve.
### Its format is identical to that of mod_authz_svn authorization
### files.
### As shown below each section defines authorizations for the path and
### (optional) repository specified by the section name.
### The authorizations follow. An authorization line can refer to:
###  - a single user,
###  - a group of users defined in a special [groups] section,
###  - an alias defined in a special [aliases] section,
###  - all authenticated users, using the '$authenticated' token,
###  - only anonymous users, using the '$anonymous' token,
###  - anyone, using the '*' wildcard.
###
### A match can be inverted by prefixing the rule with '~'. Rules can
### grant read ('r') access, read-write ('rw') access, or no access
### ('').
 
[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
 
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
 
# [/foo/bar]
# harry = rw
# &joe = r
# * =
 
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
 
[/]
mkgil=rw
*=r
 
3. SVN 서버 실행
3.1 SVN 서버 동작 확인
#ps –ef | grep svnserver
 
3.2 SVN 서버 시작
#svnserve -d -r  /home/mwSVN/[저장소명]
 
3.3 SVN 서버 중지
# kill -9 [PID]
 
 
4. Eclipse – SVN 연동 방법
1. Eclipse 메뉴바 Help > Eclipse Marketplace 클릭
2. SVN 입력 > 검색 > INSTALL 버튼 클릭
 


3. 체크 > Next… > Next > … 설치 완료 > Eclipse 재시작
  


 
4. 이클립스 재 시작 후 뜨는 SVN Kit 설치
5. perspective 창 클릭
 


 
6. popup창에서 SVN Repository Explorinng 선택
7. New Repository Location 아이콘 클릭
 



 
8. URL 입력 후 passwd 파일에서 설정했던 ID, PWD 입력 > FINISH 클릭

à 소스 commit 결과
/home/mwSVN/[저장소명]/db/revs/0  경로에 소스가 형상관리 됨


5. 다중 저장소 설정 방법
1. 루트 저장소 생성
# mkdir /data/[루트 저장소 명]
 
2. 루트 저장소 아래에 개별 저장소 생성
(여러 프로젝트를 같은 디렉토리 레벨로 생성하여 관리하기 위함)
# svnadmin create –fs-type fsfs /data/svnrepo/[저장소명1]
# svnadmin create –fs-type fsfs /data/svnrepo/[저장소명2]
 
3. 각각의 저장소의 conf 디렉토리 및 설정파일 변경
각각의 저장소마다 셋팅값을 설정해야 한다는 번거로움이 있지만,
다른 셋팅값을 줌으로써 사용자를 달리 지정할 수 있다.
 
4. 루트저장소 명으로 서버 시작
# svnserve –d –r /data/[루트 저장소 명]
 
5. Eclipse에서 svn repository 추가
1) SVN Repository Exploring 에서  [저장소명1]의 repository location 생성

2) 그 다음 [저장소명2]부터는 Advanced로 생성해야 충돌을 막을 수 있다.





à [멀티 프로젝트 선택을 위한 옵션 설정] . 다음 부분을 참고했다.

  1. eclipse에서 프로젝트를 생성한다.
  2. commit 하고자 하는 프로젝트를 선택하고 오른쪽 마우스를 클릭한 후에 TEAM > Share Project 선택한다.
  3. commit 하고자 하는 SVN 저장소를 선택한다.
  4. 멀티 프로젝트 선택을 위한 옵션 설정
1.     Simple Mode에서 Advanced Mode 선택

2.     Use specified name 선택해서 프로젝트 이름을 입력
·        SVN상에 표기할 프로젝트 이름
3.     Project Repository Layout Use multiple projects layout with the specified root name 선택
·        최상위 SVN 저장소에서 구분을 해주는(폴더처럼) 이름을 넣어 준다.

4.     마지막으로 Use Subversion recommanded layout('trunk', 'branches' and 'tags') 선택한다.

·         부분을 선택해야지만 멀티 프로젝트별로 trunk / branches / tags 관리  있다.

 


'OS > Linux' 카테고리의 다른 글

[LINUX] CentOS 부팅시 오류 : UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY  (0) 2017.12.28
X매니저 사용법  (0) 2017.12.28
os별 libarary path 설정  (0) 2017.11.16
리눅스 명령어  (0) 2017.11.10
리눅스 자바 버전 변경하기  (0) 2017.11.10

aix

 export LIBPATH=패스:$LIBPATH


hp-ux

 export SHLIB_PATH=패스:$SHLIB_PATH


hp-ux ia64

 export LD_LIBRARY_PATH=패스:$LD_LIBRARY_PATH


linux

export LD_LIBRARY_PATH=패스:$LD_LIBRARY_PATH


solaris

export LD_LIBRARY_PATH=패스:$LD_LIBRARY_PATH 


참조 (http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r1/index.jsp?topic=/com.ibm.swg.im.iis.productization.iisinfsv.install.doc/topics/wsisinst_dsenv_file.html)

Table 1. Names of the library path environment variable, by operating system
Operating systemLibrary path environment variable
IBM AIX®LIBPATH
HP-UXSHLIB_PATH
HP-UX on Intel® Itanium®LD_LIBRARY_PATH
Linux®LD_LIBRARY_PATH
SolarisLD_LIBRARY_PATH




출처: http://extremeblue.tistory.com/15 [extremeblue's blues]

1) jar -xvf   압축파일


2) java -jar 실행시킬파일명.jar 

./bin파일



3) chmod

 chmod -R 777 /bin/su

/bin/su 폴더와 그 밑의 모든폴더와 파일에 사용자,그룹,다른사람 모두에게 읽기,쓰기,실행 권한을 준다.
 
chmod 707 /bin/su
/bin/su 폴더에 사용자(읽기,쓰기,실행), 그룹(권한없음), 다른사람(읽기,쓰기,실행) 권한을 준다.
 
chmod 755 /bin/su

4) tar

/bin/su 폴더에 사용자(읽기,쓰기,실행), 그룹(읽기,실행), 다른사람(읽기,실행) 권한을 준다.

tar -zxvf <파일명.tar.gz>
"tar"는 "tape archive"의 준말 또는 약자입니다. zip 같은 일반적인 압축 프로그램과 달리 tar 자체는 원래 압축을 전혀 하지 않습니다. 여러 개의 파일을 하나로 합치는 역할만 합니다. (물론 다시 풀면 원래의 여러 개의 파일이 다시 만들어집니다.) 그러나 tar 명령에 옵션을 주면 압축할 수도 있습니다. 여기서는 압축하지 않고 tar 명령 자체의 옵션만 설명합니다. (압축하기/압축풀기는 여기 참고:▶▶ tar.bz2 파일 압축풀기 명령어, tar.bz2 압축하기 방법; bzip2)

<tar 파일 만들기>


예를 들어 다음과 같은 명령을 주면, 현재 디렉토리에 있는 모든 ".txt" 확장자의 파일이, test.tar 라는 새 파일로 합쳐집니다. "-cvf" 라는 옵션을 주면 됩니다.

tar -cvf test.tar *.txt

다음과 같이 파일명을 직접 나열해 주어도 됩니다.
tar -cvf test.tar 111.txt 222.txt


<tar -cvf test.tar *>
이렇게 하면, 현재 디렉토리의 모든 파일과 하위디렉토리까지, test.tar 라는 새 파일로 묶습니다. 빈 디렉토리도 포함합니다. 다만 히든 파일은 안되더군요.


<tar 파일 풀기>


"-xvf" 라는 옵션을 사용하면, 묶어졌던 파일들이 원래대로 풀립니다.
tar -xvf test.tar
하드에 이미 존재하는 파일은 겹쳐쓰기가 됩니다.


<tar 파일 내용 보기 / 목록 출력>


"-tvf"라는 옵션을 주면, 파일을 풀지 않고 tar 파일의 내용만 화면에 출력됩니다.
tar -tvf test.tar


<tar 도움말 출력 옵션>


다음과 같이 "--help" 옵션을 붙입니다.

tar --help


1. 현재 자바 버전 확인
java -version
java version "1.4.2.21"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2.21-081211-23:19)
Java HotSpot(TM) Server VM (build 1.4.2 1.4.2.21-081212-01:21-PA_RISC2.0 PA2.0 (aCC_AP), mixed mode)

2. 자바 프로그램 위치 확인
#which java
/usr/bin/java

3. 자바 링크 경로 확인
#ls -l /usr/bin/java
lrwxr-xr-x   1 root       sys             21 Sep 23  2008 /usr/bin/java -> /opt/java1.4/bin/java

4. 기존 링크 끊어주고, 업그레이드 된 자바 버전으로 재링크
#unlink /usr/bin/java
#ls /usr/bin/java
/usr/bin/java not found
#ln -s /opt/java1.6/bin/java /usr/bin/java

5. 최종 확인
#ls -l /usr/bin/java
lrwxr-xr-x   1 root       sys             21 Sep 23  2008 /usr/bin/java -> /opt/java1.6/bin/java
#java -version

java version "1.6.0.03"




'OS > Linux' 카테고리의 다른 글

os별 libarary path 설정  (0) 2017.11.16
리눅스 명령어  (0) 2017.11.10
리눅스에서 java 컴파일 및 실행 하기  (0) 2016.12.29
LINUX BIN 설치방법  (0) 2016.12.27
리눅스 tail 명령어 [실시간으로 로그 보기]  (0) 2016.12.16
윈도우 10이 잘 돌아가다가도 어느 날 갑자기 시작 메뉴가 멈추는 사용자를 위한 팁이다.

돌아온 시작 메뉴는 아마도 많은 사용자가 반기는 기능일 것이다. 그러나 모든 PC에서 잘 돌아가는 것은 아니다. 시작 버튼을 클릭하거나 윈도우 키를 계속해서 눌러도 시작 메뉴가 나타나지 않는 오류가 보고되고 있다.

해결 방법은 3가지다.

1. 깨진 파일 복구
작업표시줄 검색창이 멀쩡하다면, ‘windows powershell’을 검색한다. 결과에 나타난 윈도우 파워 쉘을 오른 클릭한 후 ‘관리자 권한으로 실행’을 클릭한다.

그러나 검색창도 먹통이 됐다면 윈도우키+R을 누르고 ‘powershell’을 입력하자. 파워쉘 실행 창이 뜨면 작업표시줄에 나타난 파워쉘 아이콘을 오른클릭하고 ‘작업표시줄에 고정’을 클릭한다. 아이콘 위에 커서를 둔 채 시프트 키를 누른 상태로 컨트롤 키를 클릭하고, ‘관리자 권한으로 실행’ 메뉴를 다시 클릭한다.

파워쉘 창을 띄웠다면 sfc /scannow를 입력한다.

파워쉘에서는 윈도우 파일 중 깨진 것이 있는지 검사할 수 있고 수정할 수도 있다. 깨진 파일이 있지만 고칠 수 없을 경우 dism /online /cleanup-image /restorehealth를 입력한다. 복구가 어려운 깨진 파일을 교체할 수 있다.

2. 메트로 모던 앱 삭제 후 재설치
모던 앱을 재설치해도 마이크로소프트 스토어를 통해 설치한 메트로 모던 윈도우 10 앱만 영향을 받을 뿐이니 걱정하지 말자. 예전 윈도우 프로그램은 아무런 영향이 없다. 과정도 모두 자동화되어 있다.

관리자로 파워쉘을 열고 다음 명령어를 붙여 넣는다.
Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register “$($_.InstallLocation)\AppXManifest.xml”}
명령어가 제 역할을 다 하면 재부팅이 진행된다.

3. 재설치
그래도 시작 메뉴가 나타나지 않으면 윈도우 10을 처음부터 다시 설치해야 할지 모른다. 우선 최신 백업 버전을 만들어 놓자. 아니면 내 문서 폴더 등에 들어있는 자료를 외장 하드로 옮겨 놓는다. 꼭 필요하다기 보다는 안전을 위한 대비 작업이다.

윈도우+L 키를 눌러 윈도우에서 로그아웃한다. 다시 윈도우 로그인 화면이 나오면 아래 오른쪽 구석에서 전원 버튼을 찾고 재시작을 누른다. 이제 ‘리커버리’ 모드로 들어가 ‘리셋 PC’ > ‘파일 그대로 유지하기’를 선택한 후 재설치 과정을 따른다. editor@itworld.co.kr



http://www.itworld.co.kr/news/98766


상용 서비스가 되고 있는 상태에서 고객의 요구 사항으로 인하여 자바 데몬 형식의 프로그램을 개발해야 할 때가 있다.

이런 프로그램들은 대게 상용 리눅스 장비에 class 파일을 올린 후 java 명령어를 통해 프로그램을 실행하게 되는데 이것이 생각보다 어렵다.

예전에도 class 파일을 실행하기 위해 몇 번 삽질을 했었는데 어김없이 또 삽질을 하게 되었다.

사실 자바를 처음할 때 배우는 것들인데 이런 삽질을 하는 내 모습을 보면 쪽팔리기도 하다.

그래서 이참에 확실하게 정리를 하고자 한다.


두 가지 방법에 대해서 설명을 할 것이다.

첫 번째는 "패키지 선언되어 있는 java 파일 컴파일 후 실행하기"

두 번째는 "외부 jar 파일을 classpath에 추가한 후 컴파일하고 실행하기"


첫 번째의 경우는 JDK에서 기본적으로 제공하는 API인 src.zip(rt.jar)만을 사용하기 때문에 그닥 사용할 일이 별로 없지만 기본적인 사항이니 일단은 정리한다. (src.zip은 java 파일이 있고, rt.jar는 class파일이 존재)


1. 패키지 선언되어 있는 java 파일 컴파일 후 실행하기

  • javac -d . HelloWorld.java
    현재 디렉토리를 클래스 패스로 지정하고 컴파일 하게 되면 패키지 디렉토리가 생성이 되면서 HelloWorld.class 파일이 해당 디렉토리에 저장
     <- packagetest 디렉토리 안에 class 파일 존재
  • 그런 후 다음 명령어를 실행하면 정상적으로 java를 실행할 수 있다.
    java -cp . packagetest.HelloWorld

package packagetest;

 

public class HelloWorld { 

        public static void main(String[] args) {

               System.out.println("Hello World!");

        }

}


2. 외부 jar 파일을 classpath에 추가한 후 컴파일하고 실행하기

  • javac -d . -cp jackson-core-asl-1.8.5.jar:jackson-mapper-asl-1.8.5.jar HelloWorldJson.java
    컴파일 단계 시 JSON 라이브러리를 필요로 하기 때문에 클래스 패스에 jar를 추가해 줘야 한다.
  • java -cp jackson-core-asl-1.8.5.jar:jackson-mapper-asl-1.8.5.jar:. packagetest.json.HelloWorldJson
    컴파일 단계와 동일하게 JSON 라이브러리를 클래스 패스에 추가
  • java -cp ./*:. packagetest.json.HelloWorldJson
    외부 jar 파일을 classpath에 많이 추가해야 하는 경우가 발생하면 * 를 통해서 간단하게 해결할 수 있다.

package packagetest.json;

 

import java.io.IOException; 

import org.codehaus.jackson.JsonGenerationException;

import org.codehaus.jackson.map.JsonMappingException;

import org.codehaus.jackson.map.ObjectMapper;

 

public class HelloWorldJson {

 

        public static void main(String[] args) throws JsonGenerationException, JsonMappingException, IOException {

               System.out.println("Hello World!");

 

               ObjectMapper mapper = new ObjectMapper();

               String jsonData = mapper.writeValueAsString("kyuTest");

               System.out.println(jsonData);

        }

}


여기까지 두 가지 방법에 대해서 알아봤다.

헌데 classpath가 뭔지 그리고 점(.) 또는 콜론(:) 과 같은 기호는 어떤 의미를 부여하는 지에 대해서 알아보자.


자바 런타임으로 class 파일을 실행하고자 할 때에는 class 파일을 찾을 수 있어야 한다.

그래서 class 파일을 찾을 때 classpath에 지정된 경로를 사용한다. 이때 classpath로 지정 가능한 유형은 다음과 같이 세 가지가 있다.

디렉토리 유형 : /home/kyu/test/java/classes

zip 파일 유형 : utils.zip

jar 파일 유형 : utils.jar


java -h 명령어를 통해서도 classpath 유형을 확인할 수 있다.



이렇게 classpath로 세 가지 유형을 제공하고, 디렉토리 또는 jar 파일을 classpath로 지정해야 할 필요가 있다면 콜론(:) 을 이용하여 패스들을 연결할 수 있다.

/home/kyu/test/java/classes:utils.zip:utils.jar


마지막으로 점(.)의 의미는 현재 디렉토리를 classpath로 지정하겠다는 의미이다.


결론

 classpath

 자바 런타임이 class 파일을 찾을 때 사용하는 경로

 콜론(:)

 클래스 패스들을 연결할 때 사용

 점(.)

 java 명령어를 실행하는 디렉토리를 classpath로 지정하겠다는 의미


'OS > Linux' 카테고리의 다른 글

리눅스 명령어  (0) 2017.11.10
리눅스 자바 버전 변경하기  (0) 2017.11.10
LINUX BIN 설치방법  (0) 2016.12.27
리눅스 tail 명령어 [실시간으로 로그 보기]  (0) 2016.12.16
Fedora 부팅시 repair filesystem 오류  (0) 2016.12.07

리눅스 상에서 확장자 .Bin  설치프로그램을 실행하는 방법

chmod +x 파일명.bin
./파일명.bin


처리하면 된다.

다운로드 받은 .Bin 파일은 실행속성이 없기 때문에 바로 실행할 수 없고,
실행가능 속성(+x)를 부여해줌으로써 실행할 수 있게 된다.

우분투의 경우에는 프로그램 설치를 위해 관리자 권한 획득도 필요하다.

ex) 우분투 실행 예
     chmod +x 파일명.bin
     sudo ./파일명.bin


리눅스오류나 파일의 로그를 보고 싶을 때 tail 명령어를 사용하여 실시간으로 확인한다.

[TAIL 기능]
파일의 마지막 부분을 출력한다.

[문법]
tail [option] ... [file] ...
기본 출력은 파일의 마지막 10줄을 보여준다. 

[옵션]
f : 파일의 마지막 10라인을 실시간으로 계속해서 출력
F : 파일 변동 시 실시간으로 보여주되 로그파일처럼 특정 시간이 지난 후 파일이 변하게 되면 새로운 파일을 오픈하여 보여줌 
     (다시 명령을 실행할 필요가 없음)
n : n 만큼의 라인을 출력
n+n : 마지막 줄이 아니라 첫번째 줄부터 시작해 n 번째 라인 이후부터 출력
--byte=n : n바이트 만큼의 내용을 출력
※ n은 숫자 ※

[예제]

1
[root@ls ]# tail -n 20 anaconda-ks.cfg


anaconda-ks.cfg 파일의 마지막부터 20줄까지를 출력한다.

1
[root@ls ]# tail -n +20 anaconda-ks.cfg


anaconda-ks.cfg 파일의 20번째 줄 이후를 출력한다.

1
[root@ls ]# tail -f /var/log/messages


/var/log/messages 파일을 실시간으로 화면에 출력한다(log 모니터링에 사용됨) 

'OS > Linux' 카테고리의 다른 글

리눅스 명령어  (0) 2017.11.10
리눅스 자바 버전 변경하기  (0) 2017.11.10
리눅스에서 java 컴파일 및 실행 하기  (0) 2016.12.29
LINUX BIN 설치방법  (0) 2016.12.27
Fedora 부팅시 repair filesystem 오류  (0) 2016.12.07

+ Recent posts