ftp 자동으로 uploading 하는 스크립트 인데 중복 파일 check 할 수 있을까요
글쓴이: punking / 작성시간: 월, 2008/08/04 - 4:47오후
ftp 자동으로 uploading 하는 스크립트 인데 중복 파일 check 할 수 있을까요
ftp 서버는 윈도우 서버 입니다.
ftp client 는 linux , solaris , hp unix
unix 계열 에서 ftp windows 서버로 쉘 스크립트로 자동접속후 로그 파일 을 전송 해야 하는데
중복 파일이 있을 경우 overwrite 하지 말고 skip 했으면 합니다.
어떤식으로 구현 해야 할지 조언 부탁 ^^;;
아래코드 는 자동으로 로그 파일 전송하는 것입니다.
#!/bin/sh INIT_DIR=. HOST=59.xx.xxx.xx USER=userName PASS=passwd LOG_NAME=.ftp.log ftp -v -n <<EOF_FTP_CMD > $LOG_NAME open $HOST user $USER $PASS $ binary prompt off cd $INIT_DIR mput $@ quit EOF_FTP_CMD cat $LOG_NAME rm -rf $LOG_NAME
Forums:
md5 checksum을 만들어 쓰시면 될 것 같습니다.
bash로 프로그래밍한 적은 없어서 어떤 식으로 넣어야 할 지 알 수는 없지만,
먼저 전송한 파일의 md5 checksum을 배열 등에 넣은 후,
차후 전송할 파일중 md5 checksum이 같은 것이 있으면 skip하면 될 것 같습니다.
혹시나 배열이 안된다면 perl을 사용하심이 나을 것 같습니다.
perl에서 배열대신 hash를 쓰면 이전에 화일의 md5 checksum을 쉽게 확인할 수 있습니다.
------------------------------------------------------------
If you do not expect the unexpected, you will not find it;
for it is hard to be sought out, and difficult. [Heraclitus]
------------------------------------------------------------
If you do not expect the unexpected, you will not find it;
for it is hard to be sought out, and difficult. [Heraclitus]
간단한 생각, 복잡한(할 것 같은) 구현
저도 님께저 작성한 것과 비슷한 프로그램을 만들었습니다. 다행히 저는 overwrite에 대한 제약은 없네요. :)
간단히 생각할 수 있는게 일단 타겟 디렉터리에 있는 파일들을 받고 나서 (혹은 파일명 리스트만) 님께서 올리시려는 파일 목록과 비교하는 것입니다. 생각은 간단한데 구현은 좀 복잡할 것 같네요;;
우선 파일이나 파일 목록을 가져오는게 관건이겠네요. ftp 서버에 따라 다르겠지만 ls > filelist.txt 이 정도는 되는걸로 알고 있습니다. 저런 식으로 파일 목록을 가져오면 되겠네요 :) 그럼 화이팅!
lftp -d [host] -u [id,pwd]
lftp -d [host] -u [id,pwd] -e "mirror -R -I * ."
이런걸 원하신건가요 ?
Mirror 형식 이면
Mirror 형식 이면 좋을듯 하지만 파일 전송시에 overwrite 하지 안나요 ㅡ.,ㅡ
테스트 해본바로는
테스트 해본바로는 overwrite 하지 않았습니다.
그래도 혹시 모르니 실제 업무에 사용하기 전에 반드시 테스트 해보시기 바랍니다. ^^
댓글 달기