ftp 자동으로 uploading 하는 스크립트 인데 중복 파일 check 할 수 있을까요

punking의 이미지

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
newman73의 이미지

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]

samsee의 이미지

저도 님께저 작성한 것과 비슷한 프로그램을 만들었습니다. 다행히 저는 overwrite에 대한 제약은 없네요. :)

간단히 생각할 수 있는게 일단 타겟 디렉터리에 있는 파일들을 받고 나서 (혹은 파일명 리스트만) 님께서 올리시려는 파일 목록과 비교하는 것입니다. 생각은 간단한데 구현은 좀 복잡할 것 같네요;;

우선 파일이나 파일 목록을 가져오는게 관건이겠네요. ftp 서버에 따라 다르겠지만 ls > filelist.txt 이 정도는 되는걸로 알고 있습니다. 저런 식으로 파일 목록을 가져오면 되겠네요 :) 그럼 화이팅!

monovision의 이미지

lftp -d [host] -u [id,pwd] -e "mirror -R -I * ."
이런걸 원하신건가요 ?

punking의 이미지

Mirror 형식 이면 좋을듯 하지만 파일 전송시에 overwrite 하지 안나요 ㅡ.,ㅡ

monovision의 이미지

테스트 해본바로는 overwrite 하지 않았습니다.
그래도 혹시 모르니 실제 업무에 사용하기 전에 반드시 테스트 해보시기 바랍니다. ^^

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.