달력

11

« 2024/11 »

  • 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
  • 30

상황

- A서버의 데이터를(/home/daehan/data) rsync를 사용해서 B서버(/home/backup/)로 백업.

- A서버 B서버 모두 rsync 설치됨.

- A 서버(예 mystory.com) - 계정아이디 daehan / 패스 daepass / ssh포트는 2030

- B서버에서 rsync 실행. root권한.

- crontab 에 등록해서 주기적으로 백업.


인터넷에서 찾아보면 rsyncd.conf 파일만들고 어쩌구 하던데 그냥 양쪽에 rsync 설치만 해도 되네..



일반적으로 rsync 사용시 ssh 포트를 안바꿨다면

]# rsync -avr --delete daehan@mystory.com:/home/daehan/data /home/backup/


daehan 패스워드 입력하라고 하면 입력해주고 끝.

이렇게만 해줘도 된다.


나처럼 애들이 찝접대는거 싫어해서 ssh 포트를 바꿨다면...

]# rsync -avr --delete -e 'ssh -p 2030' daehan@mystory.com:/home/daehan/data /home/backup/

또는 --rsh 옵션으로 하면된다.

]# rsync -avr --delete --rsh="ssh -p 2030" daehan@mystory.com:/home/daehan/data /home/backup/



crontab 등에 등록해서 사용하려면 sshpass라는것을 사용하면 된다. 설치법은 쉬우니 알아서 검색.

-e 옵션 사용시
-e "sshpass -p 패스워드 ssh -l 계정이름 -p 포트번호"

--rsh 옵션을 사용시
--rsh="sshpass -p 패스워드 ssh -l 계정이름 -p 포트번호"

난 --rsh 로 사용. -e 옵션으로 해도 된다.

그냥 한다면
]# rsync -avr --delete --rsh="sshpass -p daepass ssh -l daehan" mystory.com:/home/daehan/data /home/backup/

난 포트를 바꿔줬으니 ssh 포트옵션을 추가로 써준다.
]# rsync -avr --delete --rsh="sshpass -p daepass ssh -p 2030 -l daehan" mystory.com:/home/daehan/data /home/backup/


B서버의 크론탭에 추가하려면 명령복사해서 크론탭에 등록.
매일새벽 5시에 mystory.com 서버의 data 디렉토리 백업
]# crontab -e
* 5 * * * rsync -avr --delete --rsh="sshpass -p daepass ssh -p 2030 -l daehan" mystory.com:/home/daehan/data /home/backup/





참고.

ㅁ rsync Options
-P  (--partial --progress) 이어받기(iso 같이 큰 파일에 유용)와 전송 진행상황 출력
-C  (--cvs-exclude) CVS에서 무시하는 파일을 무시. 예, CVS, *~, #*, *.old, *.bak, *.o core 등
--delete      송신 측에 없는 파일을 삭제
-z  (--compress) 전송 내용 압축
--exclude PATTERN      지정된 패턴을 전송할 때 제외(파일/디렉토리/와일드카드 모두 사용가능)
-a  (--archive) 디렉토리 구조 전체를 파일 속성을 유지한체로 옮김
-u  (--update) 나중에 수정된 파일은 유지. (클라이언트와 서버의 시스템 시간 차이가 작다는 가정하에)
-v  (--verbose) 전송 상황과 결과 출력
-e  (--rsh) 전송방법 선택. 뒤에 아규먼트로 ssh
-n  (--dry-run) 실제 파일을 전송하지 않는다. 실제 전송하기 전에 테스트용으로 사용


:
Posted by 비개인오후

상태

윈도우7 D:\Gallery 에 파일들이 있음.

나스용에는 CentOS 6.8 이 설치되어 있음. rsync 있음. 별도로 rsync데몬을 실행한 상태는 아님.

나스아이피주소 192.168.0.9 - 계정명 daehan - 웹용 디렉토리는 /home/daehan/webdir/Gallery


상황

리눅스에 이미 예전 사진파일들이 올라가 있지만

윈도우에서 Gallery의 사진들을 폴더별로 다시 정리한 파일들을 나스로 복사해서 동기화 하려고 함.

윈도우 -> 리눅스로 전송&동기화 하는것임.

이 상황에서는 윈도우가 서버이고 리눅스가 클라이언트라고 봐야하나...



rsync 로 할랬는데 윈도우용이 안보여서 찾아봤는데 너무 어려워 ㅜㅜ

https://www.itefix.net/content/cwrsync-free-edition

여기가서 파일을 다운받아서 봤는데 rsyncd.conf 가 안보여 ㅜㅜ

혹시몰라 백업용으로 올려두기.

cwRsync_5.5.0_x86_Free.zip



대충압축풀어서 cwRsync_5.5.0_x86_Free 폴더를 D:\Gallery 폴더안으로 이동.


에디터로 cwrsync.cmd 파일을 열어 봄.

죄다 주석으로 설명만 있고 보니깐

C:\WORK\* --> /cygdrive/c/work/* --> /cygdrive/드라이브명(c,d,e)/디렉토리인듯 싶음.



맨 밑줄에 테스트로 추가해 봄. (마지막에 옵션지정하는거 올려둠)


rsync -avru --delete /cygdrive/d/Gallery/업로드테스투 daehan@192.168.0.9:/home/daehan/webdir/Gallery


D:\Gallery\업로드테스투 폴더를 나스의 /home/daehan/webdir/Gallery 디렉토리 안에 복사(?)

-a(그냥다른사람들도 쓰길래) / -v(상태보여준다니)  / -r(서브디렉토리까지) / -u(새로운애들만. 빼면 할 때마다 쓰는듯)

--delete 옵션은 폴더정리로 윈됴에서 이동된 파일들을 리눅스에서 정리해주기위해. 이 기능때문에 rsync쓰는겨...


혹 ssh 포트를 바꿔준 경우라면 예) 2048번포트

rsync -avru --delete -e 'ssh -p 2048' /cygdrive/d/Gallery/업로드테스투 daehan@192.168.0.9:/home/daehan/webdir/Gallery

처럼 -e 옵션에 포트지정하는거 넣어주면 된다.


저장하고 cwrsync.cmd 더블클릭하니 daehan 의 로그인패스 입력하라고 함.

로그인패스 입력하니 뭐가 주르룩 지나간 다음 창히 훅 닫힘.


쉘로 접속해서 보니 /home/daehan/webdir/Gallery 디렉토리밑에 업로드테스투 디렉토리가 777모드로 만들어져있음.

drwxrwxrwx. 7 daehan daehan 4096 2016-11-13 18:00 업로드테스투


아! 그러고 보니 Gallery 디렉토리도 웹에서 멋대로 할려고 모두 777로 정해놨네...

다른 환경에서는 추가로 퍼미션 문제가 있을지 어쩔지는 모르겠넹...


검색해서 다른 글들을 보니 윈됴경로 쓸 때 뒤에 '/'를 붙이면 업로드테스투 폴더는 안되고 폴더안의 파일들만 된다네.

/cygdrive/d/Gallery/ 이렇게 해주면 Gallery 폴더안의 파일들이 몽땅 되는것이긋지.

근데 난 안올려야 될 것들도 같이 있으니 미련하게 따로 따로~


rsync -avru --delete /cygdrive/d/Gallery/가족사진 daehan@192.168.0.9:/home/daehan/webdir/Gallery

rsync -avru --delete /cygdrive/d/Gallery/여행사진 daehan@192.168.0.9:/home/daehan/webdir/Gallery

rsync -avru --delete /cygdrive/d/Gallery/일반짤방 daehan@192.168.0.9:/home/daehan/webdir/Gallery

rsync -avru --delete /cygdrive/d/Gallery/므흣짤방 daehan@192.168.0.9:/home/daehan/webdir/Gallery

pause


줄을 복사해서 cwrsync.cmd 파일 저장하고 했는데 하나 할 때마다 로그인패스 입력하라네...ㅜㅜ

이거 쉽게 하는거 글을 찾았는데 창을 닫아버렸더니 다시 못찾겠다.


top으로 보니 sshd하고 rsync하고 바쁘게 뭔가를 하더라.



주의

퍼미션 설정때문인지

rsync: failed to set times on "파일이나디렉토리이름" Operation not permitted (1)

라는 오류가 나오는데.. 그룹까지 정해줬는데 왜이랴..


찾아보니

기본옵션인 -avz 대신에 -avzO 를 사용하면 해당 에러구문을 피할 수 있습니다.

고는 하는데 오류가 많이 줄어들었지만 제대로 동기화되는지 확인을 못해봤다.







부록 : rSync 옵션.. 어디서 퍼왔는지 기억이 안남 ㅜㅜ

-a : archive mode (심볼릭 링크, 속성, 퍼미션, 소유권 등 보존)

-v 진행상황을 상세히 보여줌 

-r 지정한 디렉토리의 하위 디렉토리까지 재귀적으로 실행 

-l 소프트링크 보존 

-H 하드링크 보존 

-p 버전속성 보존 

-o 소유속성 보존(루트) 

-g 그룹속성 보존 

-t 타임스탬프 보존 

-D 디바이스 파일보존(루트) 

-z 데이터압축 전송 

-u 추가된 파일만 전송 

-b 낡은 파일은 ~가 붙음 

-u 새로운 파일을 덮어쓰지 않음 

-c 서버와 클라이언트 파일크기를 세밀히 체크 

-e ssh(rsh) 전송암호화 

--existing : 추가된 파일은 전송하지않고 갱신된 파일만 전송 

--delete : 서버에 없는 파일은 클라이언트에서도 삭제 

--exclude 'PATTERN' : 패턴과 맞는 파일만 전송 

--stats : 결과를 보고 

--daemon : 대몬모드로 운영함(이건 inetd.conf에 지정할 때 필요함)



:
Posted by 비개인오후
2016. 11. 2. 16:33

php 와 gd로 웹갤러리 만들기 짜르방/므흣짤방2016. 11. 2. 16:33


넷북으로 나스 비스므리하게 만들어서 웹갤러리 볼까 해서 했는데

db쓰는 프로그램들은 속도가 안습... 난 그냥 이미지만 쭉 보면 되는데 ㅜㅜ


너무 느려서 찾아보다가

http://mrtroll.tistory.com/527

여기서 정말 빠르고 간단한거 찾았다.


기타 자세한 설명은 위 주소에서...


이미 설치되어 있는 디렉토리들도 별도로 할 필요없이 볼 수 있는게 좋았음.

마음에 들어서 기능 몇 개 추가하고 백업용으로 올려두는것.

원작자분께서 누구나 변경하랬으니 ^^;;


기본적인 구조는 원본 그대로이고 plugin 디렉토리하고 zv.php 만 추가된것.

원본파일들도 그대로 있음.


설치는 압축풀어서 디렉토리 통째로 올리면 끝.

주소/디렉토리/zv.php 하면 된다. index.html 해도 되나?

zv.php 가 마음에 안들면 다른 이름으로 바꿔도 된다. PHP_SELF 적용

MWGv3.php 로 하면 원본으로 볼 수 있음.


자세한 설정은 zv.php 파일을 열어서 확인. 열심히 설명해놨음.

관리페이지 만들려다 귀찮아서 안함. 웹상에서 설정바꿀일이 몇번이나 있을까 싶어서.

이것저것 하다보니 소스가 안드로메다로 가버림.


추가한거

- 깜장테마 / 흰색테마 css파일로 맘에 안들면 파일 복사해서 변경하고 추가.

- 이미지만 보게 하기 선택 

- 썸네일 생성시 gd/imagemagick 선택

- 간단한 인증기능(특정 디렉토리 접근시 아이디/패스 입력)

- 사진파일업로드 및 삭제(별도 체크없어서 이게 보안상으로 젤루 위험함)

사용시 발생하는 문제에 대해서는 당사자 책임임 -_-;;



zv_euckr.zip

zv_utf8.zip



euckr.zip은 윈도우에서 apm깔아서 쓸 때

utf8.zip 은 리눅스등 서버환경이 utf-8인 경우


간단히 웹호스팅에 샘플로 풀어둔거

http://zalbang.phps.kr/zv/

샘플2 디렉토리 접근용 test 아이디/패스 미리 입력해 둠.

파일업로드는 무서워서 제외 ㅋ


파일업로드가 찝찝한 경우 이미지 시작 디렉토리에($dir_path에 지정한) 아래 내용을 .htaccess 파일로 만들어준다.

해당 디렉토리부터 프로그램들이나 쉘이 실행되지 못하게 하는거랜다. 그누보드거 퉁쳐옴.


<FilesMatch "\.(htaccess|htpasswd|[Pp][Hh][Pp]|[Pp]?[Hh][Tt][Mm][Ll]?|[Ii][Nn][Cc]|[Cc][Gg][Ii]|[Pp][Ll])">

Order allow,deny

Deny from all

</FilesMatch>


저거 설정했는데 zv.php 불렀을 때 오류가 나면
apache httpd.conf 파일에서 Allowoverride 설정을 All 이나 FileInfo Limit 로 해준다음 재시작.




:
Posted by 비개인오후