개인/리눅스 42

[리눅스] 웹 서비스의 구성 (웹 브라우저, HTTP)

웹이란? 웹은 월드 와이드 웹(World Wide Web, www)을 간단히 부르는 말로서 인터넷에 연결된 컴퓨터들을 통해 문서나 정보를 공유할 수 있도록 구성한 정보공간이자 서비스를 뜻한다. 즉, 웹은 www의 줄임말로 인터넷을 통해 정보를 공유할수 있는 공간을 말한다. www는 인터넷상에서 정보를 검색할 수 있는 시스템을 말하며, 하이퍼텍스트방식을 사용한다. 하이퍼텍스트 (Hypertext) .하이퍼텍스트는 하이퍼링크를 통해 이용자가 사용중인 문서에서 다른 문서로 즉시 접근할 수 있는 텍스트를 말한다. 예를들자면 어느 홈페이지에서 기사를 하나 클릭하면 새로운 창이 나온다. 이는 웹 브라우저라는 프로그램을 통해 탐색하며, HTML이라는 태그를 이용해서 만들어진다. HTML은 HTTP라는 프로토콜을 통해..

개인/리눅스 2020.02.19

[리눅스] 백업명령의 사용 (tar,cpio,rsync)

백업이란 컴퓨터를 사용하는 대부분의 작업은 여러 기록과 데이터로 저장되어 관리한다. 이런 데이터들이 작업하는 도중 갑작스럽게 진행하던 프로젝트에 관련된 데이터들이 하드웨어의 문제나 바이러스 등으로 인해 사용하지 못하게 되면 작업이 지연되거나 서비스가 중지되는 등 여러 문제가 생길수 있는다. 시스템을 관리하는 사람이 최우선적으로 해야하는 일중에 하나는 중요 데이터를 보호하는 것이다. 이런 자료를 보호하는 대표적인 방법으로는 백업(backup)이 있다. 백업은 자료를 보호하는 방법으로 데이터를 잃어버리거나, 사용하지 못하게 되는 경우를 대비해서 사전에 중요데이터를 주기적으로 다른 위치에 복사본을 만들어 두는 것이다. 아무리 시스템을 깔끔하게 관리한다고 하더라도 미숙한 작업자의 실수나, 소프트웨어 문제, 도난..

개인/리눅스 2020.02.18

[리눅스] SSH 설정 및 사용방법 (원격접속)

SSH (Secure Shell) 를 쓰는 이유 SSH는 원격으로 다른 시스템에 로그인할 수 있는 대표적인 프로그램으로, 특히 다중접속을 허용하는 리눅스에서는 하나의 서버에서 여러 클라이언트에 접속해 관리해야 하는 경우가 많다. 이럴때 SSH와 같은 원격프로그램은 유용하게 쓰인다. 기본적으로 리눅스에서 다른 시스템으로 원격 로그인할 수 있는 방법에는 대표적으로 SSH와 telnet을 떠올릴 수 있으며 두 가지는 사용법이 유사하다. telnet은 원격으로 연결된 서버와 클라이언트 간의 데이터를 전송할 때 일반 텍스트 형식으로 전달하여 패킷을 도중에 누군가 도청할 경우 내용을 유출당할 수 있다. SSH란 SSH는 패킷 전송시 암호화해서 전송하므로 안전하게 전송할 수 있고, 혹여나 도청당하더라도 암호화 된 파..

개인/리눅스 2020.02.17

[리눅스] 시스템 로그 설정과 관리(logrotate)

리눅스에서 로그는 리눅스 시스템에 관련된 사건이나 커널이나 데몬, 스케줄링, 메일 등 여러 프로그램에서 발생한 이벤트들은 각 서비스별로 구분되어 기록된다. 발생한 이벤트나 사건에 관련된 기록이 쌓인 파일을 로그라고 부른다. 시스템에 문제가 발생하면 해당 장비와 시간에 기록된 로그분석을 통해 프로그램에서 발생하는 각종 에러나 경고메시지를 확인해서 문제를 해결할 수 있다. 때문에 시스템을 관리하거나 보안에 대해서는 로그가 상당히 중요한 역할을 차지한다. 리눅스 초기에는 로그와 관련된 패키지로 syslog를 사용했다. 이후 syslog의 기능을 대폭 강화한 패키지인 rsyslog 로 대체되었다. rsyslog는 rsyslogd 데몬으로 실행되며 멀티스레드나 TCP, SSL과 같은 여러 기능을 지원하고 MySQ..

개인/리눅스 2020.02.16

[리눅스] 주변장치 관련 명령어 (프린터)

리눅스의 주변장치 (프린터) 리눅스에서 프린터를 지원해주는 인쇄 시스템은 대표적으로 LPRng, CUPS 두 가지가 있다. 초기에는 LPRng 를 주로 사용했으나 이후 CUPS라는 시스템이 추가되었으며, 두 가지 프린터는 관련 명령어 BSD, System V 계열 모두 지원한다. LPRng 프린터 시스템 LPRng는 버클리 프린팅 시스템으로 BSD계열 유닉스에서 사용하기 위해 개발되었다. 프린터 스풀링과 네트워크 프린터서버를 지원하며 프린터에 관련된 명령어로는 BSD, SystemV 계열 모두 지원한다. 프린터에 관련된 설정정보는 /etc/printcap 파일에 저장되어있으며, 관련된 사이트로는 http://www.lprng.org가 가 있다. CUPS 프린터 시스템 애플이 오픈소스 프린팅 시스템으로 개..

개인/리눅스 2020.02.15

[리눅스] 모듈의 관리와 설정파일

리눅스에서 모듈은 리눅스에서 모듈은 대부분 커널모듈을 이야기한다. 때문에, 모듈을 이해하기 위해서는 커널에 대해서 먼저 알고있는게 수월하다. 커널이란 커널은 모든 리눅스 운영체제의 핵심이라고 불리는데, 운영체제와 하드웨어 사이에서 시스템 자원을 관리하며 모든 시스템이 원할하게 동작할 수 있도록 하는 소프트웨어의 일종이다. 커널은 CPU,메모리,하드웨어와 어플리케이션 사이에서 동작하면서 프로세스 관리, 네트워크 관리 등 다양한 디바이스 기능을 수행하는데, 운영체제에서 일어나는 모든 부분을 관리하고 신규 드라이브를 위해 업데이트가 필요할 때도 있다. 커널에서 사용하는 모듈은 모듈은 커널에서 수행되면서 동적 공유라이브러리와 개념이 비슷하다. 리눅스에서는 여러 명령어나 프로그램은 동일한 부분이 많아 디스크 절약..

개인/리눅스 2020.02.14

[리눅스] 공유 라이브러리 확인방법 (ldd)

리눅스에서 라이브러리란? 라이브러리는 사전적인 의미로는 도서관을 뜻한다. 도서관에서는 여러 사용자가 공용으로 책을 이용할 수 있는 것처럼 리눅스에서의 라이브러리 또한 여러 사람이 이용할 수 있는 프로그램을 말한다. 컴퓨터 프로그램은 대부분 기본적인 명령어나 함수는 동일한 경우가 많다. 프로그램에 들어가는 동일한 기능은 여러 프로그램을 작성할 때 반복적으로 작성해야 하는 경우가 많고 이는 많은 시간이 들어가 비효율적인 구조를 가진다. 라이브러리는 이러한 불필요한 반복작업을 하지 않기 위해 기본적인 코드를 작성한 파일을 따로 만들어 두고 재사용이 가능한 형태로 만든 것이다. 라이브러리는 프로그램을 개발할 때 사용자의 프로그램과 링크되어 실행가능한 형태가 된다. 이 때, 링크 방식에 따라 정적 라이브러리와 동..

개인/리눅스 2020.02.13

[리눅스] 압축과 아카이브(tar, gzip, bzip2, xz)

리눅스에서 프로그램을 설치할 때 리눅스에서 사용되는 프로그램은 C언어로 된 소스(source)파일을 tar 형식으로 압축해서 배포된다. (소스프로그램은 GNU 웹사이트나 관련 프로그램사이트에서 무료로 배포된다.) 프로그램은 대부분 여러 배포판들의 패키지관리 기법을 통해 쉽게 설치,관리할 수 있지만, 환경설정을 변경해야하거나, 부득이하게 소스파일로 설치해야 하는 경우도 있다. 수동으로 소스파일을 설치할 때 가장 처음에 할 일은 압축된 프로그램을 풀어 내용을 확인하는 것이다. 프로그램은 압축도구에 따라 각기 다른 확장자가 붙게 된다. 이때 사용되는 압축도구에는 compress, gzip, bzip2, xz 총 4가지가 존재한다. 이번에는 이 네 가지의 압축도구와 tar 명령의 사용법에 대해 알아보려고 한다...

개인/리눅스 2020.02.12

[리눅스] 레드햇 계열의 패키지관리 (RPM,YUM)

레드햇 계열의 패키지관리 리눅스에서 사용하는 프로그램들 대부분은 소스코드와 컴파일도구 및 관련문서들이 포함되어 전문가들에겐 수정하면서 유용하게 사용할 수 있으나 초보자가 설치하거나 사용하기엔 어려움이 있다. 따라서 리눅스의 배포판에서는 프로그램의 쉬운 설치, 삭제, 관리를 위해 각 계열마다 독자적인 패키지 관리기법을 사용한다. 리눅스의 배포판 중 하나인 레드햇 계열에서는 패키지 관리기법으로 RPM과 YUM을 사용한다. RPM 은 Red Hat Package Manager의 약자로 프로그램을 .rpm 형태의 파일로 배포한다. rpm 파일의 형식 (패키지이름-버전-릴리즈-아키텍처.rpm) ex) httpd-2.4.6-3.fc21.x86_64.rpm httpd : 패키지 이름 = 어떤 프로그램의 패키지인지 나..

개인/리눅스 2020.02.11

[리눅스] 프로세스 스케줄링 (at,crontab)

프로세스 스케줄링이란 리눅스에서는 특정한 시간에 어떤 작업을 수행하기 위해 스케줄링이라는 기능을 사용한다. 스케줄링에는 at 과 cron 두 가지가 있으며 모두 데몬이 실행중이어야 한다. at 스케줄링은 주로 프로그램을 특정시간에 한 번만 사용하고 싶을 때 이용한다. cron 스케줄링은 프로그램을 특정 날짜나 시간, 요일에 맞춰 주기적으로 사용하고 싶을 때 이용한다. at 스케줄링의 사용 ]# at [옵션] [시간] -c : 작업정보 출력 -d : 예약한 작업을 삭제(=atrm) -l : 큐에 있는 작업 출력(=atq) -f : 파일을 지정해서작업을 읽어온다. ▷ 시간지정 = HHMM , HH:MM (am,pm 구분가능) ▷ 날짜지정 = MMDDYY, MM/DD/YY, MM.DD.YY (today, no..

개인/리눅스 2020.02.10