2017-12-08 2 views
-2

저는 인트라넷에 백업을 유지하기 위해 리눅스에서 FTP 파일 전송을 자동화하려고합니다. 내 주요한 문제는 SHH가 삼바 서버와 다른 것들을 망가 뜨리므로 SCP를 사용할 수 없다는 것입니다. 그래서 우리는 vsftp를 고수하고 있습니다.Linux에서 FTP 파일 전송을 자동화하는 방법은 무엇입니까?

아마도 내가 할 일은 매주 크론에서 실행할 bash를 만드는 것입니다. 이것은 인터넷에서 발견 된 예제입니다.

#!/bin/bash 
HOST='your.ftp.site' 
USER='remoteusername' 
PASSWD='remotepasswd' 

ftp -n -v $HOST << EOT 

    ascii 
    user $USER $PASSWD 
    prompt 
    [COMMANDS GO HERE] 
    bye 
    EOT 

하지만 두 컴퓨터간에 파일을 전송하는 데 사용할 코드를 실제로 찾을 수는 없습니다. 단순한 고양이일까요?

감사합니다. 감사합니다.

+1

"SHH가 우리 삼바 서버와 다른 것들을 망가 뜨립니다."- 그건 아주 이상합니다. – Quentin

+0

"그러나 두 컴퓨터간에 파일을 전송하는 데 사용할 코드를 실제로 찾을 수는 없습니다."- ftp 유틸리티를 사용하는 방법만큼 많은 질문이 프로그래밍에 관한 것 같지 않습니다. [Google] (https://www.google.com/support/bin/answer.py?hl=ko) cr & dcr = 0 & ei = 8a8qWoiSLqin8weHlK_oAg)는 [this] (https://tecadmin.net/download-upload-files-using-ftp-command-line/)을 찾습니다. – Quentin

+0

실제로 그렇습니다. 하지만 내 상사는 분명히 이미 SHH를 설치하려고 시도했으며 서버를 복원하기 전에 서버를 통해 좋은 결과를 얻었습니다. 그래서 나는 SHH를 만질 수 없다. – Anon

답변

1

여러 가지 가능성이 있습니다. 먼저 : lftp을 사용하십시오. 물론 미세 설명서를 읽어해야하지만, 예를 들어 :

echo "mirror --reverse --delete" | lftp -u $username,$password $mysite 

또는 사용이 예상 :

spawn ftp mysite 
expect "Login:" 
send "username\r" 
expect "ssword:" 
send "S0m3ting\r" 
expect "ftp>" 
send "prompt\r" 
expect "ftp>" 
send "cd somewher\r" 
expect "ftp>" 
send "mget allfiles.*\r" 
expect "ftp>" 
send "mput loadsofotherfiles.*\r" 
expect "ftp>" 
send "bye\r" 

(참고 : 이것은 첫 번째 테스트로 작동하지만처럼 실행하면 안됩니다 이 생산)

또한 man ftp[COMMANDS (그) GO HERE]의 목록을 제공합니다.

참고 사항 : ssh와 SAMBA는 동일한 서버에서 잘 실행되어야합니다. 거기에 무엇이 잘못되었는지 조금 연구하고 싶을 수도 있습니다.

관련 문제