본문 바로가기

Language&Configuration

(27)
[Linux] KVM 특징 및 설치 방법 - 커널 기반 가상 머신 KVM(Kernel-based Virtual Machine: 커널 기반 가상 머신)리눅스 커널을 기반으로 전가상화(full virtualization) 방식을 지원하는 오픈소스 하이퍼바이저전가상화(full virtualization): 물리적인 하드웨어 전체를 Hypervisor에서 가상화시켜 가상머신(GuestOS)에 제공하는 환경이다.KVM을 통해 Linux를 하이퍼바이저로 전환하여 호스트 머신이 게스트 또는 VM(가상머신) 등 독립된 가상 환경 여러 개를 실행할 수 있다.KVM은 레드헷 계열 리눅스, centos, fedora 기반 리눅스 등에 기본적으로 포함한다.리눅스에서 제공되는 것은 모두 KVM에도 제공된다.SELinux(Security-Enhanced Linux)와 sVirt(Secure V..
[Linux] NFS 개념, 구조, 동작원리 - 파일에 접근할 수 있도록 하는 분산 파일 시스템 프로토콜 NFS란 무엇인가? NFS개념NFS는 클라이언트 컴퓨터가 로컬에 저장된 것처럼 네트워크를 통해 파일에 접근할 수 있도록 하는 분산 파일 시스템 프로토콜인 Network File System의 약자이다. Sun Microsystems 사람에 의해 개발되었으며 이후 유닉스 및 리눅스 환경에서 파일 공유를 위해 널리 사용되는 프로토콜이 되었다.NFS의 기본 개념은 서버가 네트워크상의 클라이언트에게 하나 이상의 디렉토리를 공유하는 것이라고 생각하면 된다.클라이언트는 공유된 디렉토리를 자체 시스템에 마운트하고 로컬인 것처럼 해당 디렉토리 내의 파일에 접근할 수 있다.따라서 여러 사용자가 시스템 간에 파일을 물리적으로 전송하지 않고도 네트워크를 통해 파일에 접근하고 공유할 수 있다.조금 더 자세히 들어가 보면 NF..
[Linux] htpasswd 사용법 - 아파치 사용자 인증 파일 생성 및 관리 htpasswd아파치 사용자 인증 파일을 생성하고 관리해주는 명령이다.사용법htpasswd [option] 계정파일 사용자명주요 옵션옵션설명-c사용자 계정 파일을 생성할 때 사용하는 옵션으로 계정 생성할 때 한 번은 반드시 사용해야 한다.사용 예① test이라는 계정을 생성하고, 관련 정보 파일은 /usr/local/apache/conf/password에 생성한다.htpasswd -c /usr/local/apache/conf/password test② test이라는 계정을 생성한다.htpasswd /usr/local/apache/conf/password test htpasswd를 통해 웹페이지에 아이디, 비밀번호 설정하기1. httpd 설정 파일 수정htpasswd를 걸고 싶은 위치의 설정으로 해당 내용..
[Linux] RPM 개념 및 사용법 - 레드햇 패키지 설치 관리 도구 RPM (RedHat Package Manager)RPM이란 RedHat Package Manager의 약자로 레드햇 계열의 리눅스 배포판에서 사용하는 프로그램(패키지) 설치 관리 도구입니다. 현재는 RPM Package Manager의 재구적 약자로 사용되어지고 있습니다. 오픈소스 진영 특유의 유머가 느껴지는 약자로 GNU의 GNU is Not Unix 와 같은 원리라고 볼 수 있습니다. RPM 등장 배경초기의 리눅스에서는 모든 패키지를 tar와 gzip으로 묶인 소스 파일을 가지고 직접 컴파일 한 후에 수동으로 설치해야 했습니다.  이때 만약 A라는 패키지(프로그램)을 개발하는데에 B라는 패키지가 사용되었다면 B패키지를 먼저 수동으로 설치 후 A패키지를 수동으로 설치해 주어야 했습니다. 만약 하나의 ..
[Linux] rsyslog 개념 및 사용법 - 로그 수집, 분석, 모니터링 개 요리눅스 서버를 운영하며, 로그를 수집하고 확인하는 것은 굉장히 중요한 부분입니다.  로그를 통해 시스템 문제를 검토하고 모니터링하여 문제를 해결할 수 있습니다. 물리적 장치나 애플리케이션 / 데몬 / 네트워크나 커널 등의 여러 로그가 서버에서 생성되고 있습니다.  이런 로그를 빠르고 효율적으로 관리, 저장하는 것이 필요합니다.Rsyslog: Rocket Fast System for Log processingrsyslog는 서버 내에 생성되는 다양한 로그를 로그파일이나 콘솔, 또는 외부 서버로 저장할 수 있게 해주는 프로그램입니다. 가장 널리 사용되는 오픈 소스 로깅 프로그램이며, CentOS 7 또는 RHEL 7의 기본 로깅 서비스이기도 합니다.https://www.rsyslog.com/doc/ma..
[Liunx] Crontab 명령어사용법 - 정기적으로 스케줄러 실행하기 크론탭이란?특정 시간에 프로그램을 실행시키기 위해 사용하며, 윈도우 스케줄러와 비슷한 기능을 한다.매일 혹은 정기적으로 실행해야 하는 예약작업이 있다.리눅스에서는 이런 일을 해 주는 것이 cron이다.cron은 간단한 텍스트 파일에 할 일들을 기록하는데, 관리자인가 아닌가에 따라서 기록할 곳이 달라진다.관리자 권한이 있다면 /etc/crontab 파일에 기록한다.이 파일에 기록하면 한 눈에 예약 작업을 확인할 수 있다는 장점이 있고, 명령을 실행할 사용자도 명시할 수 있다. 관리자 권한이 없다면 crontab -e 명령어를 실행해서 예약 파일을 편집한다./etc/crontab 파일을 편집할 때와 달리 실행할 주체를 명시하는 부분이 없다. root 권한 있는 경우 - /etc/crontab 편집root 권..
[Linux] iptables 명령어 사용법 - 리눅스 상에서 방화벽 설정하기 1. iptables ?iptables는 리눅스상에서 방화벽을 설정하는 도구로서 커널 2.4 이전 버전에서 사용되던 ipchains를 대신하는 방화벽 도구이다. iptables는 커널상에서의 netfilter 패킷필터링 기능을 사용자 공간에서 제어하는 수준으로 사용할 수 있다.패킷 필터링이란 지나가는 패킷의 해더를 보고 그 전체 패킷의 운명을 결정하는 것을 말한다. 일반적으로 패킷은 해더와 데이터를 가진다. 해더에 필터링할 정보인 출발지 IP:PORT, 도착지 IP:PORT, checksum, 프로토콜 옵션 등을 가지며 데이터는 각 각의 전송 데이터가 들어간다.특정 조건을 가지고 있는 패킷에 대해 허용(ACCEPT)과 차단(DROP)등을 지정할 수 있으며, 특정 조건 등을 통해 다양한 방식의 패킷 필터링..
[Linux] rsync 명령어 사용법 - 데이터 백업하기 A. 개요rsync 는 Remote Sync 의 약자로, 빠른 증분 파일 전송을 제공하는 오픈소스 유틸리티입니다.전송 시 네트워크 대역폭을 최소화하는 delta encoding algorithm 을 구현하여 rcp나 scp 보다 훨씬 빠르고 효율적으로 데이터를 동기화할 수 있습니다.rsync 를 통해 서버 간의 동기화나 백업을 진행할 수 있습니다.root 권한이 필요 없고, 익명 사용자(anonymous)를 지원합니다.심볼릭 링크, 디바이스, 소유자, 그룹, 허가권 등을 복사할 수 있고, exclude, exclude-from 옵션 또한 지원합니다.client와 server 프로그램이 모두 포함되어 있으며, server로 구동 시 TCP의 873 포트를 사용합니다.server 구동 시 SSH 나 RSH ..
[Linux] tcpdump 명령어 사용법 - 송수신되는 패킷 정보 출력하기 tcpdump란 무엇인가?리눅스/유닉스 계열 OS에서 조건식에 만족하는 네트워크를 통해 송수신 되는 패킷 정보를 표시해주는 프로그램입니다. tcpdump 사용 방법과 다양한 옵션 등프롬프트에서 tcpdump 명령을 입력해서 사용합니다. 다양한 옵션이 존재하고 조건부 부분에 표현 방식과 범위를 정해 다양한 형식으로 표현할 수 있습니다.# tcpdump [옵션] [조건부] 다양한 옵션-c 숫자지정한 수 만큼 출력-i 네트워크 인터페이스지정한 네트워크 인터페이스를 경유하는 패킷을 출력-w file출력한 패킷 정보를 파일로 만든다-r filew 옵션으로 만든 파일을 읽는다-v패킷 내용을 상세히 본다표현 방식그리고and&&또는or||아니다not!범위 방식네트워크network, mask출발지src목적지dst포트po..
[Linux] rdate/ntpdate 명령어 사용법 - 시간 동기화하기 1. rdate 개요rdate 명령어는 리눅스 시간을 timeserver와 동기화하는 명령어입니다.리눅스는 서버로 운영되는 경우가 많은데 서버 시간은 서버에서 동작하는 여러 서비스에 영향을 주게 되기 때문에 항상 정확한 시간 정보를 유지하는 것이 좋습니다.정확한 시간 정보 유지를 위해 타임서버(Time Server)의 시간 정보를 불러와서 기준 시간으로 삼을 수 있습니다.2. 사용법rdate 명령어에 필요한 argument들의 대한 usage 정보는 rdate 라고만 입력하고 실행하면 볼 수 있습니다.Usage: rdate [-s] [-p] [-u] [-l] [-t sec] ...기본 사용법은 아래와 같습니다.rdate -s timeservertimeserver 에 시간 서버 주소를 넣어주면 해당 서버와..
[Linux] chmod 명령어 사용법 - 파일 권한 변경하기 1. 개 요chmod 명령어는 리눅스의 파일이나 디렉토리의 권한을 변경하는 명령어입니다. 2. 사용법리눅스에서 사용되는 명령어는 모두 대소문자를 구분합니다.Usage:chmod [OPTION]... MODE[,MODE]... FILE...or:chmod [OPTION]... OCTAL-MODE FILE...or:chmod [OPTION]... --reference=RFILE FILE...Change the mode of each FILE to MODE.With --reference, change the mode of each FILE to that of RFILE.-c, --changes like verbose but report only when a change is made-f, --silent, -..
[Linux] kill 명령어 사용법 - 프로세스 안전하게 종료시키기 1. 개요kill 명령어는 강제로 종료시키는 명령어가 아닌 프로세스에 시그널(signal)을 보내는 명령어입니다.이름이 kill 인 이유는 어떤 시그널을 보낼 지 지정하지 않으면, 기본적으로 SIGTERM 시그널을 보내게 되는데 SIGTERM의 기본 동작이 프로그램 종료이기 때문입니다.물론 프로세스에 SIGKILL 시그널을 보내 강제로 종료시킬 수도 있습니다. 그렇지만 일반적인 상황에서 SIGKILL 시그널을 보내는 것은 권장되지 않습니다. 본래 프로그램을 설계 할 때 대부분의 경우 종료 시그널을 받았을 때 처리하고 있던 데이터가 안전하게 정리 될 수 있도록 설계합니다.SIGTERM, SIGINT 등의 종료 시그널에 대해 시그널 핸들러(handler)를 등록하여 시그널이 수신되었을 때 연결된 Socket..
[Linux] ps 명령어 사용법 - 실행 중인 프로세스 확인하기 1. 개요ps 명령어는 리눅스에서 현재 실행중인 프로세스를 확인하는 명령어 입니다.Process Status 이름 그대로 명령어를 실행하면 현재 실행되고 있는 프로세스들의 정보를 화면에 출력합니다.윈도우 : 특정 프로세스가 실행 중인지 확인하거나 강제 종료하기 위해 작업 관리자를 사용리눅스 : ps 명령어가 사용 2. 사용 용도GUI를 사용하지 않는 서버 환경에서 특정 프로세스가 동작 중인지 확인(대부분의 프로세스들이 백그라운드에서 동작하기 때문에)bash 스크립트(script)를 통한 자동화에도 자주 사용주로 특정 프로세스에 시그널(signal)을 보내야 할 때 PID(process id)를 식별하기 위해 사용프로세스가 중단되면 다시 실행시키기 위해 감시하는 목적으로도 사용 3. 사용법ps --help..
[Linux] I/O 재지향(Redirection) 및 파이프(pipe)에 대한 이해와 사용법 1. I/O 재지향(redirection)A. 개요리눅스 쉘은 항상 아래와 같이 표준 입출력을 파일 형태로 열고 있습니다.표준입력(stdin: 키보드)표준출력(stdout: 모니터)표준에러(stderr: 모니터)기본적으로 프로그램은 연산 결과를 출력 장치(파일, 모니터, 프린터 등)로 내보내는데, 출력되는 데이터를 임의로 다른 장치로 보내는 것을 재지향(redirection)이라고 합니다. 다시 말하면 파일이나 프로그램, 명령어 등의 출력을 낚아채어 다른 파일이나 프로그램, 명령어의 표준 입력으로 보내는 것을 말합니다.B. 사용법리눅스에서 열려 있는 파일은 파일 디스크립터(file descriptor)를 할당 받게 됩니다.표준 입력(stdin) = 0표준 출력(stdout) = 1표준 에러(stderr)..
[Linux] nohup 명령어 사용법 - 세션 연결이 끊어지더라도 지속적으로 동작 A. nohup 명령어 설명 및 특징- 해당 명령어는 리눅스에서 프로세스를 실행한 터미널의 세션 연결이 끊어지더라도 지속적으로 동작 할 수 있게 해주는 명령어입니다. 1) 일반적으로 터미널에서 세션 로그아웃(logout)이 발생   -> 리눅스는 해당 터미널에서 실행한 프로세스들에게 HUP signal 이 전달하여 종료   -> 이 HUP signal을 프로세스가 무시(ignore)하도록 하는 명령어라는 뜻으로, nohup을 사용한다.따라서 터미널에서 연결이 끊기거나 터미널을 종료해도 실행했던 프로세스들이 계속 실행된다. 2) 표준 출력(standard output)을 nohup.out 파일로 재지향(redirection) 합니다.터미널이 종료되어도 표준 출력은 nohup.out 파일에 계속해서 기록되기..