데몬
백그라운드 프로세스로 동작하면서 서비스를 수행하는 프로세스
~~~~~~~~~~
데몬의 종류
1. standalone 데몬 (독립데몬)
2. xinetd 데몬(인터넷슈퍼데몬)(inetd -> xinetd 변경)
===================================================
LAB> xinetd 데몬으로 구동되는 서비스를 등록해보자.
xinetd - 인터넷슈퍼데몬 이라고 부른다.
xinetd 는 socket-bind-listen-accept를 자동으로 처리해준다
네트워크 프로그래밍(소켓 프로그래밍)
서버 클라이언트
socket socket
| |
bind connect
| |
listen <----+
| |
accept |
| |
data <--> data
yum -y install xinetd
1. 설정파일을 생성
2. /etc/services 포트를 추가
3. 서버 프로그램을 작성
4. xinetd 데몬을 구동
5. 포트확인
6. 접속
# cd /etc/xinetd.d
# cp kshell myserver
# vi myserver
-- myserver --
service myserver
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /root/bin/myserver.sh
disable = no
}
-- myserver --
2. /etc/services 포트를 추가
# vi /etc/services
-- /etc/services --
myserver 17777/tcp <-- 추가
:
:
-- /etc/services --
3. 서버 프로그램을 작성
# cd ~/bin
# install /dev/null myserver.sh
# vi myserver.sh
-- myserver.sh --
#!/bin/sh
echo "Welcome to My Server!!!"
-- myserver.sh --
4. xinetd 데몬을 구동
# /etc/init.d/xinetd restart
5. 포트확인
# netstat -nltp | grep 17777
6. 접속
# nc localhost 17777
Welcome to My Server!!! <-- 출력이 나오면 성공!!!
===================================================
===================================================
LAB> 아래 조건에 맞는 xinetd 데몬으로 구동되는 echo
서버를 등록해보자.
==> 해보길...
!!! 모든 서버프로그램들은 설정파일을 수정하면 무조건 !!!
!!! 재시작 해야 한다. !!!
서비스명 : myserver2
스크립트명 : /root/bin/myserver2.sh
리슨포트 : 17772
출력 메세지 : Hello my server2!!!
1. 설정파일을 생성
# cd /etc/xinetd.d
# cp myserver myserver2
# vi myserver2
-- myserver2 --
service myserver2
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /root/bin/myserver2.sh
disable = no
}
-- myserver2 --
2. /etc/services 포트를 추가
# vi /etc/services
-- /etc/services --
:
:
myserver2 17772/tcp
:
:
-- /etc/services --
3. 서버 프로그램을 작성
# install /dev/null /root/bin/myserver2.sh
# vi /root/bin/myserver2.sh
-- /root/bin/myserver2.sh --
#!/bin/sh
echo "Hello my server2!!!"
-- /root/bin/myserver2.sh --
4. xinetd 데몬을 재시작
# /etc/init.d/xinetd restart
5. 포트확인
# netstat -nltp
6. 접속
# nc localhost 17772
===================================================
rsync
1. 로컬로 백업할때 (daemon and ssh 필요가 없다.)
- rsync -axvH /etc /backup
2. rsync 데몬을 이용하는 방법(873)
- 서비스 포트를 열어서 외부에서 접속해서 백업
- /etc/rsyncd.conf 를 생성하고 xinetd 에서 서비스를
열어줘야 한다.
- 암호화 X
- rsync 백업
touch /etc/rsyncd.conf
vim /etc/rsyncd.conf
-- /etc/rsyncd.conf --
[home]
path = /home
comment = HomeBackup
uid = root
gid = root
use chroot = yes
read only = yes
#hosts allow =
#max connections =
timeout 600
[etc]
path = /etc
comment = EtcBackup
uid = root
gid = root
use chroot = yes
read only = yes
#hosts allow =
#max connections =
timeout 600
-- /etc/rsyncd.conf --
vim /etc/xinetd.d/rsync
service xinetd restart
--/etc/xinetd.d/rsync--
--/etc/xinetd.d/rsync--
사용법 : rsync 옵션 <domain or ipaddress>::서비스명
# rsync -av 127.0.0.1::
# rsync -av 127.0.0.1::home
# rsync -av 127.0.0.1::home home
3. sshd 데몬을 이용하는 방법(22)
- rsync over ssh
- rysnc 데몬과 다르게 따로 데몬을 실행시킬 필요가 없다.
- ssh 를 이용하는 방법
- 암호화 O
사용법 : rsync 옵션 user@<doamin or ipaddress>:디렉토리 복사할 디렉토리
# rsync -av root@127.0.0.1:/etc /backup
rsync 는 복사프로램이다. 단 원본 파일과 날짜와 크기가
같으면 복사를 하지 않는다.
# rsync -av /etc/passwd .
# diff /etc/passwd passwd <-- 동일
# rsync -av /etc/passwd . <-- 동일하므로 복사를 안한다.
# useradd linux100 <-- /etc/passwd 가 변경
# rsync -av /etc/passwd . <-- 다시 복사된다.
# rsync -av /etc/passwd . <-- 동일하므로 복사를 안한다.
# stat /etc/passwd
:
Access: 2014-04-15 11:01:03.000000000 +0900
Modify: 2014-04-15 10:48:57.000000000 +0900
Change: 2014-04-15 10:48:57.000000000 +0900
# stat passwd
Access: 2014-04-15 10:49:20.000000000 +0900
Modify: 2014-04-15 10:48:57.000000000 +0900
Change: 2014-04-15 10:49:20.000000000 +0900
--> 원본 파일(/etc/passwd)의 Modify / Change Time과 백업 파일(passwd)의 Modify Time이
같기 때문에 백업을 받아오지 않았다.
# touch /etc/passwd
(touch 의 기능이 touch [파일명] -> 파일명의 파일이 있을 시 MAC Time이 현재 시각으로 변하고
파일이 없을 시 파일명의 파일을 생성한다.)
# stat /etc/passwd
:
Access: 2014-04-15 11:07:52.000000000 +0900
Modify: 2014-04-15 11:07:52.000000000 +0900 <-- 변경
Change: 2014-04-15 11:07:52.000000000 +0900
# rsync -av /etc/passwd .
sending incremental file list
passwd <-- 수정시간이 변경되었으므로 다시 백업한다.
sent 2290 bytes received 31 bytes 4642.00 bytes/sec
total size is 2216 speedup is 0.95
*** 위 내용을 crond 에 등록하면 출력되는 모든 결과는
*** MAILTO 에 지정된 값에 설정된 메일주소로 보내진다.
*** (그러므로 출력결과만 보여지지 않으며, 백업은 이루어진다.)