2009-08-17 4 views
1

저는 쉘 스크립팅 놈입니다.유닉스의 server1에서 server2까지의 ftp 파일

저는 현재 15mts마다 실행되는 cronjob을 가지고 있으며 파일이 있는지 확인합니다. 존재하는 경우

,이 파일과 프로세스를 소요하고 삭제하는 대신에, 이제 그것을

을 삭제, 내가 복사본을 만들고 아래의 삭제 스크립트가

서버 2

에 ftp를하고자합니다. 내가 그것을 파일의 복사본을 만듭니다 있도록를 수정하려면 다음 서버 2

rm -f /apps/pmserver/data/inbound/WPER594_COMPANY.CSV.proc 
+0

그냥 확인했는데 실제로는 ftps를 의미합니까, 아니면 잘못 배치 된 아포스트로피입니까? – skaffman

답변

0

체크 아웃 ncftpput과 ncftp 패키지에 '를 FTPS. 스크립트 가능한 ftp에 좋습니다.

http://www.ncftp.com/

+0

나는 이것이 그의 SSL 요구 사항에 대해 작동 할 것이라고 생각하지 않습니까? – djangofan

+0

어떤 SSL 요구 사항입니까? –

2

잘 FTP를 죽은 설정되지 않은 경우, 나는 실제로 단지 scp를 사용할 것입니다.

scp /apps/pmserver/data/inbound/WPER594_COMPANY.CSV.proc [email protected]:/path/to/dest 
+0

나를 이길 수 있습니다 :) – mcandre

+1

이 방법에 대한 사전 공유 키를 확인하십시오. 그것은 명령 줄에서 암호를 유지하는 좋은 방법입니다. –

+1

좋은 힌트 씨. 롭 존스. 그 아이디어에 감사드립니다. – djangofan

1

나는 rsync를 사용합니다 :

THETIME=`date "+%Y-%m-%d_%H-%M-%S"` 
rsync -avz -e ssh [email protected]:/remote/dir/WPER594_COMPANY.$THETIME.CSV.proc /apps/pmserver/data/inbound/WPER594_COMPANY.CSV.proc 
rm -f /apps/pmserver/data/inbound/WPER594_COMPANY.CSV.proc 
0

는 다음과 같은 방식으로 스크립트를 통해 FTP를 실행할 수 있습니다 : 위의

ftp -n $serverName <<! 
verbose 
ascii 
quote user $username 
quote pass $password 
cd $targetdir 
put $filename 
quit 
! 

이 가정은 $로 시작하는 변수를 설정 한 귀하의 스크립트에서 일찍. 느낌표 사이의 내용은 정확히 무엇을하고 싶은지에 따라 변경해야합니다. ASCII 전송이나 이진 전송 등입니다.

0

나는 명령 행 퍼티 (또는 PSFTP)가 갈 길이라고 말할 것이다. 이것은 SSH 포트 22를 통해 터널을 열고 일반 FTP 프로토콜 제어를 사용하기 때문입니다. 그것은 가장 쉬울 것입니다. PSFTP 바이너리를 얻기 위해 소스 코드를 컴파일해야하지만, 일단 비즈니스를 수행하면 소스 코드를 컴파일해야한다는 단점이 있습니다.

http://the.earth.li/~sgtatham/putty/0.52/htmldoc/Chapter6.html

SCP에 그것의 대안, 실제로 SCP 리눅스 시스템은 보통 미리 설치되어 있기 때문에 아마 더 쉽다.