https://www.ncsc.go.kr:4018/PageLink.do (국가사이버 안보센터)

 

국가사이버안보센터

국제 및 국가배후 해킹 조직 관련 사이버위협 예방·대응, 보안적합성·암호모듈 검증제도 등 정보수록

www.ncsc.go.kr:4018

 


https://www.kisa.or.kr/2060307 (한국인터넷 진흥원)

 

KISA 한국인터넷진흥원

 

www.kisa.or.kr


https://mamu2830.blogspot.com/p/blog-page_13.html (마무-리눅스 독학사이트)

 

리눅스 독학 사이트

리눅스 공부, 리눅스마스터 1, 2급 독학 및 공부를 하는 사람들 위해 매우 자세하고 친절하게 포스트를 정리한 사이트입니다.

mamu2830.blogspot.com


https://www.youtube.com/@user-me1ym4jr9o/videos (조현준 보안스쿨)

 

조현준

조현준 정보보호론

www.youtube.com


https://www.hackerschool.org/ (해커스쿨)

 

https://www.hackerschool.org/

 

www.hackerschool.org


http://www.hackersnews.org/ (해커스뉴스)

 

해커즈뉴스 - 해커대학

 

www.hackersnews.org

 

1. REST란?
Representational State Transfer의 약자로 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고받는 모든 것 즉, 자원(resource)의 표현(representation) 에 의한 상태 전달을 의미한다.

이미지 출처 : https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html

* 자원(resource)의 표현(representation)
   - 자원: 해당 소프트웨어가 관리하는 모든 것
      예) 문서, 그림, 데이터, 해당 소프트웨어 자체 등
   - 자원의 표현: 그 자원을 표현하기 위한 이름
       예) DB의 학생 정보가 자원일 때, ‘students’를 자원의 표현으로 정한다.
* 상태(정보) 전달
   - 데이터가 요청되어지는 시점에서 자원의 상태(정보)를 전달한다.
     JSON 혹은 XML를 통해 데이터를 주고 받는 것이 일반적이다.

 

www와 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식으로 REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다.
REST는 네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나이다.

 

REST가 필요한 이유는
1) ‘애플리케이션 분리 및 통합’
2) ‘다양한 클라이언트의 등장’
3) 최근의 서버 프로그램은 다양한 브라우저와 안드로이폰, 아이폰과 같은 모바일 디바이스에서도 통신을 할 수 있어야 한다.
이러한 멀티 플랫폼에 대한 지원을 위해 서비스 자원에 대한 아키텍처를 세우고 이용하는 방법을 모색한 결과, REST에 관심을 가지게 되었다.



2. REST 개념
HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미한다.
즉, REST는 자원 기반의 구조(ROA, Resource Oriented Architecture)로 설계의 중심에 Resource가 있고 HTTP Method를 통해 Resource를 처리하도록 설계된 아키텍쳐를 의미한다.
웹 사이트의 이미지, 텍스트, DB 내용 등의 모든 자원에 고유한 ID인 HTTP URI를 부여한다.

* CRUD Operation 이란?

CRUD는 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 말이다.  
REST에서의 CRUD Operation 동작 예시는 다음과 같다.
. Create : 데이터 생성(POST)
. Read : 데이터 조회(GET)
. Update : 데이터 수정(PUT, PATCH)
. Delete : 데이터 삭제(DELETE)

3. REST 구성 요소 및 특징

1) REST는 다음과 같은 3가지로 구성이 되어있다. 

   - 자원(Resource) : HTTP URI
     . 모든 자원에 고유한 ID가 존재하고, 이 자원은 Server에 존재한다.
     . 자원을 구별하는 ID는 ‘/groups/:group_id’와 같은 HTTP URI 이다.
     . Client는 URI를 이용해서 자원을 지정하고 해당 자원의 상태(정보)에 대한 조작을 Server에 요청한다.
   - 자원에 대한 행위(Verb) : HTTP Method

     . HTTP 프로토콜의 Method를 사용한다.
     . HTTP 프로토콜은 GET, POST, PUT, DELETE 와 같은 메서드를 제공한다.
   - 자원에 대한 행위의 내용 (Representations) : HTTP Message Pay Load

     . Client가 자원의 상태(정보)에 대한 조작을 요청하면 Server는 이에 적절한 응답(Representation)을 보낸다.
     . REST에서 하나의 자원은 JSON, XML, TEXT, RSS 등 여러 형태의 Representation으로 나타내어 질 수 있다.
     . JSON 혹은 XML를 통해 데이터를 주고 받는 것이 일반적이다.

2) REST의 특징
   - Server-Client(서버-클라이언트 구조)

     . REST Server (자원이 있는 쪽) : API를 제공하고 비즈니스 로직 처리 및 저장을 책임진다.
     . Client (자원을 요청하는 쪽) : 사용자 인증이나 context(세션, 로그인 정보) 등을 직접 관리하고 책임진다.
     . 서로 간 의존성이 줄어든다.
   - Stateless(무상태)

     . HTTP 프로토콜은 Stateless Protocol 임으로 REST 역시 무상태성을 갖는다.
     . Client의 context를 Server에 저장하지 않는다.
       즉, 세션과 쿠키와 같은 context 정보를 신경쓰지 않아도 됨으로 구현이 단순해진다.
     . Server는 각각의 요청을 완전히 별개의 것으로 인식하고 처리한다.
       → 각 API 서버는 Client의 요청만을 단순 처리한다. 즉, 이전 요청이 다음 요청의 처리에 연관되어서는 안된다.
       물론 이전 요청이 DB를 수정하여 DB에 의해 바뀌는 것은 허용하며, Server의 처리 방식에 일관성을 부여하고
       부담이 줄어들며, 서비스의 자유도가 높아진다.
   - Cacheable(캐시 처리 가능)

     . 웹 표준 HTTP 프로토콜을 그대로 사용함으로 웹에서 사용하는 기존의 인프라를 그대로 활용할 수 있다.
       즉, HTTP가 가진 가장 강력한 특징 중 하나인 캐싱 기능을 적용할 수 있다.
       HTTP 프로토콜 표준에서 사용하는 Last-Modified 태그나 E-Tag를 이용하면 캐싱 구현이 가능하다.
     . 대량의 요청을 효율적으로 처리하기 위해 캐시가 요구된다.
     . 캐시 사용을 통해 응답시간이 빨라지고 REST Server 트랜잭션이 발생하지 않기 때문에 전체 응답시간, 성능,
       서버의 자원 이용률을 향상시킬 수 있다.
   - Layered System(계층화)

     . Client는 REST API Server만 호출한다.
     . REST Server는 다중 계층으로 구성될 수 있다.
        API Server는 순수 비즈니스 로직을 수행하고 그 앞단에 보안, 로드밸런싱, 암호화, 사용자 인증 등을 추가하여 
       구조상의 유연성을 줄 수 있다. 또한 로드밸런싱, 공유 캐시 등을 통해 확장성과 보안성을 향상시킬 수 있다.
     . PROXY, 게이트웨이 같은 네트워크 기반의 중간 매체를 사용할 수 있다.
   - Uniform Interface(인터페이스 일관성)

     . URI로 지정한 Resource에 대한 조작을 통일되고 한정적인 인터페이스로 수행한다.
     . HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다.
       특정 언어나 기술에 종속되지 않는다.

   - Code-On-Demand(optional)
     . Server로부터 스크립트를 받아서 Client에서 실행한다.
     . 반드시 충족할 필요는 없다.

 

4. REST의 장단점

1)장점 
  - HTTP 프로토콜의 인프라를 그대로 사용함으로 REST API 사용을 위한 별도의 인프라를 구축 할 필요가 없다.
   - HTTP 프로토콜의 표준을 최대한 활용하여 여러 추가적인 장점을 함께 가져갈 수 있게 해 준다.
   - HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다.
   - Hypermedia API의 기본을 충실히 지키면서 범용성을 보장한다.
   - REST API 메시지가 의도하는 바를 명확하게 나타냄으로 의도하는 바를 쉽게 파악할 수 있다.
   - 여러 가지 서비스 디자인에서 생길 수 있는 문제를 최소화한다.
   - 서버와 클라이언트의 역할을 명확하게 분리한다.
2)단점 
   - 표준이 자체가 존재하지 않아 정의가 필요하다.
  - HTTP Method 형태가 제한적이다.(사용 할 수 잇는 Method가 4가지 밖에 없다)
   - 브라우저를 통해 테스트할 일이 많은 서비스라면 쉽게 고칠 수 있는 URL보다 Header 정보의 값을 처리해야 

     함으로 전문성이 요구된다.
   - 구형 브라우저에서 호환이 되지 않아 지원해주지 못하는 동작이 많다.(익스폴로어)
         PUT, DELETE를 사용하지 못하고, pushState를 지원하지 않는 점

4. REST API란?
RESPT API란 REST의 원리를 따르는 API를 의미한다.

최근 OpenAPI(누구나 사용할 수 있도록 공개된 API: 구글 맵, 공공 데이터 등), 마이크로 서비스(하나의 큰 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍처) 등을 제공하는 업체 대부분은 REST API를 제공한다.

*API(Application Programming Interface)란 데이터와 기능의 집합을 제공하여 컴퓨터 프로그램간 상호작용을 촉진하며, 서로 정보를 교환가능 하도록 하는 것이다.

 

5. REST API 특징 및 설계 규칙

1) REST API 특징
   - 사내 시스템들도 REST기반으로 시스템을 분산해 확장성과 재사용성을 높여 유지보수 및 운용을 편리하게 할 수 있다.
   - REST는 HTTP 표준을 기반으로 구현하므로, HTTP를 지원하는 프로그램 언어로 클라이언트, 서버를 구현할 수 있다.
     즉, REST API를 제작하면 델파이 클라이언트 뿐 아니라, 자바, C#, 웹 등을 이용해 클라이언트를 제작할 수 있다.


2) REST API 설계 규칙

REST API를 올바르게 설계하기 위해서는 지켜야 하는 몇가지 규칙이 있다.
* 리소스 원형

   - 도큐먼트 : 객체 인스턴스나 데이터베이스 레코드와 유사한 개념
   - 컬렉션 : 서버에서 관리하는 디렉터리라는 리소스
   - 스토어 : 클라이언트에서 관리하는 리소스 저장소

*URI는 정보의 자원(resource)을 표현해야 한다.
   - resource는 동사보다는 명사를, 대문자보다는 소문자를 사용한다.
   - resource의 도큐먼트 이름으로는 단수 명사를 사용해야 한다.
   - resource의 컬렉션 이름스토어 이름으로는 복수 명사를 사용해야 한다.
   예) GET /Member/1 → GET /members/1

*자원에 대한 행위는 HTTP Method(GET, PUT, POST, DELETE 등)로 표현한다.

  -  URI에 HTTP Method가 들어가면 안된다. 예) GET /members/delete/1 → DELETE /members/1
  -  URI에 행위에 대한 동사 표현이 들어가면 안된다.(즉, CRUD 기능을 나타내는 것은 URI에 사용하지 않는다.)
      예) GET /members/show/1 → GET /members/1, GET /members/insert/2 → POST /members/2
  -  경로 부분 중 변하는 부분은 유일한 값으로 대체한다.(즉, id는 하나의 특정 resource를 나타내는 고유값이다.)
      예) student를 생성하는 route: POST /students, id=12인 student를 삭제하는 route: DELETE /students/12

 

ⅰ. 슬래시 구분자(/ )는 계층 관계를 나타내는데 사용한다.

     예) http://restapi.example.com/houses/apartments

ⅱ. URI 마지막 문자로 슬래시(/ )를 포함하지 않는다.

   - URI에 포함되는 모든 글자는 리소스의 유일한 식별자로 사용되어야 하며 URI가 다르다는 것은 리소스가 다르다는 것이고,

     역으로 리소스가 다르면 URI도 달라져야 한다.
   - REST API는 분명한 URI를 만들어 통신을 해야 하기 때문에 혼동을 주지 않도록 URI 경로의 마지막에는 슬래시(/)를 사용하지 않는다.
     예) http://restapi.example.com/houses/apartments/ (X)

ⅲ. 하이픈(- )은 URI 가독성을 높이는데 사용, 언더바(_)를 대신 사용하지 않는다.

   - 불가피하게 긴 URI경로를 사용하게 된다면 하이픈을 사용해 가독성을 높인다.

ⅳ. 밑줄(_ )은 URI에 사용하지 않는다.

   - 밑줄은 보기 어렵거나 밑줄 때문에 문자가 가려지기도 하므로 가독성을 위해 밑줄은 사용하지 않는다.

ⅴ. URI 경로에는 소문자가 적합하다.

   - URI 경로에 대문자 사용은 피하도록 한다.
   - RFC 3986(URI 문법 형식)은 URI 스키마와 호스트를 제외하고는 대소문자를 구별하도록 규정하기 때문

ⅵ. 파일확장자는 URI에 포함하지 않는다.

   - REST API에서는 메시지 바디 내용의 포맷을 나타내기 위한 파일 확장자를 URI 안에 포함시키지 않는다.
   - Accept header를 사용한다.
    예) http://restapi.example.com/members/soccer/345/photo.jpg (X)
    예) GET / members/soccer/345/photo HTTP/1.1 Host: restapi.example.com Accept: image/jpg (O)

ⅶ. 리소스 간에는 연관 관계가 있는 경우

   - /리소스명/리소스 ID/관계가 있는 다른 리소스명
    예) GET : /users/{userid}/devices (일반적으로 소유 ‘has’의 관계를 표현할 때)

ⅷ. 자원의 행위를 포함하지 않는다

   -  REST API에서는 자원의 어떤 행위를 하는지 포함시키지 않는다.
   예) http://restapi.example.com/members/post-insert/345 (X)

   예) http://restapi.example.com/members/post/345 (O)

 

[REST API설계 예]

CURD HTTP verbs Route
resource들의 목록 표시 GET /rescource
resource 하나의 내용을 표시 GET /rescource/:id
resource를 생성 POST /rescource
resource를 수정 PUT /rescource/:id
resource를 삭제 DELETE /rescource/:id

* 응답 상태코드

1xx : 전송 프로토콜 수준의 정보 교환
2xx : 클라이인트 요청이 성공적으로 수행됨
3xx : 클라이언트는 요청을 완료하기 위해 추가적인 행동을 취해야 함
4xx : 클라이언트의 잘못된 요청
5xx : 서버쪽 오류로 인한 상태코드

 

4. RESTful API란?
RESTful이란 REST의 원리를 따르는 시스템을 의미한다. 하지만 REST를 사용했다고 하여 모두가 RESTful 한 것은 아니며 REST API의 설계 규칙을 올바르게 지킨 시스템을 RESTful하다 말할 수 있다.

모든 CRUD 기능을 POST로 처리 하는 API 혹은 URI 규칙을 올바르게 지키지 않은 API는 REST API의 설계 규칙을 올바르게 지키지 못한 시스템으로 REST API를 사용하였지만 RESTful 하지 못한 시스템이라고 할 수 있다.

예) CRUD 기능을 모두 POST로만 처리하는 API
예) route에 resource, id 외의 정보가 들어가는 경우(/students/updateName)

이미지 출처 : https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html

*RESTful의 목적
   - 이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것
   - RESTful한 API를 구현하는 근본적인 목적이 성능 향상에 있는 것이 아니라 일관적인 컨벤션을 통한 API의 

     이해도 및 호환성을 높이는 것이 주 동기이니, 성능이 중요한 상황에서는 굳이 RESTful한 API를 구현할

     필요는 없다.

 

[참고사이트]

 

https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html

 

[Network] REST란? REST API란? RESTful이란? - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

 

https://curl.se/

cURL(Client URL)은 1997년 출시된 다양한 통신 프로토콜들을 이용하여 URL로 데이터를을 전송하여 서버의 데이터를 보내거나 가져올때 사용하기 위한 명령줄 도구 및 라이브러리로 명령줄이나 스크립트에서 HTTP/S로 GET,POST등으로 데이터(패킷/메시지)를 전송하는 데 사용한다.

예) 자바스크립트 환경에서 REST API(http)를 테스트하고싶다면 보통 ajax, fetch 를 이용해 요청을 보내는 것과 같이, 

      SHELL(커맨드라인 환경)에서 REST API(http) 테스트 하고 싶으면 curl 명령어를 이용하면 된다라고 보면 된다.

 

이밖에 HTTP / HTTPS / FTP / LDAP / SCP / TELNET / SMTP / POP3 등 다양하고 주요한 프로토콜을 지원하며  Linux/Unix계열 및 Windows 등의 OS에서 구동됨으로 여러 플랫폼과 OS에서 유용하게 사용할 수 있다. 이렇게 다양하고 강력한 기능을 가진 옵션들을 제공하지만, 보통 특정 서버에서 빠르게 방화벽 예외 상태를 테스트 하거나, REST 서비스 테스트를 위해 사용되는 편이다.

 

* cURL설치 방법

  - 우분투 설치 명령
     #
apt-get install curl

* OS플랫폼별 cURL 바이너리 다운로드 ( Linux, Window, MacOS 등)

   - https://curl.haxx.se/download.html

* cURL의 주요 옵션

   -O : 파일 다운로드 (ex : curl -O http://해당경로)
   -i : 헤더값 확인

   -A : 에이전트 추가
   -I : 사이트의 Header와 바디 정보를 함께 가져오기
   -v : request, response 어떻게 오가는지 상세로그 확인 (헤더, 바디)
   -k : https 사이트를 SSL certificate 검증없이 연결.
   -s : 정숙 모드. 진행 내역이나 메시지등을 출력하지 않음.
   -H : 헤더 설정. 헤더 정보 전달

   -h : 옵션 보기
   -d : HTTP Post data (FORM 을 POST 하는 HTTP나 JSON 으로 데이타를 주고받는 REST 기반의 웹서비스 디버깅시 유용한 옵션)

 

1.Curl (Client URL)

  1.1.Curl 설치

     1.1.1.리눅스
     1.1.2.윈도우

     1.1.3.curl 버전 확인

  2.1.Curl 명령어 옵션

     2.2.1.GET  요청
     2.2.2.POST  요청

     2.2.3.PUT  요청

     2.2.4.DELETE  요청
     2.3.1.헤더 보기
     2.3.3.Referer 지정
     2.3.4.User Agent 지정
     2.4.1.자격증명 전달
     2.4.2.프록시 인증
     2.5.1.파일 업로드
     2.6.1.SMTP로 메일 전송
     2.7.1.내 공인 IP 조회
     2.7.2.날씨 조회

     2.7.3.달 상태 조회

  3.1.wget / curl 공통점

     3.2.1.wget

     3.2.2.curl

 

 

[참조사이트]

https://inpa.tistory.com/entry/LINUX-%F0%9F%93%9A-CURL-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%82%AC%EC%9A%A9%EB%B2%95-%EB%8B%A4%EC%96%91%ED%95%9C-%EC%98%88%EC%A0%9C%EB%A1%9C-%EC%A0%95%EB%A6%AC#%E2%80%8Bdelete__%EC%9A%94%EC%B2%AD

 

🐧 CURL 명령어 사용법 💯 완전 총정리

Curl (Client URL) curl(client url) 명령어는 프로토콜들을 이용해 URL 로 데이터를 전송하여 서버에 데이터를 보내거나 가져올때 사용하기 위한 명령줄 도구 및 라이브러리이다. 쉽게말해 예를들어 자바

inpa.tistory.com

 

마우스의 경우는 컴퓨터 사용시 키보드와 함께 많이 사용하는 컴퓨터 주변장치이다.
그중에서 마우스의 경우는 클릭을 많이 하기 때문에 오래 사용하다 보면 고장나기 쉽다.
간혹, 구입한지 얼마 안되었는데 불량으로 이런 경우도 발생 할 수 도 있다.

마우스의 고장 증상은

보통은 버튼을 클릭하였을때 아예 동작하지 않거나
여러번 눌러야 한번 클릭이 되거나
아니면 한번 눌렀는데 더블클릭이 되는 경우가 발생하게 되는데
고장 여부를 정확하게 판단하기 위해서는 테스트를 해보고 수리 또는 교체를 해야 한다.

 

1. 온라인 마우스 버튼클릭 테스트를 통한 점검

https://www.onlinemictest.com/ko/mouse-test/

 

Microphone Test - Check Your Mic With Our Online Tool | OnlineMicTest

An online microphone test to check if your mic is working and properly configured. For Zoom, Skype and other voice call services, or for any other use.

www.onlinemictest.com

테스트는 마우스 버튼을 눌러서 이미지의 동일한  버튼에 불이 켜지면 마우스가 정상적으로 작동하고 있다는 것이다

 

2. 온라인 마우스 더블클릭 테스트 점검

https://codepen.io/blink172/pen/vERyxK

테스트는 주황색 부분에 마우스를 더클릭해서 테스트 한다.
주황색이 더블크릭 오류일때는 붉은색으로 바뀐다

 

3. 더블클릭 안되는 마우스 수리 (MS Sculpt Ergonomic Mouse 기준)

마우스를 분해하여 버튼을 면봉으로 청소하는 방법인데 분해를 위해서는 MS마우스는 별렌치(T6H)가 필요하다.

사용하던 마우스가 더블클릭이 안되어서 마우스드라이브도 업데이트 해보았으나 해결되지 않았는데

링크사이트를 보고 클린징후 정상적으로 동작이 되었다.

 

https://danchukong.tistory.com/entry/%EB%A7%88%EC%9A%B0%EC%8A%A4-%ED%81%B4%EB%A6%AD%EC%98%A4%EB%A5%98-%EC%9E%98-%EC%95%88%EB%90%A0%EB%95%8C-%EC%9E%90%EA%B0%80%EC%88%98%EB%A6%AC-%EB%B0%A9%EB%B2%95-%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%86%8C%ED%94%84%ED%8A%B8-Sculpt-%EC%88%98%EB%A6%AC%ED%9B%84%EA%B8%B0

 

마우스 클릭오류, 잘 안될때 자가수리 방법 (마이크로소프트 Sculpt 수리후기)

마우스 클릭 오류로 잘 안될 때 있으시죠? 마우스 작동이 안 될 때에는 여러 가지 원인이 있지만 마우스 클릭 오류로 안될 때에는 이 방법이면 대부분 해결이 가능합니다. 마우스 분해 첫번째는

danchukong.tistory.com

 

1.공시지가 란? 

   . 국가에서 감정평가를 한 토지의 가격
   . 국세 및 지방세의 부과하는 기준이 됨
   . 표준 공시지가는 매년 1월 1일 조사하여 2월말에 발표

공시지가란 국가에서 토지 단위당 면적(㎡)을 감정평가를 하여 매긴 가격으로 건물이 아닌 토지에 대한 금액이며, 국가에서 토지 관련 국세 및 지방세, 종합부동산세를 납부하게 되는 부과 기준이된다.
토지를 보유하고 있다면 공시지가를 기준으로 세금의 금액이 결정되며, 새로운 아파트 및 상업지구를 만들게되는 토지 개발에 대한 금액에 대한 기준으로도 활용된다.
표준 공시지가는 국토교통부에서 매년 1월1일 대표적으로 기준이 될 수 있는 필지만을 조사를 시작하여 2월 말에 발표한다.

공시지가는 표준지 공시지가와 개별 공시지가 2종류가 있다.

1)표준지 공시지가 ( 국토교통부 부동산 공시가격 알리미로 조회 https://www.realtyprice.kr/notice/gsstandard/search.htm
표준지 공시지가는 한 지역의 대표되는 땅(표준지)의 금액을 감정 평가한것으로, 개별 공시지가의 산정 기준이 되기도 하며 국토교통부에서 발표한다.
*표준지 공시지가 조회 방법
  ①국토교통부 "부동산 공시가격 알리미" 접속
  ②상단 메뉴의 "표준지 공시지가" 클릭
  ③"텍스트검"색 또는 "지도검색" 선택
  ④검색년도, 시/도, 시/군/구, 읍/면/동 지역 선택 후 검색
  ⑤표준공시지가 조회 완료
     - 소재지, 면적(㎡), 지목, 공시지가(원/㎡), 지리적위치, 용도지역, 주위환경, 도로교통, 형상지세 정보 확인가능


2)개별공시지가 ( 지역별 부동산정보조회시스템으로 조회 https://www.realtyprice.kr/notice/gsindividual/siteLink.htm 
개별공시지가는 세금(국세 지방세, 재산세등) 을 납부할 때 세금 부과의 기준이 되게 됩니다. 국세와 재산세, 및 지방세, 토지 개발에 필요한 개발부담금 부과 기준이 된다.

표준지로 선정된 토지의 도로 및 교통여건과 규제등을 고려하여 적정 가격을 평가하며 시.군.구청장이 발표한다.

*개별공시지가 조회 방법

   ①지역별 부동산 정보조회 시스템 홈페이지 접속
   ②지번입력 또는 도로명주소입력을 선택
   ③주소 설정후 조회
   ④개별 공시지가 조회 완료

     - 기본, 토지, 건축물, 토지이용계획, 개별공시지가(기준년도,토지소재지,지번,개별공시지가) 정보 확인 가능

 

 

2.공시가격 이란?

   . 국가에서 감정평가 한 주택 (건물 및 부수토지)의 가격
   . 재산세, 종합 부동산세 및 지역건강보험료와 국민연금액 납부액의 기준이 됨
   . 공시가격은 1년에 2회 발표하며, 4월 말과 9월 말에 각각 1회씩 발표

공시가격은 국가에서 주택(건물 및 부수토지)을 감정평가를 하여 매긴 가격으로 단독주택 과 아파트 및 빌라등의 공동 주택을 보유하고 있다면 공시가격을 기준으로 재산세 와 종합부동산세 등의 세금 부과 기준이 되며 1년에 2회 발표하며, 4월말과 9월말에 한번씩 발표하게 된다.
실제 시세와는 차이가 있으며 부동산 거래시 대출의 기준이 되며 6월 1일에 보유한 부동산에 부과하고 12월에 납부하는 종합부동산세 와 7월, 9월에 납부하게되는 재산세, 지역건강보험료와 국민연금액 납부 금액의 기준이 된다. 

공시가격은 크게 단독주택과 공동주택  공시 2가지이며 세부적으로는 표준단독주택, 개별단독주택, 공동주택 가격공시 3종류가 있다.
1) 단독주택 가격공시
   - 표준주택 가격공시
   - 개별주택 가격공시

단독주택 가격공시에서는 표준주택 가격공시와 개별주택 가격공시가 2종류로 나뉘게된다.

단독주택 가격공시는 단독으로 있는 주택의 가격공시를 진행한것이고 표준주택 가격공시는 지역의 기준이 되는 가격을 공시한 내용이며, 개별주택 가격공시는 표준주택 가격공시를 기준으로 국가에서 평가를 한 것이다. 


2) 공동주택 가격공시

공동주택 가격공시는 아파트/ 빌라/ 다세대 등의 주택 가격을 평가한 것이다.


공시지가 및 공시가격의 불만이 있거나 정확한 금액이 아닌거 같다는 생각이 들면 이의 신청을 해볼 수 있으며 이의 신청 기간(1월기준공시: 4월말~5월말, 6월기준 공시: 9월말~10월말 상세일정은 "부동산 공시가격 알리미"에서)내 "부동산 공시가격 알리미"에 할 수 있다.

*이의 신청 방법

 ① "부동산 공시가격 알리미"의 소정양식 게시판에 의견을 기재 후 등록
  공동주택가격 이의 신청서를 해당 공동주택 소재를 관할하는 시,군,구(읍면,동) 민원실에 팩스,우편 또는 직접제출
 공동주택가격 이의 신청서를 한국부동산원 지사에 팩스,우편 또는 직접제출

이의 신청 기간은 1월1일 발표 기준공시는 4월말~5월말까지, 6월1일 발표 기준공시는 9월말~10월말까지 신청이 가능하다.

 

3. 아파트 공시지가

매년 1회, 1월1일에 공동주택가격공시가 발표되며 공동주택 가격공시를 통해 세금의 납부 기준이 되게된다. 아파트 공시가격 즉, 평가된 금액이 적정하지 않다는 생각과 불만이 생긴다면 아파트 공시가격에 이의 신청을 할 수 있다.

이의 신청을 통해 금액 조정이 어렵지만 될 수도 있기 때문에 평가된 아파트의 공시가격이 불만족 스럽다면 이의신청을 한다.

 아파트 공시지가(공시가격) 조회 방법

  ① 국토교통부 "한국부동산원 부동산 공시가격 알리미" 접속 https://www.realtyprice.kr/notice/hpindividual/siteLink.htm

  ② 상단메뉴의 "공동주택 공시가격" 클릭
  ③ 시/도 선택, 시/군/구 선택, 도로명 선택
  ④ 단지명, 동/호 선택
  ⑤ 아파트 공시지가(공시가격) 조회 완료
      - 공시기준일, 단지명, 동, 호, 전용면적(㎡), 공동주택의 공시가격 확인 가능

 

 

4. 오피스텔 기준시가(공시지가)

주로 공시지가는 부동산과 담보 대출 및 세금 및 부동산 시세등을 파악을 위해 조회를 하게되는데 오피스텔 공시지가는 정확한 명칭은 "공시지가"가 아니라 "기준시가" 라고 한다. 오피스텔과 상가의 기준시가(공시지가)는 국토교통부 "한국부동산 공시 가격알리미"가 아닌 국세청 "홈택스"에서만 조회가 가능하다.
기준시가는 토지 및 건축을 포함한 상업용 건물과 오피텔의 금액을 국세청에서 산정하게 되며, 상속세 및 증여세, 양도소득세의 과세 기준이 되며, 매년 1회 4월말에 발표한다.

◆ 오피스텔 기준시가(공시지가) 조회 방법
   -기준시가는 서울, 경기, 인천과 5대 지방 광역시, 세종특별자치시에 위치한 경우만 조회 가능
   국세청 홈택스 홈페이지에 접속 https://www.hometax.go.kr/
   "조회/발급" 메뉴 클릭 > "기타 조회" 메뉴의 "기준시가 조회" 클릭

  ③ "오피스텔 및 상업용 건물" 을 선택 https://teht.hometax.go.kr/websquare/websquare.html?w2xPath=/ui/sf/a/a/UTESFAAM13.xml
  ④ 소재지 정보(지번 또는 도로명 주소) 입력
      - 지번의 경우  법정동 조회에 오피스텔이 있는 정확한 건물의 법정동을 조회하고 번지/호 를 입력후 조회 클릭
  ⑤ 오피스텔이 표시되면 원하는 오피스텔의 건물명 클릭
      - 오피스텔의 상세주소인 동/층/호 입력 후 기준시가(공시지가) 기준년도 선택후 검색 클릭

  ⑥ 오피스텔 기준시가 조회 완료
     -오피스텔의 단위당 면적(㎡)당 기준시가(원)와 건물 면적(㎡) 확인 가능

 

오피스텔 기준시가(공시지가) 조회가 안되는 경우 정확한 법정동 주소를 입력하지 않아서 이거나 신축건물이라 조회가 되지 않는 경우도 있다. 신축건물이라면 4월말에 기준시가가 발표됨으로 5월에 다시한번 조회하면 조회 될 것이다.

 

 

5. 상가 기준시가(공시지가)

부동산을 보유하고 있으면 일반적 경우는 공시지가 조회로 세금 및 대출 자금의 규모를 확인해 볼 수 있는데, 상가와 오피스텔의 경우는 공시지가가 별도로 존재하지 않으며 기준시가를 기준으로 국가에서 세금을 징수한다.
기준시가는 공시지가와 달리 토지와 건축까지 포함한 오피스텔 과 상업용 건물 금액을 국세청에서 가액을 산정하게 되는데, 양도소득세 및 상속, 증여세등의 과세기준이 되며, 매년 1회, 4월 말에 국토교통부가 아닌 국세청에서 발표한다.


◆상가 기준시가(공시지가) 조회 방법
   국세청 홈택스 홈페이지에 접속 https://www.hometax.go.kr/
   "조회/발급" 메뉴 클릭 > "기타 조회" 메뉴의 "기준시가 조회" 클릭

  ③ "오피스텔 및 상업용 건물" 을 선택 https://teht.hometax.go.kr/websquare/websquare.html?w2xPath=/ui/sf/a/a/UTESFAAM13.xml
  ④ 소재지 정보(지번 또는 도로명 주소) 입력
      - 지번의 경우  법정동 조회에 오피스텔이 있는 정확한 건물의 법정동을 조회하고 번지/호 를 입력후 조회 클릭
  ⑤ 상가가 표시되면 원하는 상가 이름 클릭
      - 상가의 상세주소인 동/층/호 입력 후 기준시가(공시지가) 기준년도 선택후 검색 클릭

  ⑥ 상가 기준시가 조회 완료
     -상가의 단위당 면적(㎡)당 기준시가(원)와 건물 면적(㎡) 확인 가능


상가의 기준시가(공시지가) 조회가 안되는 경우는 면적이 3,000㎡ 이상 이거나 호실이 100개 이상인 상업용 건물 이어야 조회가 가능하며,  두 조건이 충족한데 기준시가(공시지가)가 나오지 않으면 신축건물이라 조회가 되지 않는 경우가 있다. 신축건물이라면 오피스텔과 같이 4월말에 기준시가가 발표됨으로 5월에 다시한번 조회하면 조회 될 것이다.

 

[참고사이트 : https://haoah.co.kr/]

https://docs.vmware.com/kr/VMware-vSphere/index.html

 

VMware vSphere 설명서

VMware vSphere는 VMware의 가상화 플랫폼으로이며 데이터 센터를 CPU, 스토리지 및 네트워킹 리소스를 포함하는 집계된 컴퓨팅 인프라로 변환합니다. vSphere는 이러한 인프라를 통합 운영 환경으로 관

docs.vmware.com

 

UEFI 및 BIOS는 하드웨어를 초기화하고 운영 체제를 로드하기 위해 시작하는 동안 사용되는 2가지 유형의 메인보드 펌웨어로 장치 부팅 우선 순위를 결정하고 사용자가 하드웨어 및 소프트웨어 설정을 사용자 지정할 수 있다.

두 펌웨어 유형 모두 동일한 용도로 사용되지만 UEFI가 BIOS보다 최신 버전이며 더 많은 사용자 지정 옵션과 기능을 제공한다.

 

UEFI란?

UEFI(Unified Extensible Firmware Interface)는 통합 확장 가능 펌웨어 인터페이스 2007년 Windows가 Windows Vista 서비스 팩 1 및 Windows 7, Windows Server 2008 R2 출시 된 이후 컴퓨터의 레거시 BIOS를 점진적으로 대체하는 최신 펌웨어이다. 

 

UEFI를 만드는 주된 목적은 BIOS의 한계를 극복하고 시스템 부팅/종료 시간을 단축하는 것과 UEFI는 GPT 파티셔닝 체계를 사용하고 훨씬 더 큰 저장 용량(2.2TB 이상)을 지원하고 UEFI는 Secure Boot 기능으로 더 나은 보안을 제공하여 승인되지 않은 (멀웨어) 부팅되는 것을 방지와 네트워킹 기능 지원으로 원격문제 해결 및 구성에 유용하다. 

그러나 단점은 보안 부팅이 다른 OS를 서명되지 않은 앱으로 취급하기 때문에 이중 부팅을 방지한다는 것이다.

UEFI는 32비트 또는 64비트 모드에서 실행되므로 그래픽 사용자 인터페이스를 제공할 수 있다 .

[이미지 출처: EaseUS(https://www.easeus.co.kr/partition-manager-software/uefi-vs-bios.html)]

BIOS란?

BIOS(Basic Input/Output System)는 1980년대에 개발되어 EPROM(Erasable Programmable Read-Only Memory)을 사용하고 보드에 납땜이 된 상태라 변경이 쉽지 않았으나 기술이 발전되어 1990년대부터 다시 기록할 수 있는 EEPROM(Electrically EPROM)을 사용하며 발전하고 개선되었지만 현재는 BIOS가 아닌 UEFI를 사용하여 사라질 예정이다.

 

BIOS의 목적은 CMOS 칩에 저장된 설정을 확인하여 사용자가 원하는 시스템 실행 방법과 초기화할 장치(CPU, GPU , RAM 등)를 결정하는 것으로 장치 확인 후 부팅전 하드웨어를 한번 초기화하여 사용 준비하게 하고 BIOS는 부팅 가능한 장치를 찾고 OS에 대한 제어를 수행한다.

BIOS는 16비트 모드에서 작동하며 펌웨어 ROM에서 읽고 실행할 수 있는 코드의 양도 제한되어 부팅/종료시간도 느리다. 펌웨어는 MBR 파티셔닝 체계를 사용 하고 최대 2TB까지만 저장 장치를 지원합니다.

[이미지 출처: EaseUS(https://www.easeus.co.kr/partition-manager-software/uefi-vs-bios.html)]

[BIOS vs UEFI]

구분 BIOS
(Basic Input/Output System)
UEFI
(Unified Extensible Firmware Interface)
출시일 1980년대 1990년대 후반
작동 모드 16 비트 32 비트/ 64 비트
사용자 인터페이스 키보드를 사용한 기본 UI 제공 마우스를 지원하는 사용자 친화적인 그래픽 UI 제공
파티션 지원 최대 4개의 물리적 파티션 최대 128개의 물리적 파티션
파티션 크기 제한 2TB 18EB(엑사바이트 : 1,880만 TB)
성능 16비트 시스템에서 가장 잘 수행 BIOS에 비해 부팅 시간이 상항히 빠르고 성능도 향상
저장 메인보드의 전용 침에 저장된 시스템 초기화 정보 하드디스크의 .efi파일에 저장된 시스템 초기화 정보
보안 비밀번호 보안 보안 부팅 가능
(각 부팅 소프트웨어, 드라이버 및 OS의 서명을 확인하여 서명이 유효한지 확인 후 OS가 동작)

BIOS와 UEFI 차이점 [이미지 출처: EaseUS]

[MBR vs GPT]

구분 MBR GPT
저장 공간 최대 2TB의 저장 용량을 지원 사용 가능한 모든 저장 용량을 지원
(2TB보다 작거나 클 수 있으며 최대 18EB까지)
파티션 수량 디스크 1개에 최대 4개의 주 파티션 또는
주  파티션 3개 + 확장 파티션 을 통한 추가 파티션 생성 가능
디스크 1개에 최대 128개 파티션을 생성 가능
데이터 보안 파티셔닝 및 부팅 데이터를 한 곳에 저장하여 데이터가 손상되면 검색할 수 없다. 디스크 전체에 파티션 정보를 여러 복사본으로 저장. 데이터가 손상된 경우에도 다시 가져올 수 있다.
지원되는 부팅 모드 레거시 BIOS 부팅 모드 사용 UEFI 부팅 모드 사용
기타 .부팅 파티션을 1개만 지정 가능
.확장 및 논리 파티션은 부팅 파티션 불가
.대부분의 펌웨어/OS에서 사용 가능
.32bit Windows 및 기본 BIOS를 사용하는 시스템에서는 파티션 내용 조회 불가
.일부 과거 버전의 OS에서는 부팅 파티션으로 사용 불가

 

MBR
GPT 파티션의 맨 앞에는 Protective MBR 이라는 여유 공간을 두게 되는데, GPT 파티션을 인식하지 못하는 시스템에서 해당 디스크가 비어 있는 것으로 착각하고 GPT 디스크를 수정하는 것을 방지하기 위한 것이다

1. 펌웨어 종류 확인 방법

요즘 메인보드는 UEFI 만 또는 UEFI와 BIOS가 혼합된 상태로 제공되며 부팅모드 설정화면에서도 확인 가능하다.

두 가지를 구별하는 다른 방법은 설정 화면에 따라 마우스 커서가 나타나거나 메뉴가 모두 텍스트로 표시된다. BIOS에 더 익숙한 사람들을 혼동하지 않으려 고 일부 제조업체는 외관상 두 가지 모드를 구별하지 않는 경우도 있으며 컴퓨터가 UEFI 또는 BIOS를 사용하는지 여부를 확인하는 검증 된 방법이 필요하다.


1)Windows "시스템 정보"에서 확인방법

- "Windows + R"키를 동시에 눌러 실행 창을 열고 MSInfo32 입력하면 시스템 정보 창이 열립니다.

- 오른쪽 창에서 "BIOS 모드"를 찾는다.
  → BIOS를 사용하는 경우 레거시가 UEFI를 사용하는 경우 UEFI가 표시된다.

부팅모드 확인 [이미지 출처: EaseUS]
디스크 관리자에서 확인 디스크 선택(디스크 0) > 속성
볼륨 > "파티션 형식"에서 GPT 확인

2)Windows "setupact.log"에서 확인방법

Windows 파일 탐색기에서 setupact.log 파일을 확인하면 컴퓨터에서 사용 중인 BIOS 모드를 알 수 있습니

- "Windows + E"키를 동시에 눌러 "파일 탐색기"를 열고 C:\Windows\Panther 폴더로 이동

- setupact.log 텍스트 파일을 메모장으로 연다

- Ctrl + F를 눌러 메모장에서 찾기창을 열고 Detected Boot Environment를 입력후 다음찾기 클릭

  → 결과에 EFI 또는 BIOS 단어를 확인한다
      Callback_BootEnvironmentDetect: Detected Boot Environment : BIOS
      Callback_BootEnvironmentDetect: Detected Boot Environment : EFI

3)Linux 명령어로 확인

parted -l 명령어로 확인

 

4)UEFI/BIOS 부트모드에서 확인방법

하드웨어 제조사마다 다르며 일반적으로 F2 키를 눌러 기존 BIOS에 액세스 가능하다.
(그외 F1,  F10, F11, F12, Esc, Delete 키를 사용하는 경우도 있음)

-컴퓨터를 다시 시작
-BIOS 설정 유틸리티 화면이 나타날 때까지 "F2" 키를 계속 누른다.

 (일반적으로 서버 및 PC는 "Del" 키를 노트북은 "F2" 키를 사용한다. 안되면 다른 키를 시도)
-Boot 선택 > Boot 탭에서 위쪽 및 아래쪽 화살표로 UEFI 모드 나 Legacy모드를 선택 > Enter > Exit > Yes

부팅모드 확인 [이미지 출처: EaseUS]

 

2. UEFI 펌웨어 사용을 위한 파티션 변경(MBR → GPT)

-BIOS를 UEFI로 변경하였을때 시스템 부팅시 문제를 예방하려면 파티션을 MBR(BIOS)에서 GPT(UEFI)로 변환해야 한다.

-디스크에 어떠한 파티션 또는 볼륨도 포함되어 있지 않아야 디스크를 MBR에서 GPT 파티션으로 변경할 수 있다.

-또, 디스크를 변환하기 전에 모든 데이터를 백업하고 디스크에 액세스하는 모든 프로그램을 닫는다.

 

1)Windows 인터페이스로 변환
-GPT 디스크로 변환하고자 하는 기본 MBR 디스크의 모든 데이터를 백업 또는 이동한다.
-디스크에 파티션 또는 볼륨이 포함된 경우 각각을 마우스 오른쪽 단추로 클릭 후 파티션 삭제 또는 볼륨 삭제를 클릭한다.
-GPT 디스크로 변경하고자 하는 MBR 디스크를 마우스 오른쪽 단추로 클릭한 후 "GPT 디스크로 변환"을 클릭한다.

 

2)CLI(명령줄)로  변환
빈 MBR 디스크를 GPT 디스크로 변환하려면 MBR2GPT.EXE 도구를 사용할 수도 있지만 약간 복잡하다.

자세한 내용은 MBR 파티션을 GPT로 변환(https://learn.microsoft.com/ko-kr/windows/deployment/mbr-to-gpt)을 참조
-GPT 디스크로 변환하고자 하는 기본 MBR 디스크의 모든 데이터를 백업 또는 이동한다.
-"Windows +R" 키 동시에 눌러서 "diskpart"를 입력후 Enter (디스크에 파티션이나 볼륨이 없는 경우 6단계까지 건너뜀)
-DISKPART> 에서 "list disk"를 입력하여 서버에 연결된 모든 디스크를 확인 후 Enter (GPT로 변환하려는 디스크 번호를 기록해 둔다)
-DISKPART> 에서 "select disk disknumber"(disknumber는 MBR 디스크 번호)를 입력하여 GPT로 변환하려는 디스크 번호 선택후 Enter 
-DISKPART> 에서 "clean"입력하여 대상 디스크에 있는 모든 파티션을 삭제하고 Enter

-DISKPART> 에서 "convert gpt" 입력하고 Enter.

-DISKPART> 에서 "exit"입력하고 Enter.

명령 설명
list disk 디스크의 목록과 크기, 사용 가능한 공간 크기, 기본 또는 동적 디스크 여부, 디스크의 MBR(마스터 부트 레코드) 또는 GPT(GUID 파티션 테이블) 파티션 스타일 사용 여부 등 정보를 표시합니다. 별표(*)가 표시된 디스크는 포커스가 설정됩니다.
select disk disknumber disknumber는 MBR 디스크 번호를 의미함
디스크 번호가 disknumber인 지정된 디스크를 선택하고 포커스를 설정합니다.
clean 포커스가 설정된 디스크에서 모든 파티션 또는 볼륨을 삭제합니다.
convert gpt MBR(마스터 부트 레코드) 파티션 스타일의 비어 있는 기본 디스크를 GPT(GUID 파티션 테이블) 파티션 스타일의 기본 디스크로 변환합니다.

 

아바마 노드의 하드웨어 Componet 정상인지 확인
(mapall 명령어를 사용하여 전체 노드의 하드웨어 상태 확인 필요)

root@ava0-util:~/#: omreport chassis
Health
 
Main System Chassis
 
SEVERITY : COMPONENT
Ok       : Fans
Ok       : Intrusion
Ok       : Memory
Ok       : Power Supplies
Ok       : Processors
Ok       : Temperatures
Ok       : Voltages
Ok       : Hardware Log
Ok       : Batteries
 
For further help, type the command followed by -?


아바마 노드의 디스크 상태 확인
(mapall 명령어를 사용하여 전체 노드의 하드웨어 상태 확인 필요)

root@ava0-util:~/#: omreport storage pdisk controller=0
List of Physical Disks on Controller PERC 6/i Integrated (Embedded)
 
Controller PERC 6/i Integrated (Embedded)
ID                        : 0:0:0
Status                    : Ok
Name                      : Physical Disk 0:0:0
State                     : Online
Failure Predicted         : No
Progress                  : Not Applicable
Type                      : SAS
Capacity                  : 278.88 GB (299439751168 bytes)
Used RAID Disk Space      : 278.88 GB (299439751168 bytes)
Available RAID Disk Space : 0.00 GB (0 bytes)
Hot Spare                 : No
Vendor ID                 : DELL(tm)
Product ID                : ST3300656SS
Revision                  : HS0A
Serial No.                : 3QP132--
Negotiated Speed          : Not Available
Capable Speed             : Not Available
Manufacture Day           : 01
Manufacture Week          : 04
Manufacture Year          : 2009
SAS Address               : 5000C5000F97EED1
 
ID                        : 0:0:1
Status                    : Ok
Name                      : Physical Disk 0:0:1
State                     : Online
Failure Predicted         : No
Progress                  : Not Applicable
Type                      : SAS
Capacity                  : 278.88 GB (299439751168 bytes)
Used RAID Disk Space      : 278.88 GB (299439751168 bytes)
Available RAID Disk Space : 0.00 GB (0 bytes)
Hot Spare                 : No
Vendor ID                 : DELL(tm)
Product ID                : ST3300656SS
Revision                  : HS0A
Serial No.                : 3QP132--
Negotiated Speed          : Not Available
Capable Speed             : Not Available
Manufacture Day           : 01
Manufacture Week          : 04
Manufacture Year          : 2009
SAS Address               : 5000C5000F97EE65

 

최근 체크포인트 정상 생성 Validation 정상 확인

root@ava0-util:~/#: cplist
cp.20130307030013 Thu Mar  7 12:00:13 2013   valid rol ---  nodes  13/13 stripes  15039
cp.20130307074458 Thu Mar  7 16:44:58 2013   valid --- ---  nodes  13/13 stripes  15063

 

노드가 Online 상태인지 확인하고 Offline 스트라이프가 있는지 확인

root@ava0-util:~/#: status.dpn
Thu Mar  7 18:09:02 KST 2013  [AVA0-UTIL] Thu Mar  7 09:09:02 2013 UTC (Initialized Wed Feb 27 09:50:52 2013 UTC)
Node   IP Address     Version   State   Runlevel  Srvr+Root+User Dis Suspend Load UsedMB Errlen  %Full   Percent Full and Stripe Status by Disk
0.0  10.0.0.131   5.0.4-30  ONLINE fullaccess mhpu+0hpu+0hpu   0 false   0.08 3940400   141086  21.4%  22%(onl:287) 20%(onl:289) 21%(onl:287) 21%(onl:288)
0.1  10.0.0.132   5.0.4-30  ONLINE fullaccess mhpu+0hpu+0hpu   0 false   0.03 6004420   143390  20.4%  21%(onl:291) 20%(onl:295) 20%(onl:293) 20%(onl:292)
0.2  10.0.0.133   5.0.4-30  ONLINE fullaccess mhpu+0hpu+0hpu   0 false   0.58 3939484   143466  21.8%  23%(onl:290) 21%(onl:290) 21%(onl:293) 21%(onl:293)
0.3  10.0.0.134   5.0.4-30  ONLINE fullaccess mhpu+0hpu+0hpu   0 false   0.08 3935416   147986  22.0%  23%(onl:297) 21%(onl:288) 21%(onl:292) 21%(onl:293)
0.4  10.0.0.135   5.0.4-30  ONLINE fullaccess mhpu+0hpu+0hpu   0 false   0.22 3936032   138754  20.8%  21%(onl:287) 20%(onl:278) 20%(onl:278) 20%(onl:283)
0.5  10.0.0.136   5.0.4-30  ONLINE fullaccess mhpu+0hpu+0hpu   0 false   0.23 3945020   144696  20.4%  21%(onl:295) 20%(onl:292) 20%(onl:294) 20%(onl:291)
0.6  10.0.0.137   5.0.4-30  ONLINE fullaccess mhpu+0hpu+0hpu   1 false   0.05 3940528   141408  20.0%  21%(onl:290) 19%(onl:288) 19%(onl:290) 19%(onl:287)
0.7  10.0.0.138   5.0.4-30  ONLINE fullaccess mhpu+0hpu+0hpu   0 false   0.02 5999696   141607  20.1%  21%(onl:288) 19%(onl:290) 19%(onl:287) 19%(onl:290)
0.8  10.0.0.139   5.0.4-30  ONLINE fullaccess mhpu+0hpu+0hpu   0 false   0.03 5998768   141663  20.0%  21%(onl:287) 19%(onl:287) 19%(onl:285) 19%(onl:289)
0.9  10.0.0.140   5.0.4-30  ONLINE fullaccess mhpu+0hpu+0hpu   0 false   0.03 5997128   143490  20.4%  21%(onl:294) 20%(onl:287) 19%(onl:296) 20%(onl:295)
0.A  10.0.0.141   5.0.4-30  ONLINE fullaccess mhpu+0hpu+0hpu   0 false   0.22 5997392   144134  20.8%  21%(onl:295) 20%(onl:297) 20%(onl:293) 20%(onl:297)
0.B  10.0.0.142   5.0.4-30  ONLINE fullaccess mhpu+0hpu+0hpu   0 false   0.03 6000868   140330  19.8%  21%(onl:287) 19%(onl:285) 19%(onl:285) 19%(onl:284)
0.C  10.0.0.143   5.0.4-30  ONLINE fullaccess mhpu+0hpu+0hpu   0 false   0.21 5999676   144497  20.4%  21%(onl:293) 20%(onl:292) 20%(onl:288) 20%(onl:291)
Srvr+Root+User Modes = migrate + hfswriteable + persistwriteable + useraccntwriteable
 
All reported states=(ONLINE), runlevels=(fullaccess), modes=(mhpu+0hpu+0hpu)
System-Status: ok
Access-Status: full
 
Last checkpoint: cp.20130307074458 finished Thu Mar  7 16:45:17 2013 after 00m 18s (OK)
Last GC: finished Thu Mar  7 09:18:58 2013 after 03m 58s >> recovered 13.55 GB (OK)
Last hfscheck: finished Thu Mar  7 12:22:57 2013 after 22m 25s >> checked 6521 of 6521 stripes (OK)
 
Maintenance windows scheduler capacity profile is active.
  The backup window is currently running.
  Next backup window start time: Fri Mar  8 17:00:00 2013 KST
  Next blackout window start time: Fri Mar  8 09:00:00 2013 KST
  Next maintenance window start time: Fri Mar  8 12:00:00 2013 KST

 

아바마 서비스 상태 확인

root@ava0-util:~/#: dpnctl status
dpnctl: INFO: gsan status: ready
dpnctl: INFO: MCS status: up.
dpnctl: INFO: EMS status: up.
dpnctl: INFO: Backup scheduler status: up.
dpnctl: INFO: dtlt status: up.
dpnctl: INFO: Maintenance windows scheduler status: enabled.
dpnctl: INFO: Maintenance cron jobs status: enabled.
dpnctl: INFO: Unattended startup status: disabled.

 

아바마 노드의 Filesystem 공간이 90% 미만인지 확인 (data01 ~ data04 해당)

root@ava0-util:~/#: mapall --parallel df -h
Using /usr/local/avamar/var/probe.xml
(0.0) ssh  -x  root@10.0.0.131 'df -h'
(0.1) ssh  -x  root@10.0.0.132 'df -h'
(0.2) ssh  -x  root@10.0.0.133 'df -h'
(0.3) ssh  -x  root@10.0.0.134 'df -h'
(0.4) ssh  -x  root@10.0.0.135 'df -h'
(0.5) ssh  -x  root@10.0.0.136 'df -h'
(0.6) ssh  -x  root@10.0.0.137 'df -h'
(0.7) ssh  -x  root@10.0.0.138 'df -h'
(0.8) ssh  -x  root@10.0.0.139 'df -h'
(0.9) ssh  -x  root@10.0.0.140 'df -h'
(0.10) ssh  -x  root@10.0.0.141 'df -h'
(0.11) ssh  -x  root@10.0.0.142 'df -h'
(0.12) ssh  -x  root@10.0.0.143 'df -h'
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5             7.8G  2.6G  4.9G  35% /
/dev/sda1             122M   13M  103M  11% /boot
/dev/sda9             316G   72G  228G  24% /data01
/dev/sdb1             338G   69G  252G  22% /data02
/dev/sdc1             338G   70G  251G  22% /data03
/dev/sdd1             338G   69G  252G  22% /data04
none                  2.0G     0  2.0G   0% /dev/shm
/dev/sda8             1.5G   88M  1.3G   7% /var
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5             7.8G  2.3G  5.2G  31% /
/dev/sda1             122M   13M  103M  11% /boot
/dev/sda9             316G   73G  226G  25% /data01
/dev/sdb1             338G   70G  251G  22% /data02
/dev/sdc1             338G   71G  250G  22% /data03
/dev/sdd1             338G   71G  250G  23% /data04
none                  2.0G     0  2.0G   0% /dev/shm
/dev/sda8             1.5G   88M  1.3G   7% /var
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5             7.9G  2.1G  5.5G  28% /
/dev/sda1             122M   13M  103M  12% /boot
/dev/sda9             321G   72G  249G  23% /data01
/dev/sdb1             344G   71G  273G  21% /data02
/dev/sdc1             344G   71G  273G  21% /data03
/dev/sdd1             344G   71G  273G  21% /data04
none                  3.0G     0  3.0G   0% /dev/shm
/dev/sda8             1.5G   84M  1.4G   6% /var
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5             7.8G  2.3G  5.2G  31% /
/dev/sda1             122M   13M  103M  11% /boot
/dev/sda9             316G   74G  226G  25% /data01
/dev/sdb1             338G   71G  250G  23% /data02
/dev/sdc1             338G   71G  250G  23% /data03
/dev/sdd1             338G   71G  250G  22% /data04
none                  2.0G     0  2.0G   0% /dev/shm
/dev/sda8             1.5G   94M  1.3G   7% /var
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5             7.8G  2.3G  5.2G  31% /
/dev/sda1             122M   13M  103M  11% /boot
/dev/sda9             316G   70G  230G  24% /data01
/dev/sdb1             338G   67G  254G  21% /data02
/dev/sdc1             338G   67G  254G  21% /data03
/dev/sdd1             338G   67G  254G  21% /data04
none                  2.0G     0  2.0G   0% /dev/shm
/dev/sda8             1.5G   88M  1.3G   7% /var
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5             7.9G  2.3G  5.3G  30% /
/dev/sda1             122M   13M  103M  11% /boot
/dev/sda9             321G   70G  251G  22% /data01
/dev/sdb1             344G   70G  274G  21% /data02
/dev/sdc1             344G   70G  274G  21% /data03
/dev/sdd1             344G   70G  274G  21% /data04
none                  2.0G     0  2.0G   0% /dev/shm
/dev/sda8             1.5G   86M  1.4G   6% /var
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5             7.9G  2.3G  5.3G  30% /
/dev/sda1             122M   13M  103M  11% /boot
/dev/sda9             321G   74G  248G  23% /data01
/dev/sdb1             344G   70G  274G  21% /data02
/dev/sdc1             344G   71G  273G  21% /data03
/dev/sdd1             344G   71G  273G  21% /data04
none                  2.0G     0  2.0G   0% /dev/shm
/dev/sda8             1.5G   90M  1.4G   7% /var
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5             7.9G  2.2G  5.4G  29% /
/dev/sda1             122M   13M  103M  12% /boot
/dev/sda9             321G   70G  252G  22% /data01
/dev/sdb1             344G   71G  273G  21% /data02
/dev/sdc1             344G   70G  274G  21% /data03
/dev/sdd1             344G   70G  274G  21% /data04
none                  3.0G     0  3.0G   0% /dev/shm
/dev/sda8             1.5G   83M  1.4G   6% /var
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5             7.9G  2.2G  5.4G  29% /
/dev/sda1             122M   13M  103M  12% /boot
/dev/sda9             321G   70G  251G  22% /data01
/dev/sdb1             344G   70G  274G  21% /data02
/dev/sdc1             344G   69G  275G  21% /data03
/dev/sdd1             344G   70G  274G  21% /data04
none                  3.0G     0  3.0G   0% /dev/shm
/dev/sda8             1.5G   83M  1.4G   6% /var
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5             7.9G  2.2G  5.4G  29% /
/dev/sda1             122M   13M  103M  12% /boot
/dev/sda9             321G   71G  251G  22% /data01
/dev/sdb1             344G   70G  274G  21% /data02
/dev/sdc1             344G   70G  274G  21% /data03
/dev/sdd1             344G   71G  274G  21% /data04
none                  3.0G     0  3.0G   0% /dev/shm
/dev/sda8             1.5G   83M  1.4G   6% /var
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5             7.9G  2.2G  5.4G  29% /
/dev/sda1             122M   13M  103M  12% /boot
/dev/sda9             321G   73G  249G  23% /data01
/dev/sdb1             344G   72G  272G  21% /data02
/dev/sdc1             344G   72G  272G  21% /data03
/dev/sdd1             344G   72G  272G  21% /data04
none                  3.0G     0  3.0G   0% /dev/shm
/dev/sda8             1.5G   83M  1.4G   6% /var
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5             7.9G  2.2G  5.4G  29% /
/dev/sda1             122M   13M  103M  12% /boot
/dev/sda9             321G   71G  250G  23% /data01
/dev/sdb1             344G   71G  273G  21% /data02
/dev/sdc1             344G   71G  273G  21% /data03
/dev/sdd1             344G   72G  272G  21% /data04
none                  3.0G     0  3.0G   0% /dev/shm
/dev/sda8             1.5G   83M  1.4G   6% /var
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5             7.9G  2.2G  5.4G  29% /
/dev/sda1             122M   13M  103M  12% /boot
/dev/sda9             321G   69G  252G  22% /data01
/dev/sdb1             344G   69G  275G  20% /data02
/dev/sdc1             344G   69G  275G  21% /data03
/dev/sdd1             344G   69G  275G  20% /data04
none                  3.0G     0  3.0G   0% /dev/shm
/dev/sda8             1.5G   83M  1.4G   6% /var

 

 
 
 

1.Linux OS란

OS는 내부적으로는 컴퓨팅 하드웨어 자원을 관리, 제어하고 사용자에게는 하드웨어를 편하게 사용할 수 있도록 화면, 명령어(인터페이스)를 제공한다.

 

1)기능 : 프로세스 관리, 인터럽트, 메모리 관리, 파일 시스템, 장치드라이버, 네트워크, 보안, 입출력
2)목적

. 다양한 HW(CPU, Memory, Disk, Keyboard, Mouse, 등)를 연결 (확장성)
. 프로그램 개발시 HW이해가 필요한데 이해하는 수고를 덜어줌 (편의성) 
. 안정적인 HW자원을 활용하는 Multi Tasking, Time Sharing 기능 등 제공 (효율성)

3)구성 요소

 

구성요소 설명
Kernel .각종 자원(CPU, Memory, Disk 등) 관리
.여러 명령어에 대한 CPU Scheduling
.부팅 후 종료 시까지 메모리의 적재
Shell .사용자 및 응용프로그램과 OS의 인터페이스를 담당
.CLI(Command Line Interface), GUI(Graphic User Interface) 존재
File System .데이터의 저장,수정, 삭제를 가능하게 해줌
.물리적 디스크의 용량을 효율적으로 사용
.저장된 데이터에 접근 할 수 있는 방법 제공

 

 

 

 

2.커널(Kernel)

OS의 기본 구성 요소로 커널이 없으면 OS는 작동하지 않는다. 커널은 시스템 리소스를 관리하고 하드웨어와 통신하며 메모리, 프로세스, 파일 관리를 담당한다.

 

1)기능

-프로세스 처리에 필요한 HW자원을 관리하는 OS의 핵심 부분
-서버의 부팅 시부터 종료 시까지 계속 Memory에 상주해 있는 프로그램
2)역할

-자원 관리
 . 한정된 시스템 자원(CPU, Memory)을 효율적으로 관리하여 프로그램의 실행을 원활하게 함
 . Scheduling : 프로세스가 처리될 순서를 관리
-하드웨어 추상화(hardware abstraction)
 . 다양하고 복잡한 하드웨어를 제어하기 위해 추상화하여 일관성 있는 인터페이스 제공
  (※추상화 : 같은 종류의 장비에 대해 공통의 명령어를 제공하는 디바이스 드라이버 소프트웨어)
-보안
 . Kernel 영역과 사용자 영역을 분리항 사용자 프로세스는 커널 영역에 접근하지 못하게 함
 . 사용자 프로세스는 System Call을 통해 간접적으로 커널을 호출

3)동작

-파일 시스템: Disk를 File이라는 개념으로 제공


-작업 관리자: 물리적 자원(CPU)를 작업(Task)이라는 추상적 자원으로 제공


-메모리 관리자: Memory를 세그먼트나 페이지 개념으로 제공


-디바이스 관리자: 각종 장치의 디바이스 드라이버를 통해 일관되게 접근하도록 제공

 

-네트워크 관리자: 네트워크 장치를 소켓이라는 개념으로 제공

 

 

 

①프로세스는 System Call(시스템호출)을 통해 커널을 호출한다.
②하드웨어는 인터럽트를 통해 커널에 신호를 보낸다.
③그 사이에서 작업관리자(CPU 관리), 메모리관리자, 파일시스템(파일시스템관리), 디바이스관리자, 네트워크관리자가 Kernel의 역할을 수행한다.

※리눅스 Kernel 위치 : /usr/src/kernels (ex : /usr/src/kernels/3.10.0-862.el7.x86_64)

 

4)종류

단일형 커널(monolithic kernel), 마이크로커널(microkernel), 혼합형 커널(hybrid kernel), 엑소커널(exokernel), 나노커널(nanokernel) 등 여러종류가 있지만, 그 중 단일형 커널, 마이크로커널, 혼합형 커널이 많이 알려져 있다.

단일형 커널과 마이크로 커널 구조

구분 설명
단일형 커널
(monolithic kernel)
*개발자의 단순함에서 시작, 커널 내부에서의 프로시저 호출등이 간단하게 이루어진다.
.입출력, 네트웍크, 디바이스 자원 등 운영체제에서 일어나는 모든 일들을 1개의 커널이 모두 처리
.속도가 빠르고 디자인도 편리하지만, 커널의 크기가 증가함
.linux,  보통의 Unix계통, MS-DOS, Windows 9x(95, 98, ME), Mac OS 8.6 이하 버전 이 대상임
마이크로커널
(microkernel)
*유연성과 모듈화 감안 설계, 메시지 통신 방식의 비효율성에 의해 성능상의 단점을 가진다.
.시스템호출 같은 서비스, 디바이스 관리를 제외하여 안정성을 높이고 커널 크기도 줄인 디자인 방식
.안정성이 높고 보안도 높아지지만 전반적인 성능은 저하됨, 멀웨어 체크시 CPU과점을 함
.Mach, Minix, QNX, GNU Hurd, 심비안 이 대상임
혼합형 커널
(hybrid kernel)
.단일형 커널 + 마이크로터널 디자인
.NT 커널(Windows NT 3.1, 3.5, 4.0, 2000, XP, Vista, 7, 8, 8.1, 10, Windows Server 2003, 2003 R2, 2008, 2008 R2, 2012, 2012 R2, 2016), XNU(다윈[Darwin]커널과 이에 기반을 둔 Mac OS, iOS 등-BSD의 단일형 커널과 마하커널을 서로 합친 형태), BeOS, Plan 9

4)파라미터(Parameter)

리눅스에서 사용되는 시스템 변수들을 의미하며, 커널 변수 값을 제어하여 시스템을 운영 용도에 맞게 최적화 할 수 있는 설정으로
커널 매개변수의 위치는 /proc/sys 디렉토리 밑에 존재하고 커널 파라미터의 절대경로 수정을 통해 설정 변경도 가능하지만

sysctl을 통해서 쉽게 설정할 수 있다.

-시스템 최적화를 위해 커널에서 사용하는 변수의 값을 제어
-응용프로그램이나 DB에 따라 권고 파라미터 제공

 

[파라미터 확인 및 변경방법]

①확인 방법

# sysctl -a
# sysctl | grep -w

②변경 방법

- 현재 파라미터 변경(리부팅 후에는 원복)
# sysctl -w [파라미터명]=[값]    (예: # sysctl -w kernel.panic=10)
- 리부팅 후에도 반영되도록 설정(현재 파라미터는 변경되지 않음)
# vi /etc/sysctl.conf       ([파라미터명]=[값] 포맷으로 수정 또는 추가)
- 수정된 sysctl.conf내의 값을 불러와서 적용
# sysctl -p

※-p 옵션 : /etc/sysctl.conf만 변경시 적용
  --system 옵션 : /etc/sysctl.conf설정외 연관된 모든 경로의 설정에 따로 추가시 적용
            (/run/sysctl.d/*.conf, /etc/sysctl.d/*.conf, /usr/local/lib/sysctl.d/*.conf,
             /lib/sysctl.d/*.conf, /etc/sysctl.conf)

sysctl --system 옵션적용 방법

 

3.쉘(Shell)

운영체제에서 제공하는 명령을 실행하는 프로그램으로 Interpreter(번역기) 역할을 하는 것으로 시스템으로 지원하는 명령어들의 집합을 묶어서 프로그램화한 것이다. CLI(Command Line Interface)와 GUI(Graphic User Interface)가 존재하며 Shell종류는 다양하고, Unix계열도 GUI를 가지고 있다.

1)역할
-리눅스 커널과 사용자 사이에서 인터페이스를 담당
-사용자가 입력하는 명령을 읽어 해석하고 커널에 전달 (command Interpreter)

명령 처리 절차

※ Shell은 사용자의 불편함을 해소하기 위해 만들었으며, 만약 Shell이 없다면 단순히 파일복사를 수행하기 위해서도 프로그램을 직접 짜거나 커널의 해당 명령어(또는함수)를 찾아봐야 할 것이다.

 

2)기능

-사용자가 입력한 명력어를 해석하여 시스템 기능을 실행하거나 다른 프로그램을 실행
-프로그래밍 기능(Shell Script)
-사용자 환경 설정(Shell 변수, 환경 변수)

 

3)종류

Shell
계열
이름 설명 특징
bourne Shell

 Bourne Shell
(sh)
.가장 기본적인 쉘로 유닉스의 초기부터 사용되어 온 쉘이다.
.스크립트를 지원한다.
.단점 : 별칭(alias)이나 히스토리 등의 기능이 없음
.1974년 Stephen Bourne(스티브 본)이 개발한 최초의 쉘(Shell) 이다. 대부분의 리눅스에 기본적으로 설치가 되어있다
.설치 위치 : /bin/sh (프롬프트 : $)
Bourne-again shell 
(bash)
.리눅스에서 가장 많이 사용되는 쉘이다.
.C 쉘과korn shell의 장점을 결합해 작성, Bourne Shell 문법의 명령어 셋을 제공하여 Bourne Shell과 호환되는 쉘로 GNU 프로젝트에 의해 만들어지고 배포된다.
.명령행 편집기능을 제공한다.
.1989본셸을 기반으로 GNU 프로젝트를 위해 Brian Fox'(브라이언 폭스) 가 개발한 쉘이다. Linux 표준 쉘로 채택 (리눅스에서 가장 많이 사용하는 쉘)됨.
.설치 위치:  /bin/bash, /bash/sh (프롬프트 : $)
korn shell
(ksh)
.본 쉘의 명령어를 모두 인식하며, 명령어 히스토리(history) 기능과 엘리어스(alias), 작업 제어 등의 기능이 추가되었다.
.유닉스에서 가장 많이 사용되는 쉘이다.
.명령어 완성 기능, 히스토리 기능 지원한다.
.1983년 벨 연구소의 데이비드 콘이 개발한 유닉스 셸로 유닉스에서 가장 많이 사용되는 본 쉘을 확장한 쉘
.Bourne 쉘의 상위 버젼. Bourne 쉘 및 C 쉘의 좋은 특성들을 결합. 
.설치 위치 : /bin/ksh (프롬프트 : $)

z shell
(zsh)
.Bourne Shell의 확장 버전으로, 지금까지의 수 많은 쉘(Shell) 들의 기능을 포함한 많은 새로운 기능과 플러그인 및 테마 지원을 제공한다 .1990년에 Paul Falstad(폴 폴스타드) 가 zsh의 최초 버전을 작성
.확장형 본쉘, 콘쉘의 재작성 쉘
강력한 history 기능
향상된 명령행 편집 기능
.설치 위치 : /bin/zsh (프롬프트 : #)

C Shell C Shell
(csh)
.C언어 위주의 쉘로 처음 작성되었을 때에는 Bourne Shell이 가지고 있지 못한 기능들(작업제어, 명령어 히스토리 등)을 가지고 있었기 때문에 많이 사용되었다.
.명령행 편집기능을 제공하지 않는다.
.1978년  Bill Joy(빌 조이)가 개발
.본쉘의 사용성을 높인 쉘 대화형 작업에 강점을 지님
.설치 위치 : /bin/csh (프롬프트 : %)
C언어의 특징을 많이 포함함
히스토리, 별명, 작업 제어 등의 기능 포함
대부분의 대형 검퓨터용 유닉스에서, C 쉘 또는 TC 쉘(C 쉘의 확장본)이 보편적으로 사용됨
tc shell,
tee-see-shell
(tcsh)
.C Shell 에서 명령 행 완성과 명령 행 편집 기능을 추가한 것
.일반적인 C 쉘이며 사용자 중심이고 속도가 빠르다.
.1981년 Ken Greer(켄 그리어)가 개발
.csh의 기능을 강화한 쉘
.설치 위치 : /bin/tcsh (프롬프트 : >)
확장 C쉘로, BSD 계열에서 가장 많이 사용
명령어 편집 기능 제공

※ 리눅스 환경에서는 기본적으로 Bourne shell을 기반으로 한 Bash shell 주로 사용되고,

  유닉스에서는 기본적인 본 쉘의 기능을 확장한 korn shell이나 C shell이 많이 사용된다.

Shell별  특징

4)쉘 변경방법
- 현재 사용 중인 쉘 확인하기
   $ echo $SHELL 명령어를 실행하여 현재 사용 중인 쉘을 확인할 수 있다.
- 사용 가능한 쉘 확인하기: 
   $ cat /etc/shells 명령어를 실행하여 시스템에 설치된 사용 가능한 쉘 목록을 확인할 수 있다.
- 새로운 쉘 선택하기: 
   $ chsh 명령어를 실행하여 로그인 쉘을 변경할 수 있다. 
     (예: 새로운 쉘로 Bash를 변경할 경우 #chsh -s /bin/bash)
- 새로운 쉘로 변경 후 로그아웃 및 재로그인

  . 새로운 쉘을 선택하면 로그아웃하고 다시 로그인하면 변경된 쉘을 사용할 수 있다.

※참고로, 쉘을 변경하는 것은 시스템에 영향을 미칠 수 있으므로, 신중하게 선택해야 합니다. 또한, 쉘을 변경하더라도, 이전 쉘에서 작성한 쉘 스크립트나 환경 변수 등은 새로운 쉘에서 사용할 수 없으므로, 필요한 작업을 다시 수행해야 한다.

 

5)필요한 shell 명령

- 현재 사용 중인 쉘의 위치 확인

  $ echo $SHELL

- 사용 가능한 쉘 확인
  $ cat /etc/shells
- 사용자별 로그인시 사용하는 쉘 확인(사용자 로그인 쉘)
  $ cat /etc/passwd

  (예: user01:x:5010:5000:/home/user01 /bin/bash → user01은 bash 쉘사용)

- 현재 사용중인 shell확인, 여러 줄이 나올 경우 echo $$ 결과와 동일한 PID확인

  $ ps $$
- 로그인Shell 변경명령: chsh
  # chsh

6)Shell 명령 실행순서

- Shell에서 명령어 입력을 통해 실행되는 순서
  ①Alias ②Shell 예약어 ③Function ④내장 명령어 ⑤파일시스템 명령

- 실행되는 명령어가 어떤 기능인지 type 명령어로 확인 가능
  # type [명령어]

기능 설명
①Alias  .옵션을 포함한 특정 명령을 짧고 쉬운 명령으로 대체
.위험한 명령을 잘못 발행하는 것을 대비하기 위해 명령어 대체
.# alias 명령어로 현재 shell 세션에 적용된 alias 확인
.예: # alias SHELL='cd /src/root/shell'
     # alias rm='rm -i'
②Shell 예약어 .파일로는 존재하지 않지만 Shell이 특별한 목적을 위해 예약해 둔 단어
.do, while, else 등
.shell 스크립트 작성에 사용
.예: 
while true
do
    sleep 5
    df -h /logs01
done
③Function .일련의 명령어를 함수로 정의
.# set 명령어로 현재 shell 세션에 적용된 function 확인
.예:
function reboot {
    echo "check target is  : $(hostname)"
    echo "Enter HOSTNAME to proceed?"
    read sure
    if [$sure = "$(uname -n)"]; then
       $(which reboot)
    else
       echo Cancelled.
    fi
}
④내장 명령어  .shell에 통합된(Built in) 명령
.일부는 명령어 파일이 /usr/bin에 존재하지만, 실제 수행되는 것은 내장 명령임
.예: cd, echo, exit, fg, history, pwd 등
# find / -name exit
(결과 없음)
.RHEL에서 cd 명령어의 메뉴얼 페이지를 보면 내장 명령에 대한 전체적인 메뉴얼이 출력
$ man cd
⑤파일시스템 명령 .실제 파일로 존재하는 명령
.경로를 지정해 줘야 실행됨
.환경변수 $PATH에 경로가 포함되어 있으면 경로 없이 실행
.$PATH는 왼쪽부터 순차적으로 탐색
.예:
$PATH에 명령어의 경로가 있으면 바로 실행
# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin/bin:/usr/sbin:/usr/bin:/root/bin

#date
Sun Jan 10 20:21:16 KST 2010

$PATH에 명령어의 경로가 없다면 절대 경로 또는 상대 경로까지 입력 필요
# /src/root/shell/CheckTD.sh
또는 
# cd /src/root/shell/
# ./CheckTD.sh

1. 개념

Cron/Crontab은 원하는 시간에 명령(프로그램)을 시키기 위한 데몬이다.
서버는 늘 깨어있다는 것을 이용한 최대한의 활용법이 될 수 있다.

    - 내가 새벽 3시에 서버에 특정 작업을 해줘야하는데 그 때 깨어있을 수 있는가?
    - 또는 30분 간격으로 HDD의 사용량을 운영자에게 알리도록 해야한다면?
    - 매월 초에 자료를 백업 받고 싶다면?

바로 이럴 때 cron은 최고의 해결책을 제시한다.
cron은 항상 지정한 시간이 되었는지 확인을 하여 해당 명령어을 실행하는 것이다.

시스템의 최적화의 기법은 일정 시간 단위로 최대한의 성능을 발휘하도록 도와주는 것이다.
즉, 주기적으로 운영 중에 만들어진 필요하지 않는 임시 파일을 정리하거나, 운영체제 운영에 필요한 데이터를 갱신하는 등의
작업을 통해 리눅스가 최적의 상태를 유지할 수 있게 할 수 있다

 

2. 사전 확인 사항

1)  Cent OS에서 crontab이 없을 경우 (PGM 설치)

# crontab -l
-bash: crontab: command not found

 

# sudo yum install cronie
Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile
* base: mirror.web-ster.com
* updates: mirror.stanford.edu
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package cronie.x86_64 0:1.4.4-12.el6 will be installed
--> Processing Dependency: dailyjobs for package: cronie-1.4.4-12.el6.x86_64
--> Running transaction check
---> Package cronie-anacron.x86_64 0:1.4.4-12.el6 will be installed
--> Processing Dependency: crontabs for package: cronie-anacron-1.4.4-12.el6.x86_64
--> Running transaction check
---> Package crontabs.noarch 0:1.10-33.el6 will be installed
--> Finished Dependency Resolution
                                       
Dependencies Resolved
================================================================================
Package                        Arch      Version           Repository     Size
================================================================================
Installing:                            
cronie                         x86_64    1.4.4-12.el6      base           73 k
Installing for dependencies:           
cronie-anacron                 x86_64    1.4.4-12.el6      base           30 k
crontabs                       noarch    1.10-33.el6       base           10 k
                                       
Transaction Summary                    
==========================================================
Install       3 Package(s)              
                                                
Total download size: 114 k                      
Installed size: 220 k                           
Is this ok [y/N]: y                             
Downloading Packages:                           
(1/3): cronie-1.4.4-12.el6.x86_64.rpm                         |  73 kB     00:00
(2/3): cronie-anacron-1.4.4-12.el6.x86_64.rpm                 |  30 kB     00:00
(3/3): crontabs-1.10-33.el6.noarch.rpm                        |  10 kB     00:00
--------------------------------------------------------------------------------
Total                                                336 kB/s | 114 kB     00:00
Running rpm_check_debug                         
Running Transaction Test                        
Transaction Test Succeeded                      
Running Transaction                             
  Installing : cronie-1.4.4-12.el6.x86_64                   1/3
  Installing : crontabs-1.10-33.el6.noarch                  2/3
  Installing : cronie-anacron-1.4.4-12.el6.x86_64                           3/3
  Verifying  : crontabs-1.10-33.el6.noarch                                  1/3
  Verifying  : cronie-anacron-1.4.4-12.el6.x86_64                           2/3
  Verifying  : cronie-1.4.4-12.el6.x86_64                                   3/3
                                                
Installed:                                      
  cronie.x86_64 0:1.4.4-12.el6                  
                                                
Dependency Installed:                           
  cronie-anacron.x86_64 0:1.4.4-12.el6            crontabs.noarch 0:1.10-33.el6

Complete!

 출처 : http://tecadmin.net/install-crontab-in-linux/#

 

* 설치 방법정리

1) Crontab 설치(CentOS)
* cron 설치
# sudo yum update -y
# sudo yum install -y cronie
* cron 시작
# sudo systemctl start crond
* cron systemctl 활성화
# sudo systemctl enable crond
*cron systemctl 등록 확인
# sudo systemctl list-unit-files | grep crond

2) Crontab 설치(Ubuntu)
* cron 설치
# sudo apt update -y
# sudo apt install -y cron
* cron 시작
# sudo service cron start
* cron systemctl 활성화
# sudo systemctl enable crond
*cron systemctl 등록 확인
# sudo systemctl enable cron.service

 

3. 설정 방법

1) Crontab 파일 위치 및 조회
작업 설정 파일을 Crontab 파일이라고 부르며, 이 파일의 위치는 OS별로 차이가 있다.
리눅스는 /var/spool/cron/ID, 솔라리스는 /var/spool/corn/crontabs/ID에 위치한다.
그럼 이 파일을 직접 수정해야 하는가? 그렇지 않다. crontab 명령을 통해 설정과 조회를 한다.

crontab 설정 파일을 새롭게 편집하고자 한다면 -e 옵션을 주고, 수정하기 전에 현재 등록된 내용을 보고자 한다면 -l 옵션을 사용하며, 등록된 내용을 삭제하려면 -d 옵션을 사용한다

설정 내용을 조회(-l 옵션).
$ crontab -l
no crontab for truefeel
설정한 적이 없어 아직 비어있다.

- /etc/crontab 파일
- /etc/rc.d/init.d/crond 스크립트
- /var/spool/cron 디렉토리 내의 크론 설정 파일들

2) Crontab 파일 형식

필드 의미 범위
첫번째 0-59
두번째 0-23
세번째 0-31
네번째 1-12
다섯번째 요일 0-7 (0 또는 7=일요일, 1=월, 2=화, ...)
여섯번째 명령어 실행할 명령을 한줄로 씀

- 모든 엔트리 필드는 공백으로 구분된다.
- 한 줄당 하나의 명령 (두줄로 나눠서 표시할 수 없음)
- # 으로 시작하는 줄은 실행하지 않는다.

ctrontab 설정/수정 (-e 옵션)
crontab -e을 하면 vi 에디터가 나온다(환경변수 EDITOR에 따라 다른 에디터를 사용할 수 있다).
 
$ crontab -e (예제)
# /home 디렉토리를 /BACKUP/home으로 백업 수행
# 30분, 새벽 4시와 낮 12시, 모든 일, 모든 월, 모든 요일
30 4,12 * * *  /usr/bin/rsync -avxH --delete /home /BACKUP/home > /dev/null 2>&1
#
# 파일/디렉토리 퍼미션 설정
# 40분, 새벽 1시, 매주 일요일
40 1 * * 0  /root/bin/perm_set.sh   > /dev/null 2>&1
#
위는 매일 4:30분과 12:30분에 rsync 명령을, 매주 일요일 1:40분에 perm_set.sh를 실행함을 의미한다.

3) 설정 예시

시간 설정에서 몇가지 의미있는 것들을 알아보자.
- *표시는 해당 필드의 모든 시간을 의미한다.
- 3,5,7와 같이 콤마(,)로 구분하여 여러 시간대를 지정할 수 있다.
- 2-10와 같이 하이픈(-)으로 시간 범위도 지정할 수 있다.
- 2-10/3와 같이 하이픈(-)으로 시간 범위를 슬레시(/)로 시간 간격을 지정할 수 있다
  (2~10시까지 3시간 간격으로. 즉, 3, 6, 9시를 의미함)

실행 시간 형식 (양식: 분 시 일 월 요일 명령어)
매주 토요일 새벽 2:20   20  2 *  *  6  명령어
매일 오후 4,5,6시     0  4-6   *  *  *  명령어
매일 2시간 간격으로 5분대 5  */2 *  *  * 명령어
매월 1일 새벽 1:15  15  1   1  *  *  명령어
1,7월 1일 새벽 0:30  30  0   1  1,7  *  명령어
매분마다 * * * * * 명령어
월 ~ 금요일 매 5분마다 */5 * * * 1-5 명령어

   
4) /etc/crontab 파일로 설정
* 매시 1회 자동실행하기 위한 시스템 크론 설정

01 * * * * root run-parts /etc/cron.hourly
  → 매일 매시 01분마다 /etc/cron.hourly 디렉토리내에 존재하는 파일들을 실행


* 매일 1회 자동실행하기 위한 시스템 크론설정

02 4 * * * root run-parts /etc/cron.daily
 매일새벽 4시 02분마다 /etc/cron.daily  디렉토리내에 존재하는 파일들을 실행

 

* 매주 1회 자동실행하기 위한 시스템 크론설정

22 4 * * 0 root run-parts /etc/cron.weekly
 매주 일요일새벽 4시 22분마다 /etc/cron.weekly 디렉토리내에 존재하는 파일들을 실행

 

* 매월 1회 자동실행하기 위한 시스템 크론설정

42 4 1 * * root run-parts /etc/cron.monthly
매월 1일새벽 4시 42분마다 /etc/cron.monthly 디렉토리내에 존재하는 파일들을 실행


* root 이외의 사용자에게 crontab 명령어를 이용할 수 있게 하는 방법

 /etc/cron.allow 파일에 사용자의 id를 등록


* 일반사용자의 crontab 명령어사용을 제안하고자 한다면
 /etc/cron.deny 파일에 사용자의 id 를 등록

 

5. Crontab 서비스 관련 명령어

a) 현재 cron deamon이 돌고 있는지 확인
    ps -ef | grep cron
b) cron deamon kill
    kill -9 "pid of cron"
c) deamon 재실행
   /usr/sbin/cron
d) 명령어 위치
   /usr/bin/crontab
e) 사용형식 및 옵션
   crontab [ -u 사용자ID ] 파일
   crontab [ -u 사용자ID ] [-d 크론디렉토리] { -l | -r | -e }
    * -e : 크론탭 설정 입력 파일 (vi 에디터 활용, 설정 입력 후 :wq 로 저장)
       -l : 현재 크론탭에 설정되어 있는 내용 확인
      -r : 현재 크론탭에 설정되어 있는 내용 삭제

 

6. 기타

Crontab 에서 % 문자 사용할 경우 주의 사항
매번 할 때마다 동일한 실수가 계속 발생하여, 정리하여 기억하려고 적습니다.

 

해당 사항은 다음과 같습니다.  
cron을 이용해서, "같은 시간(새벽 4)에, 백업을 하는데, 해당 날짜에 맞는 로그 파일을 생성하고 결과를 저장하자" 입니다.
당연히, date 를 이용하여, date '+%e' 를 이용하면 해당 날짜가 나오니까 다음과 같이 생성하였습니다.

 

0 4 * * * /backupscript.sh > /var/log/backup_result_`date '+%e'`.txt 2>&1
로 생성하였습니다.

위 내용을 shell에서 동작시키면 정상적으로 잘 됩니다.

 

shell> /backupscript.sh > /var/log/backup_result_`date '+%e'`.txt 2>&1
그런데, cron에만 들어가면 아예 동작을 하지 않는 것입니다. 

바로 '%' 문자 때문입니다.

 

% 문자는 crontab에서는 개행 문자라서 계속 아무 동작도 하지 않는 것이었습니다.
사용하려면 escape(\) 문자를 사용해서 표현하셔야 합니다.

 

따라서 위 내용은 아래와 같이 수정했어야 합니다.
[잘못된 예]
0 4 * * * /backupscript.sh > /var/log/backup_result_`date '+%e'`.txt 2>&1

 

[수정본]
0 4 * * * /backupscript.sh > /var/log/backup_result_`date '+\%e'`.txt 2>&1

정리하면 다음과 같습니다.

crontab에서 %를 쓰려면, escape(\) 문자를 이용해야 함 



4. FAQ

1) cron 설정한 후에는 crond 데몬을 재실행해야 하나요?

    아닙니다. crontab -e 으로 설정 후 빠져나오면 바로 적용됩니다.
2) truefeel 사용자는 cron을 못 쓰게 하고 싶습니다.
    /etc/cron.allow : 허용할 사용자 ID 목록
    /etc/cron.deny  : 거부할 사용자 ID 목록
    cron.allow 파일이 있으면 이 파일에 들어있는 ID만 사용 가능
    cron.deny  파일이 있으면 이 파일에 들어있는 ID는 사용 불가
    따라서 cron.deny에 truefeel ID를 추가해주면 됩니다.
3) > /dev/null  2>&1 이 무슨 뜻입니까?
    지정한 명령어 처리 결과와 발생할지 모르는 에러메시지를 출력하지 않고 모두 버린다는(/dev/null)는
    뜻입니다. 만약 결과와 에러를 파일로 저장하려면 /dev/null 대신 파일명을 적어주면 됩니다.

4) crontab -r 했을 때 복구 및 백업 방법

  *복구 방법

   - /var/spool/mail/  폴더에 계정 메일로 날라오게 되어있다.
   - /var/log/cron 파일에 클론들의 로그들이 남는다.
     .cat cron | grep crond | grep CMD |less 등으로 클론 관련 자료만 뽑아서 다시작성하는 방법이있다.
   - /tmp/ 폴더 밑에 다른이름으로 남는 경우도 있다.

 *백업 방법

  - crontab에 매일 특정시간에 백업하도록 설정 (예: 매일 0시 0분에 백업설정)
   0 0 * * * crontab -l > /log/crontab_bak_`date +%Y%m%d%H%M'

 

 참고블로그 : https://luckys.tistory.com/162

 

 

 

+ Recent posts