ftp 업로드 자동
보통 crontab 에 스케줄을정리하여 자동으로 백업을 받던지 어떠한 작업등을 설정할 수 있는데..
이중 어떤 자료를 매월 혹은 매주 특정 서버로 보내야 할 필요가 있다면 어떻게 해야 할까?
ftp 명령을 사용하여 자동으로 다른 서버로 자료를 보내는방법을설명드리고자 합니다.
1. ftp 자동로그인 환경파일 작성
# vi .netrc
# mahine [hostname] login [loginid] password [login password]
machine ftpserver login ftpuser password pw1234
위와 같이 파일을 .netrc 파일을 작성합니다. machine 뒤에 오는 ftpserver 값은
/etc/hosts 파일에 아이피주소가 미리 등록되어 있어야 합니다.
# chmod 600 .netrc
.netrc 파일을 600 모드로 바꾸지 않으면 파일 모드가 맞지 않다고 에러가 납니다.
2. ftp 실행 테스트
# ftp ftpserver
Connected to ftpserver.
220 NMS FTP server (SunOS 5.8) ready.
331 Password required for root.
230 User root logged in.
ftp>
아이디와 암호를 묻는 과정없이 자동으로 로그인 됩니다.
3. 로그인뒤 실행되어야 될 명령어 설정
# vi .ftpcmd
bin # binary file일 경우
cd /export/home # 서버에 업로드 디렉토리 이동 할 경우
prompt # 다수의 파일을 업로드 해야될경우 interactive 모드 해제
mput *.tar # 특정파일 업로드
4. 실행 테스트
# ftp ftpserver < .ftpcmd
자동으로 실행되는지 확인합니다.
5. 크론탭등록할 스크립트 만들기
# vi ftpupload.script
cd /ftpuploaddir # 업로드할 파일이 있는 디렉토리 가기
ftp ftpserver < /.ftpcmd
# chmod 700 ftpupload.script
6. 크론탭 등록하기
crontab -e
0 6 1,16 * * /ftpupload.script # 크론탭 맨끝에 추가
# 매월 1일 16일 6시에 ftp 업로드 실행