HP-UX

쉘 스크립트로 FTP 실행시 Get명령어 실행 안 되는 현상

 
윤지연
신규 회원

쉘 스크립트로 FTP 실행시 Get명령어 실행 안 되는 현상

안녕하세요?

FTP로 다른 서버에 접속하여 파일을 받아오는 작업을 쉘 스크립트로 작성하여 배치로 실행하려고 합니다.



직접 접속하여 파일 받아오는 것은 문제없이 실행되는데 쉘 스크립트로 작성해서 돌리면 제대로 실행이 되지 않습니다.



passive mode로 접속하고 있구요..

get filename 을 실행시키면 에러는 나지 않지만 파일 자체가 오지 않구요.

mget * 를 실행시키면

can't find list of remote files: No such file or directory



라는 에러메시지가 나옵니다.

당근 파일도 존재하고...

명령어 프롬프트에서 실행시키면 문제없이 실행됩니다..



혹시 어떤 문제인지... 답변 주시면 정말 감사하겠습니다..ㅠ_ㅠ



참고로...

상대서버는 SUN OS 사용하고요...(저희는 HP-UX 9.0)

서로 다른 회사이기 때문에 Firewall로 막혀 있지만

저희 쪽에서 Get만 가능하도록 각자의 IP를 등록해 둔 상태입니다.



쉘 스크립트는 아래와 같습니다.



ftp -niv ipaddr<< EOF

quote passive

quote user id

quote pass pwd

cd get

bi

get filename

quote quit

EOF
7 응답 7
양계전
초등학생

쉘 스크립트로 FTP 실행시 Get명령어 실행 안 되는 현상

받으려는 파일이 접속서버 /get 밑에 있는것 맞는지요?



위 해당 메세지를 보면 해당 파일을 찾을수 없어서 뿌려지는



메세지 인듯 보입니다



제가 위 스크립으로 테스트 해본결과 정상적으로 작동을 잘합니다



ftp 서버쪽 받을 파일



/get/samba-3.0.20.tar.gz



(12)/export/home/mageoli>./ftp.sh

Connected to ip.

220 (vsFTPd 1.1.3)

530 Please login with USER and PASS.

331 Please specify the password.

230 Login successful. Have fun.

250 Directory successfully changed.

200 Switching to Binary mode.

200 PORT command successful. Consider using PASV.

150 Opening BINARY mode data connection for samba-3.0.20.tar.gz (17182336 bytes).

226 File send OK.

local: samba-3.0.20.tar.gz remote: samba-3.0.20.tar.gz

17182336 bytes received in 3.2e+02 seconds (52.55 Kbytes/s)

221 Goodbye.





혹시 passive mode 문제일지 모르니 스크립트에서



quote passive 이부분을 빼보고 실행도 함 해보세요
윤지연
신규 회원

쉘 스크립트로 FTP 실행시 Get명령어 실행 안 되는 현상

안녕하세요?

답변 감사합니다..

그런데..

당근.. get이란 디렉토리에 파일이 존재합니다. ㅠ_ㅠ

그냥 받을 땐 잘 받아지는데,

쉘 스크립트로 돌릴 때만 저럽니다...
양계전
초등학생

쉘 스크립트로 FTP 실행시 Get명령어 실행 안 되는 현상

스크립트 그대로 돌려을때 잘됩니다

ftp 서버 : SunOS 5.10

ftp Client : HPUX-11.11



# ./ftp.sh

Connected to ip

220 corerush FTP server ready.

530 Please login with USER and PASS.

331 Password required for mageoli.

230 User mageoli logged in.

250 CWD command successful.

200 Type set to I.

200 PORT command successful.

150 Opening BINARY mode data connection for samba-3.0.20.tar.gz (17182336 bytes)

.

226 Transfer complete.

17182336 bytes received in 21.91 seconds (765.95 Kbytes/s)

221-You have transferred 17182336 bytes in 1 files.

221-Total traffic for this session was 17182844 bytes in 1 transfers.

221-Thank you for using the FTP service on corerush.

221 Goodbye.

# cat ftp.sh

ftp -niv ip<< EOF

quote passive

quote user mageoli

quote pass algus

cd get

bi

get samba-3.0.20.tar.gz

quote quit

EOF

#

양계전
초등학생

쉘 스크립트로 FTP 실행시 Get명령어 실행 안 되는 현상

스크립트를 수정을 해봐서 다시 해보세요



ftp -niv ipaddr<< EOF

quote passive

quote user id

quote pass pwd

cd get

bi

ls

quote quit

EOF



이렇게해서 ftp 서버단에 파일리스트가 보이는지 확인하고요

리스트가 안보인다면 다르게 생각을 해봐야겠죠
윤지연
신규 회원

쉘 스크립트로 FTP 실행시 Get명령어 실행 안 되는 현상

안녕하세요..

답변 감사합니다.



ls 명령도 실행이 되지 않더군요..

이 경우는 실행이 되지 않는 것인지..

아니면 결과값만 뿌려지지 않는 것인지 잘 모르겠습니다.

아무튼 ls 결과를 볼 수가 없습니다.

파일에 써 지지도 않구요...



그래서 ftp 접속 옵션 중 n 옵션을 지우고 하니까 잘 되는 것입니다...ㅡ.ㅡ;;

이유는 모르겠지만요...

대신 n 옵션(auto login을 못하게 하는 옵션)을 지우면 password를 묻는 프롬프트가 뜨기 때문에 배치로 자동 실행을 할 수가 없게 되죠...ㅜ_ㅠ



그래서 별 수 없이 .netrc를 이용한 자동접속을 사용하기로 했습니다.



n 옵션 지우고,

.netrc를 이용한 자동접속 사용하여

해결했습니다.



관심가져주셔서 감사합니다.

좋은 하루 되세요!!!





양계전
초등학생

쉘 스크립트로 FTP 실행시 Get명령어 실행 안 되는 현상

해결이 되셨다니 다행이네요 -_-;; 별도움 못되었네요 ;;;
박한진
조언자

쉘 스크립트로 FTP 실행시 Get명령어 실행 안 되는 현상

일단 배치로 돌리신다는것을 보니까 cron 사용하시는거 같은데요

cron으로 사용시 사용자 환경정보를 가져오지 못하므로 경로 문제가 아닐까 생각이 되네요

파일 이름을 fullpath로 주시면 해결될듯 합니다.

(저도 전에 이거때문에 골머리점 섞혔거든요 ^^;)