본문 바로가기

LINUX

(44)
01. 변수 변수 다른 언어와 달리 변수를 사용하기 전에 미리 선언하지 않으며 변수에 처음 값이 할당되면서 자동으로 변수가 생성된다. (선언과 동시에 생성) 변수와 관련해서는 아래와 같은 특징이 있다. 변수명=값 주의 할 것은 '=' 사이의 좌우 공백이 없어야 함 대소문자 구별 숫자형 변수와 문자형 변수의 구별이 없음 a=10 b="헬로우 리눅스" 변수의 내용을 사용할 때는 변수명 앞에 '$'를 붙인다. 변수 export export 를 통해 전역 변수를 생성할 수 있다. export [변수명]=[값]을 통해 변수를 선언하게 되면 변수 공유가 가능하다. 또한 배시 쉘은 변수를 선언하면서 바로 export 명령을 적용할 수 있다. 기존 PATH 라는 전역 변수에 경로를 추가하려면 아래와 같이 할 수 있다. 반대로 쉘 ..
00. 개요 쉘이란 명령어를 해석하여 커널에 전달해 주는 인터페이스를 제공하는 프로그램을 지칭하며 그래픽 쉘 ( GUI ) 과 명령줄 쉘 ( CLI ) 로 나뉜다. 이중 쉘 을 사용하는 경우 보통 CLI 를 가리키는 경우가 많다. 쉘 스크립트란 이런 쉘 인터프리터를 통해 실행할 수 있는 스크립트를 말한다. 보통 많이 사용하는 쉘에는 아래와 같은 것들이 있다. 리눅스 계열 sh 리눅스 계열 bash 리눅스 계열 csh 윈도우 cmd 윈도우 powershell 쉘 스크립트 작성과 실행 쉘 스크립트 파일의 확장명은 되도록 *.sh 로 주는 것이 좋다. sh 형식으로 호출하거나 chmod +x 명령으로 실행 가능 속성으로 변경한 후에 ./ 명령으로 현재 디렉토리에 있는 스크립트 파일을 실행 할 수 있다. 쉘 스크립트 선언 ..
27. 네임 서버 네임 서버 앞서 네트워크 단의 설명에서 네임 서버에 대해 이미 살펴보았는데 네임 서버 구축에 앞서 구성 요소만 간단히 정리해 보자. 먼저 hosts 파일은 전화번호부와 같이 도메인 이름과 접속하고자 하는 ip 주소를 적어 놓은 파일이다. 그런데 도메인이 너무 많기 때문에 도메인 이름만 기억하는 서버가 있고 이를 DNS 서버라고 한다. 간단히 아래와 같이 웹서버로 접근하게 된다. 근데 만약 가장 가까운 DNS 서버가 IP 주소를 모르면 루트 도메인 서버로 접속하고 실제 도메인을 찾을 때까지 계속해서 다른 DNS 서버를 뒤진다. 이에 대한 상세한 내용은 아래 Reference 탭을 참조한다. nslookup 실제 도메인의 IP 를 얻어내는 명령은 nslookup 을 사용하면 된다. nslookup 명령으로 ..
26. SSH 서버 텔넷 서버와 사용방법은 동일하고 텍스트 모드로 열리는 것도 동일하다. 하지만 보안이 강화되어서 데이터를 보내고 받을 때 암호화/복호화가 이루어져 해킹에 안전하다. SSH 서버 구축 절차 # SSH 서버 설치 $ apt-get update $ apt-get -y install openssh-server # SSH 서비스 재시작 $ systemctl restart ssh # SSH 서비스 확인 $ systemctl status ssh # SSH 서비스 등록 $ systemctl status ssh # 방화벽 포트 열기 $ ufw allow 22/tcp # 테스트용 사용자 추가 $ adduser sshuser 리눅스 에서 SSH 서버 접속 아래와 같이 ssh 사용자명@서버IP 형태로 접근하면 된다. 윈도우 에..
25. 텔넷 서버 텔넷 서버는 오랫동안 전통적으로 사용되어 온 원격 접속 방법이다. 리눅스 서버에 텔넷 서버를 설치하고 나면, 원격지에서 접속할 PC 에는 텔넷 클라이언트 프로그램이 필요하다. 그리고 설치가 완료되면 텍스트 모드 ( Putty 를 사용하는 것처럼 ) 로 원격 작업이 가능해진다. 이 서버는 송신 데이터를 암호화 / 복호화 하지 않기 때문에 보안에 취약한 단점이 있으나 앞으로 구축할 각종 서버의 모형이 되기 때문에 잘 이해하고 넘어가도록 하자. 텔넷 서버 구축 절차 # 텔넷 서버 설치 $ apt-get update $ apt-get -y install xinetd telnetd # 설정 파일 편집 $ vi /etc/xinetd.conf # Telnet 서비스 재시작 $ systemctl restart xine..
24. LVM LVM Logical Volume Manage 의 약자로 여러 개의 하드디스크를 합쳐서 한 개의 파일시스템으로 사용하는 것으로 필요에 따라서 다시 나눌 수 있다 예를 들어 2TB 용량의 하드 두개를 합친 후 다시 1TB 와 3TB 로 나눠서 사용할 수 있다. 간단히 기존의 파티션을 물리 볼륨을 논리 볼륨 그룹으로 묶고 묶은 논리 볼륨 그룹을 논리 볼륨들로 자유롭게 구성할 수 있다. 관련 용어 물리 볼륨 : /dev/sda1 , /dev/sdb1 등의 파티션 볼륨 그룹 : 물리 볼륨을 합쳐서 1개의 물리 그룹으로 만드는 것 논리 볼륨 : 볼륨 그룹을 1개 이상으로 나눠서 논리 그룹으로 나눈 것 실습 0. LVM 명령을 수행하기 위한 패키지 설치 $ [root@localhost ~]# apt-get -y i..
23. 하드 디스크 RAID RAID RAID 는 여러 개의 디스크를 하나의 디스크 처럼 사용할 수 있게 한다. 하드웨어 RAID 도 있고 소프트웨어 RAID 도 있다. 여기에서는 가상머신을 통해 소프트웨어 RAID 를 한번 다뤄보자. RAID 에는 다양한 방식이 있는데 특징적으로 아래와 같다. Linear RAID 단순히 두개의 하드 디스크를 사용하는 것과 동일하다. RAID 0 ( Striping ) 2개의 하드 디스크에 동시 저장하기 때문에 가장 바르다. I/O 가 일어날 때 데이터를 여러 조각으로 나누어 각각의 디스크에 순서대로 저장하게 된다. 하나의 하드디스크라도 깨지게 되면 사실상 나머지 하나의 디스크도 못쓰게 된다. RAID 1 ( Mirroring ) RAID 0 과 달리 안정성에 중점을 둔 RAID 레벨이다. 두 개..
22. 하드디스크 추가 가상 장치에 서버를 구성하기 위해 필요한 내용을 정리해 보자. SATA 하드 디스크 일반적인 하드 디스크 타입이다. SATA 1 규격에서 초당 150MB/s , SATA 2 규격에서는 초당 300MB/s 의 전송 속도를 낸다. SCSI 서버나 워크스테이션에 쓰이는 고속 인터페이스다. 무엇보다 안정성이 높은 것이 최대의 장점이지만 가격이 매우 비싸다. 이 규격을 쓰려면 별도의 확장 카드를 달아야 하며 최신 규격인 울트라 320 은 최대 320MB/s 의 속도를 낸다. SSD 솔리드 스테이트 디스크의 약자로 일반 하드 디스크와 비슷하게 동작하지만 임의 접근을 탐색시간 없이 고속으로 입출력할 수 있어 기계적 지연이나 실패율이 현저히 적다. RAM 보단 느리지만 HDD 보다 속도가 빠르며 비휘발성 메모리를 사용..