블로그 이미지
veresuke's House!!
verere

calendar

      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      

Recent Comment

Recent Trackback

  • 33,209total
  • 0today
  • 8yesterday
2008/11/13 11:31 Study/ETC
어느날 일정 시간마다 서버의 특정 폴더의 모든 내용들을 삭제해야 하는 일이 생겼다. 일정 시간마다 작업을 수행하는 것은 crontab을 이용하면 되었으나 문제는 파일 삭제였다.
ssh나 파일형태로 작업할려니 비밀번호가 노출될 수 있기때문에 다른 방법이 없을까 생각하던 중 갑자기 뇌리를 스쳐가는 명령어 하나!! +ㅁ+ rsync!!!
'rsync를 역으로 사용하면 해결되지 않을가'라는 생각에 무턱대고 시도하기 시작했고 다시 문제에 봉착했다. ㅠ
우씨.. 명령어가 안 먹자나!!!!! 나와 같은 생각을 한 사람이 있을거라는 생각에 무작정 인터넷을 뒤적뒤적.. 결국 발견 =ㅁ=
대상 서버의 rsync 설정옵션을 변경해줘야 한다는거!! ㅋㅋㅋ
설정옵션을 보면 read only 라는 부분이 있는데 기본 셋팅은 yes로 돼어있다(/etc/rsyncd.conf 요 파일이다). 이것을 no로 변경~ 그리고 다시 실행하면 OK~~!!!!
이로써 또 하나의 문제가 해결되는 순간이다 +ㅁ+

이쯤에서 rsync에 대해 알아보자구~~
rsync란 무엇인가하면 
'원격 서버의 파일을 네트워크를 거쳐서 전송하는 실행 소프트웨어로 시큐어 셸(SSH) 등과 병용할 수 있어서 파일 전송 시 보안도 확보할 수 있다.' 
라고 네이놈 사전에 나와있다. ㅋ
조금 더 알아보면 rcp와 비슷한 동작을 하지만 더 다양한 옵션이 있고, 더 효율적으로 데이터를 전송한다(출발지와 목적지 사이에 다른 부분만을 전송하기 땜시;; 여기서 다른 부분은 파일크기의 변화나 시간의 변화 등이 있다).
rsync는 동기화 프로토콜로 rcp나 ssh를 사용하는데 이를 사용하지 않도라도 원격 rsync 서버에 TCP 포트 873을 이용 접속할 수 있다.
하지만 이 경우(873 port를 이용할 경우)에는 inetd.conf 에 추가로 설정을 해줘야한다(rsync 873/tcp # rsync 요 내용 없으면 추가. 추가 후에는 inetd 데몬은 다시 띄워주는 센스!!).

Tip - 설정옵션에 대한 짤막한 설명
path : 공유할 디렉토리
comment : 설명
uid : 접근할 user id
gid : 접근할 group id
use chroot : chroot를 사용할지 여부, 특별한 이유가 없는 이상 꼭 사용할 것
read only : 읽기만 가능할 것인지 설정
host allow : 접근 가능한 호스트 설정. 백업서버만 접근 가능하도록 설정
max connection : 최대 몇개의 커넥션을 연결할 수 있는지 설정
timeout : 타임아웃 시간 설정

Tip - rsync 옵션
-a : 아카이브 모드. 심볼릭 링크, 속성, 퍼미션, 소유권 등 보존
-v : 상세하게 보여움
-z : 전송시 압축을 함.
-u : update only(새로운 파일을 덮어쓰지 않음)
-r : recursive (하위 디렉토리까지 포함)
-l : 심볼릭 링크 재생성
-p : 퍼미션 업데이트
-t : 변경시간 전송 (이것이 없으면 전송한 시간으로 바뀜)
-g : 그룹이름 변경
--delete : 서버쪽에 없고 클라이언트쪽에만 있는 파일을 지움
--exclude : 특정 패턴을 가지는 모든 파일은 rsync에서 제외함(--exclude=PATTERN)

rsync -a --delete www.web1.com::backup/data/ /home/backup/data
www.web1.com 서버의 backup/data/ 에 있는 데이터를 /home/backup/data 폴더와 동기화 시킨다. 이 때 --delete 옵션으로 인해 서버

쪽에 없고 클라이언트쪽에만 있는 파일을 지운다.

rsync -a --delete /home/backup/tmp/ www.web1.com::backup/data/
이것은 rsync를 이용하여 서버의 데이터를 지우는 방법으로 --delete 옵션을 사용해야 한다.
/home/backup/tmp/ 폴더의 파일을 www.web1.com 서버의 backup/data/ 폴더와 동기화 시키는 것으로 /home/backup/tmp/ 폴더는 비어있어야 서버의 데이터가 지워진다.

Tip - ':'과 '::'의 차이는 또 무었이냐
':'은 rsh나 ssh를 사용하는 것이며 '::'은 rsync 자체에서 지원하는 기능을 이용 자료를 가져오는 것으로 873 TCP 포트를 사용한다. ':'에서 기본은 rsh를 이용하지만 -e ssh 옵션을 이용하여 ssh를 사용할 수 있다. ssh를 사용하려면 비밀번호를 입력해야하는데 이것도 파일형태로 만들어서 옵션에서 지정해주면 된다.

이로써 얼렁뚱땅 또 하나의 허접한 글이 올라간다 =ㅅ=;;

'Study > ETC' 카테고리의 다른 글

[LINUX]rsync에 대해  (0) 2008/11/13
[LINUX] crontab을 사용해보자구!!  (0) 2008/11/07
posted by verere
 <PREV 1 ... 28 29 30 31 32 33 34 35 36 ... 131    NEXT>