728x90

1. 도커 정의
도커는 리눅스 상에서 컨테이너 방식으로 프로세스를 격리해서 실행하고 관리할 수 있도록 도와주며, 
계층화된 파일 시스템에 기반해 효율적으로 이미지(프로세스 실행 환경)을 구축할 수 있도록 해줍니다. 
도커를 사용하면 이 이미지를 기반으로 컨테이너를 실행할 수 있으며, 다시 특정 컨테이너의 상태를 변경해 이미지로 만들 수 있습니다. 
이렇게 만들어진 이미지는 파일로 보관하거나 원격 저장소를 사용해 쉽게 공유할 수 있으며, 
도커만 설치되어 있다면 필요할 때 언제 어디서나 컨테이너로 실행하는 것이 가능합니다.

# 컨테이너는 프로세스의 실행 환경을 격리한다.
  가상머신의 역할을 넘어서 어느 플랫폼에서나 특정한 상태를 그대로 재현가능한 애플리케이션 컨테이너를 관리하는 도구
  운영체제 상에서 지원하는 방법을 통해서 하나의 프로세스(컨테이너)를 실행하기 위한 별도의 환경을 구축하는 일을 지원함.
<프로세스를 격리시켜 실행해주는 도구>

2. 도커 실행 예제
$ docker run -it --rm centos:latest bash
Unable to find image 'centos:latest' locally
latest: Pulling from library/centos
8d30e94188e7: Pull complete
Digest: sha256:2ae0d2c881c7123870114fb9cc7afabd1e31f9888dac8286884f6cf59373ed9b
Status: Downloaded newer image for centos:latest

[root@881189373f8b /]# 
[root@881189373f8b /]# cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core)

3. 도커 설치하기
개발환경에서는 도커 포 맥과 도커 포 윈도우를 사용한다.

리눅스 환경에서는 각 배포판에서 제공하는 패키지 관리자를 사용해서 도커를 설치할 수 있다.

* curl이 없다면 sudo apt-get curl로 설치한다.
$ curl -s https://get.docker.com | sudo sh

패키지 관리자에서 도커에서 관리하는 저장소를 추가하고 docker-engine 패키지를 설치한다.

https://get.docker.com을 직접 열어서 스크립트 파일 내용을 확인한다.

*버전 확인

$docker -v

$ cat /etc/apt/sources.list.d/docker.list
deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable

$ dpkg --get-selections | grep docker
docker-ce                                       install
docker-ce-cli                                   install

* docker 엔진 및 클라이언트
docker-ce , docker-ce-cli

* 현재 실행중인 모든 컨테이너 목록을 출력한다.
$ docker ps 
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/json: dial unix /var/run/docker.sock: connect: permission denied

* 관리자 권한으로 실행
$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

* docker 그룹에 사용자를 추가한다.
$ sudo usermod -aG docker $USER
$ sudo su - $USER

* sudo 명령 없이도 도커 명령어를 사로 사용할 수 있다.
$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

4. 도커 이미지 기초 (docker image)
이미지는 가상머신에서 사용하는 이미지와 비슷한 역할을 한다.

[중요] 이미지는 어떤 어플리케이션을 실행하기 위한 환경이다.
이 환경은 파일들의 집합이다.

도커에서는 애플리케이션을 실행하기 위한 파일들을 모아놓고, 애플리케이션과 함께 이미지로 만들 수 있다.
이 이미지를 기반으로 애플리케이션을 배포한다.

1) 도커 레지스트리에서 centos 이미지를 PULL 받는다.
2) 이 이미지를 통해 컨테이너를 실행한다.

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

도커에서는 docker pull <IMAGE_NAME> 명령어로 이미지를 풀 받을 수 있다.

$ docker pull centos
Using default tag: latest
latest: Pulling from library/centos
8a29a15cefae: Pull complete
Digest: sha256:fe8d824220415eed5477b63addf40fb06c3b049404242b31982106ac204f6700
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest

이미지 이름은 :을 구분자로 이미지 이름과 태그로 구분한다.
centos는 centos:latest와 같다.
도커는 먼저 이 이미지를 로컬에서 찾아보고 찾을 수 없으면 토커 공식 저장소에서 찾는다.
저장소에 해당하는 이미지가 존재하면 이미지 pull을 받아온다.
Downloaded newer image for centos:latest centos:latest  이미지가 다운로드 된 것을 알 수 있다.
(별다른 설정 없이 공식 저장소를 통해 이미지를 받아올 수 있다)
예를 들면 리눅스에서 apt, yum이고,
프로그래밍 언어에서는 gem, cpan, pip 같은 패키지다.

* 도커에서는 이미지를 다운 받을 때 install 혹은 download 같은 명령 대신 pull을 사용함.
  이미지를 업로드 할때는  push 명령어를 사용하고,
  새로운 이미지를 생성할 때는 commit을 쓰며,
  이미지의 차이를 확인 할 때는 diff 명령을 사용한다.

* 다운로드 받아온 이미지를 확인한다.
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              470671670cac        8 weeks ago         237MB

* 윈도 10에서 받아온 이미지를 확인한다.
C:\Users\sangrok>docker images
REPOSITORY                    TAG       IMAGE ID       CREATED         SIZE
centos                        latest    5d0da3dc9764   8 months ago    231MB
ghdudwkd4/docker101tutorial   latest    8e5d9e04fe5f   9 months ago    28.2MB
docker101tutorial             latest    8e5d9e04fe5f   9 months ago    28.2MB
alpine/git                    latest    b8f176fa3f0d   12 months ago   25.1MB
jaspeen/oracle-xe-11g         latest    52fbd1fe2d7a   6 years ago     792MB

가. 도커에서는 하나의 이미지를 저장소(repository)라 함.
나. tag는 임의로 붙여진 추가적인 이름이다.(이미지의 version을 확인하기 위해 사용함)
    도커 명령어에서 이미지를 지정할 때 태그를 생략하면 latest가 사용된다.
다. image id는 이미지를 가리키는 고유한 해시 값
라. created는 이미지가 생성된 시간
마. size는 이미지의 용량을 나타냄.

5. 도커 허브(Docker Hub) - 공식 이미지 레지스트리
도커에서 제공하는 이미지 호스팅 서비스 도커 허브D

* docker info를 통해서 클라이언트에 지정된 기본 레지스트리의 주소를 확인할 수 있다.
$ docker info | grep Registry
 Registry: https://index.docker.io/v1

 index.docker.io는 도커 허브의 과거 도메인, 이미지와 관련된 정보는 도커 허브에서 확인함

* 도커사에서 기본 제공하는 이미지
https://index.docker.io/search?q=&type=image

* 도커사에서 공식적으로 제공하는 이미지와 사용자들이 직접 만들어서 올린 이미지로 나눠진다.
우분투, 센트OS, mySql, Redis, wordpress와 같은 공식 이미지를 제공한다.

6. 컨테이너(Container) 이해하기 - 격리된 환경에서 실행되는 프로세스

1) 도커 레지스트리에서 centos 이미지를 풀 받아서 로컬로 다운로드 받는다.
2) 이 이미지를 통해서 컨테이너를 실행한다.

이미지는 어떤 환경이 구성되어 있는 상태를 저장해 놓은 파일 집합.
이미지의 환경 위에서 특정한 프로세스를 격리시켜 실행한 것을 컨테이너라 부른다.

[요점] 이미지는 파일들의 집합이고, 컨테이너는 이 파일들의 집합 위에서 실행된 특별한 프로세스이다.

* 컨테이너는 docker run을 통해 실행한다.
-it 쉘을 실행하기 위해 붙임.
docker run -it <이미지이름:태그> <명령어>
$ docker run -it centos:latest bash
[root@d3fef9c0f9e9 /]#

=>호스트OS와 격리된 환경에서 bash 프로그램을 실행했다고 이해하는 것이 더 정확하다.

실행중인 컨테이너 목록을 확인 하는 명령
$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
d3fef9c0f9e9        centos:latest       "bash"              3 minutes ago       Up 3 minutes                            sweet_keldysh

1) centos:latest이미지로 컨테이너를 생성
2) 이 격리된 환경에서 /bin/bash라는 명령어로 컨테이너를 실행함.
3) 도커를 실행하기 위해서 container id와 names를 사용함.
4) container id로 컨테이너를 조작할 수 있다.

[root@localhost.localdomain /]# docker ps
CONTAINER ID   IMAGE                         COMMAND                  CREATED         STATUS        PORTS                                                                NAMES
274194ed058c   romeoz/docker-nginx-php:7.0   "/usr/bin/supervisord"   13 months ago   Up 7 months   443/tcp, 9000/tcp, 0.0.0.0:55000->80/tcp                             test5_php_1
bbceaf0f6c49   romeoz/docker-nginx-php:5.6   "/usr/bin/supervisord"   13 months ago   Up 7 months   443/tcp, 9000/tcp, 0.0.0.0:11211->11211/tcp, 0.0.0.0:50000->80/tcp   crezone_php_1
5752d6e2f0ae   mysql:5.6                     "docker-entrypoint.s…"   13 months ago   Up 7 months   3306/tcp                                                             crezone_db_1
88608838407f   adminer                       "entrypoint.sh docke…"   13 months ago   Up 7 months   0.0.0.0:50001->8080/tcp                                              crezone_adminer_1

13개월 전에 컨테이너가 실행되고 있다는 것을 확인함.
 
* 죽은 컨테이너 목록까지 확인
$ docker ps -a

* 종료된 컨테이너 재시작 하기
$ docker restart d3fef9c0f9e9
d3fef9c0f9e9
$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
d3fef9c0f9e9        centos:latest       "bash"              14 minutes ago      Up 8 seconds                            compassionate_turing
$

* 쉘과 입출력을 주고 받으려면, attach 명령어를 이용한다.
$ docker attach d3fef9c0f9e9
[root@d3fef9c0f9e9 /]#

* 실행된 컨테이너 강제 종료 : stop
* 종료된 컨테이너를 삭제 : rm , --rm 플래그는 컨테이너가 종료 상태가 되면 컨테이너를 자동 삭제한다.
* 가상머신은 컴퓨터라면, 컨테이너는 격리된 프로세스이다.
* 컨테이너는 가상머신이라기 보다는 프로세스이다.

7. 도커와 버전 관리 시스템

1) 도커에서 이미지는 불변(immutable)한 저장 매체이다.
2) 이 이미지 위에 무언가를 더해서 새로운 이미지를 만들어내는 일이 가능하다.
3) 저장소(repository), 풀(pull), 푸시(push), 커밋(commit), 차분(diff) 사용가능함.

* 도커에서 새로운 이미지를 생성하는 과정
$ docker pull ubuntu:bionic
...
$ docker run -it ubuntu:bionic bash
root@65d60d3dd306:/#

이 컨테이너에 Git을 설치한다.
root@65d60d3dd306:/# git --version
bash: git: command not found

어떤 컨테이너와 이 컨테이너의 부모 이미지 간의 파일 변경사항을 확인할 수 있는 명령어를 제공
git diff명령어로 프로젝트의 변경사항을 확인하듯, docker diff명령어로 부모 이미지와 여기서 파생된 컨테이너의 파일 시스템간의 변경사항을 확인.

$ dockre ps
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES
65d60d3dd306        ubuntu:bionic       "bash"              About a minute ago   Up About a minute                       distracted_ardinghelli

$ dokcker diff 65d60d3dd306

아무것도 출력되지 않는다.

* 공식 우분투 이미지는 사용자가 루트로 설정되어 있음
sudo 명령 없이 apt를 직접 사용해 패키지를 설치할 수 있다.
root@65d60d3dd306:/# apt update
...
root@65d60d3dd306:/# apt install -y git
...
root@65d60d3dd306:/# git --version
git version 2.17.1

$ docker diff 65d60d3dd306 | head
C /usr
C /usr/lib
A /usr/lib/ssl
A /usr/lib/ssl/certs
A /usr/lib/ssl/misc
A /usr/lib/ssl/misc/CA.pl
A /usr/lib/ssl/misc/tsget
A /usr/lib/ssl/misc/tsget.pl
A /usr/lib/ssl/openssl.cnf
A /usr/lib/ssl/private

결과가 많으므로 head 앞쪽 부분만 출력 함.
[의미]
A : ADD
C : CHANGE
D : DELETE

$ docker run -it --rm ubuntu:bionic bash
root@33f6039322df:/# git --version
bash: git: command not found
root@33f6039322df:/# exit

* 우분투 이미지에 GIT을 설치함.
$ docker commit 65d60d3dd306 ubuntu:git
sha256:12924460218feb38da74e9a64c95acd55d16297346b2698f47f396936636c93d
$ REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              git                 12924460218f        4 seconds ago       186MB
ubuntu              bionic              4e5021d210f6        8 hours ago         64.2MB
centos              latest              470671670cac        2 months ago        237MB

$ docker run -i -t ubuntu:git bash
root@2a00b9b2b7cc:/# git --version
git version 2.17.1
root@2a00b9b2b7cc:/# exit

* docker rm은 컨테이너를 삭제하는 명령
* docker rmi는 이미지를 삭제하는 명령
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                        PORTS               NAMES
2a00b9b2b7cc        ubuntu:git          "bash"              2 minutes ago       Exited (130) 3 seconds ago                        cranky_franklin
$ docker rm 2a00b9b2b7cc
2a00b9b2b7cc
$ docker rmi ubuntu:git
Untagged: ubuntu:git
Deleted: sha256:487a3619305e68483059caa21eb54d1d812ced4282df9e2ba05ec46ed9a2b8f4
Deleted: sha256:9b6621e819f094c16ea9f63af90f7cb564a48133c05504fad0f28563865f957d

728x90
728x90

1. 리눅스 파일명으로 검색하는법.

 

사용법

find [찾을위치] -name [파일명]

 

예) 최상위 폴더부터 하위로 'apache'로 시작하는 파일 찾기.

find / -name 'apache*'

 

예) usr 폴더부터 하위로 'apa'로 시작하는 파일 찾기.

find /usr/ -name 'apa*'

 

 

2. 리눅스 파일 내부 문자열 검색하는법.

 

grep 을 이럴때 유용하게 쓸 수 있습니다.

 

사용법

grep -r [찾을 문자열] [대상파일들]

 

예) 현재 폴더에 있는 test.log 파일내부에 'apache' 라는 문자열 찾기.

grep -r 'apache' ./test.log

 

예) 'var' 폴더부터 하위 모든 파일내부에서 'apache' 라는 문자열 찾기.

grep -r 'apache' /var/* [--include '*.conf'] (include 옵션으로 특정 확장자에서만 검색도 가능하다)

 

 

3. 파일 내부 문자열 검색 다른 방법 (Feat. 강조색)

 

find . -type f -print | xargs grep -i "phpMyAdmin" /dev/null

현재위치부터 하위폴더의 모든 파일중에서 'phpMyAdmin' 이라는 문자열을 검색한다.

 

find . -name '*.conf' | xargs grep -r --color=auto -n 2>dev/null 'phpMyAdmin'

현재 부터 하위 모두를 검색하되,

conf 라는 확장자를 가진 파일중에서 'phpMyAdmin' 이라는 문자열을 검색한다.

그리고 일치 문자열은 강조색으로 표시!

 

 

이상으로 리눅스 파일명으로 찾기, 파일속 문자열 검색까지 알아보았습니다.

728x90

'프로그래밍 > 리눅스' 카테고리의 다른 글

리눅스 특정 폴더 용량 확인하기  (0) 2022.07.27
도커 개념 정리  (0) 2022.05.24
특정 IP만 ssh 접속 허용하기  (0) 2019.05.21
GREP 활용  (0) 2019.04.24
리눅스 파티션 관리  (0) 2016.01.14
728x90

특정 IP만 SSH 접속 허용하기특정 IP만 SSH 접속할 수 있도록 제한하기

목차

1 방법: hosts.allow, hosts.deny 설정[편집]

 리눅스 로그인 성공한 아이피 목록 보기 문서를 참고하십시오.

[root@zetawiki ~]# cat /var/log/secure* | grep Accepted | awk '{print $9"\t"$11"\t"$14}' | sort | uniq root 113.157.124.168 ssh2 root 135.79.246.217 ssh2 root 135.79.246.54 ssh2 root 135.79.246.80 ssh2

→ 113.157.124.168와 135.79.246.XXX 대역에서 로그인 성공한 기록이 있다...

# # hosts.allow This file describes the names of the hosts which are # allowed to use the local INET services, as decided # by the '/usr/sbin/tcpd' server. # sshd: 113.157.124.168, 135.79.246.

→ 113.157.124.168와 135.79.246.XXX 대역을 허용

위와 같이 한줄에 적어도 되지만, 아이피가 많아지면 관리가 어렵다. 아래와 같이 여러줄로 나누어 적어도 된다.

sshd: 113.157.124.168 sshd: 135.79.246.

# # hosts.deny This file describes the names of the hosts which are # *not* allowed to use the local INET services, as decided # by the '/usr/sbin/tcpd' server. # # The portmap line is redundant, but it is left to remind you that # the new secure portmap uses hosts.deny and hosts.allow. In particular # you should know that NFS uses portmap! sshd: ALL

→ 나머지는 모두 ssh 접근 불가

sshd를 재시작해야 적용된다.

[root@zetawiki ~]# service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ]

2 테스트[편집]

허용되지 않은 IP에서 접속시도시 아래와 같이 접속 실패

[root@zetawiki ~]# ssh root@example.com ssh_exchange_identification: Connection closed by remote host

3 같이 보기[편집]

4 참고[편집]

728x90

'프로그래밍 > 리눅스' 카테고리의 다른 글

도커 개념 정리  (0) 2022.05.24
리눅스 파일명으로 검색  (0) 2020.03.12
GREP 활용  (0) 2019.04.24
리눅스 파티션 관리  (0) 2016.01.14
apache server 버전 확인  (0) 2015.09.14
728x90

파일 내 내용 검색시

grep -i '찾고자하는내용' file명

ex) grep -i 'fileupload.jsp' localhost_access_log.20190425

728x90

'프로그래밍 > 리눅스' 카테고리의 다른 글

리눅스 파일명으로 검색  (0) 2020.03.12
특정 IP만 ssh 접속 허용하기  (0) 2019.05.21
리눅스 파티션 관리  (0) 2016.01.14
apache server 버전 확인  (0) 2015.09.14
리눅스 언어 설정  (0) 2015.07.24
728x90

기본지식

 

IDE0 HDD : /dev/hda 로 인식됨,  디스크내의 파티션은 hda1 / hda2 / hda3 .....

IDE1 HDD : /dev/hdb 로 인식됨, 디스크내의 파티션은 hdb1 / hdb2 /hdb3....

 

하드디스크 추가하고 리눅스 부팅후...

 

1. fdisk -l 로 디스크가 추가된 것을 확인 할 수 있다.

 

[root@localhost ~]# fdisk -l

Disk /dev/hda: 20.0 GB, 20060651520 bytes
255 heads, 63 sectors/track, 2438 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1          13      104391   83  Linux
/dev/hda2              14        2438    19478812+  8e  Linux LVM

Disk /dev/hdb: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hdb1               1       19457   156288321    7  HPFS/NTFS      <- 추가된 hdd
[root@localhost ~]#

 

 

2. fdisk로 파티션 설정하기


[root@localhost ~]# fdisk /dev/hdb

The number of cylinders for this disk is set to 19457.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/hdb: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hdb1               1       19457   156288321    7  HPFS/NTFS

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help): d     <- 파티션 삭제
Selected partition 1

Command (m for help): p

Disk /dev/hdb: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

Command (m for help): n     <- 파티션 추가
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-19457, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-19457, default 19457):
Using default value 19457

Command (m for help): p

Disk /dev/hdb: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hdb1               1       19457   156288321   83  Linux

 

Command (m for help): v
5165 unallocated sectors

Command (m for help): w  <- 저장하고 종료
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

 

3. 디스크 format : mkfs

 

[root@localhost home]# mkfs
Usage: mkfs [-V] [-t fstype] [fs-options] device [size]
[root@localhost ~]# mkfs.ext3 /dev/hdb1
mke2fs 1.35 (28-Feb-2004)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
19546112 inodes, 39072080 blocks
1953604 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=41943040
1193 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872

Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@localhost ~]#


 

3. mount 하기

 

먼저 mount할 디렉토리를 만든다

mkdir /home/music

 

/dev/hdb1을 /home/music 에 마운트 한다.

mount /dev/hdb1 /home/music

 

4. /etc/fstab 내용 추가 ( 리부팅후에도 적용되도록)

 

#vi /etc/fstab

/dev/VolGroup00/LogVol00 /                       ext3    defaults        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
none                    /dev/pts                devpts  gid=5,mode=620  0 0
none                    /dev/shm                tmpfs   defaults        0 0
none                    /proc                   proc    defaults        0 0
none                    /sys                    sysfs   defaults        0 0
/dev/VolGroup00/LogVol01 swap                    swap    defaults        0 0
/dev/hdb1               /home/music             ext3    defaults        1 1    <- 추가된 내용

Posted by 네이허


728x90

'프로그래밍 > 리눅스' 카테고리의 다른 글

특정 IP만 ssh 접속 허용하기  (0) 2019.05.21
GREP 활용  (0) 2019.04.24
apache server 버전 확인  (0) 2015.09.14
리눅스 언어 설정  (0) 2015.07.24
httpd: apr_sockaddr_info_get() failed  (0) 2015.04.27
728x90

아파치 버전 확인 하는 방법

[root@local]#httpd -v


서비스가 실행 중인지 확인

[root@local]#ps -ef | grep httpd

728x90

'프로그래밍 > 리눅스' 카테고리의 다른 글

GREP 활용  (0) 2019.04.24
리눅스 파티션 관리  (0) 2016.01.14
리눅스 언어 설정  (0) 2015.07.24
httpd: apr_sockaddr_info_get() failed  (0) 2015.04.27
리눅스 링크 거는 법  (0) 2015.04.27
728x90
2014/08/14 21:33

리눅스 설치 후 콘솔작업 할때에는 문제가 없으나, SSH접속프로그램인 Putty 나 SecurCRT 등을 사용할때에

화면 및 한글깨짐으로 작업에 어려움이 발생할 수 있습니다.

(한글설정 이 되지않아 불편할 때가 많죠.)

 

또한 일본식 한자나 한문 같은 경우에도 정확하게 표현해 주지 못할 경우에 UTF-8 유니코드 가 사용됩니다.

 

UTF-8 은 가변길이 인자 인코딩 방식으로 1비트부터 4비트까지 가변적으로 바뀌기에 모든 외국어 및 한글을

표현하기에 시스템의 언어설정은 UTF-8로 하시길 권장드립니다.

(EUC-KR 의 경우 8비트 인코딩 방식으로 한글만 표현하기에는 적합합니다.)

 

그럼 우선 시스템에 UTF-8 설정하는 방법입니다.

 

아래의 방법처럼 /etc/sysconfig/i18n 이 파일에 UTF-8 관련 내용을 추가합니다.

/etc/sysconfig/i18n 파일이 리눅스의 언어설정 파일입니다.(한글설정 포함)

 

vi 편집기로 /etc/sysconfig/i18n 파일을 수정해줍니다.

개발된 웹소스의 언어 설정에 따라 맞는 설정을 사용하시면 될듯합니다. vi 로 리눅스 Shell 상에서 보기 위해서 입니다.

보통 UTF-8 로 저장된 문서를 시스템의 LANG 설정이 맞지 않으면 꺠져서 보이기에 Shell 에서 작업할때에

알아보기가 힘듭니다..

 

#UTF-8 설정 시

 

1
2
3
4
5
vi ⁄etc⁄sysconfig⁄i18n
LANG="ko_KR.UTF-8"
SUPPORTED="en_US.UTF-8:en_US:en:ko_KR.UTF-8:ko_KR:ko"
SYSFONT="latarcyrheb-sun16"
SYSFONTACM="8859-15"
1
2
3
vi ⁄etc⁄profile
export LC_ALL="ko_KR.UTF-8"
export LANG="ko_KR.UTF-8"

 

 


#EUC-KR 설정 시

1
2
3
LANG="ko_KR.EUC-KR"
SUPPORTED="en_US.UTF-8:en_US:en:ko_KR.UTF-8:ko_KR:ko"
SYSFONT="latarcyrheb-sun16"

 

위처럼 작업 후 쉘에서 source 명령으로 /etc/sysconfig/i18n 파일과 /etc/profile 파일을 적용해 주면 됩니다.

1
2
source ⁄etc⁄sysconfig⁄i18n
source ⁄etc⁄profile


마지막으로 어떤파일은 euckr 로 저장이 되고, 어떤파일은 utf8 로 저장이 되었을때 iconv 로 변환해서 보면 되지만

일일이 작업하려면 매우 번거롭습니다..

 

그럴 경우 SSH 로 접속한 계정의 홈디렉토리 아래에 .vimrc 파일을 생성 후 vi 옵션을 설정해 주면

utf8 과 euckr 을 동시에 사용할 수 있습니다.

 

1
2
3
4
5
6
7
8
cd ~
vi .vimrc
 
 
#아래내용 추가
 
set ts=4
set fileencodings=utf-8,euc-kr

추가 후 재 로그인 하면 로그인 시 .vimrc 파일을 불러오면서 적용이 됩니다.


728x90

'프로그래밍 > 리눅스' 카테고리의 다른 글

리눅스 파티션 관리  (0) 2016.01.14
apache server 버전 확인  (0) 2015.09.14
httpd: apr_sockaddr_info_get() failed  (0) 2015.04.27
리눅스 링크 거는 법  (0) 2015.04.27
linux address already in use  (0) 2015.04.27
728x90

httpd를 시작할 때 아래와 같이 뜰때가 있다. 다만, 왜 그런지는 정확히 모른다. (혹시 아는분 댓글로 남겨주세요.)

httpd: apr_sockaddr_info_get() failed for ABC


이럴 때는 다음과 같이 하면 된다. (초기 세팅을 기본으로 합니다.)

vi /etc/hosts

예) 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 가장 뒤에 예) "ABC"를 추가.

:wq

service httpd restart


확인한다.

apache/conf/httpd.conf 파일에 ServerName 주석 풀고 127.0.0.1 써도 됩니다.

행인

httpd: apr_sockaddr_info_get() failed

Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

VirtualHost overlap on port 80, the first has precedence

 

728x90

'프로그래밍 > 리눅스' 카테고리의 다른 글

apache server 버전 확인  (0) 2015.09.14
리눅스 언어 설정  (0) 2015.07.24
리눅스 링크 거는 법  (0) 2015.04.27
linux address already in use  (0) 2015.04.27
자바 및 톰켓 경로 export 하기  (0) 2013.09.30

+ Recent posts