본문 바로가기

리눅스

FTP를 사용하여 파일을 업로드하는 스크립트

728x90

FTP를 사용하여 파일을 업로드하는 스크립트

ftp.sh 스크립트 작성

vim ftp.sh
#!/bin/bash

# 현재 날짜를 YYYYMMDD 형식으로 저장
DATE=$(date -d today +%Y%m%d)

# 동기화할 서버 목록을 변수에 저장
SERVER_LIST="
relay2.scbyun.com
#relay3.scbyun.com
relay4.scbyun.com
relay5.scbyun.com
relay6.scbyun.com
relay7.scbyun.com
relay8.scbyun.com
relay9.scbyun.com
relay10.scbyun.com
"

# FTP 계정 정보 설정
USER='xman'
PASSWD='dusrnth2001'

# 동기화할 파일 패턴 설정
FILE="$DATE*.log"

# 서버 목록 순회
for SERVER in ${SERVER_LIST}
do

    # FTP 연결 및 파일 동기화
    ftp -vn $SERVER <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
binary
hash
cd /var/slogs
lcd /data/newlog/$SERVER
prompt
mget $FILE
quit
END_SCRIPT

done

FTP 서버로 파일을 업로드하는 스크립트

vim ftp_upload.sh
#!/bin/bash

HOST="IP 또는 도메인"
USER="사용자_이름"
PASS="비밀번호"
FILE="업로드할_파일"

ftp -vn <<END
open $HOST
user $USER "$PASS"
binary
hash
put "$FILE"
quit
END

이 스크립트는 주어진 FTP 서버의 호스트, 사용자 이름, 비밀번호 및 업로드할 파일을 사용하여 FTP 연결을 설정하고 파일을 업로드합니다.

python을 사용하여 FTP 업로드를 수행하는 스크립트

import ftplib

ftp_server = "ftp.example.com" # FTP 서버 주소
ftp_user = "username" # FTP 계정 이름
ftp_password = "password" # FTP 계정 비밀번호
local_file = "/path/to/local/file" # 로컬 파일 경로
remote_file = "/path/to/remote/file" # 원격 파일 경로

# FTP 연결 설정
ftp = ftplib.FTP(ftp_server)
ftp.login(ftp_user, ftp_password)

# 바이너리 모드로 전송
ftp.set_pasv(True)
ftp.cwd("/")
with open(local_file, "rb") as f:
    ftp.storbinary("STOR " + remote_file, f)

# FTP 연결 닫기
ftp.quit()

위 스크립트에서는 ftplib 모듈을 사용하여 FTP 서버에 연결하고, login() 함수를 사용하여 FTP 계정으로 로그인합니다. 로그인이 완료되면, set_pasv() 함수를 사용하여 바이너리 모드로 전송할 수 있도록 설정하고, cwd() 함수를 사용하여 원격 파일 경로로 이동합니다. 이후, storbinary() 함수를 사용하여 로컬 파일을 원격 파일 경로로 업로드합니다. 마지막으로, quit() 함수를 사용하여 FTP 연결을 닫습니다.

 

이 스크립트를 사용하면 로컬 파일을 FTP 서버로 업로드할 수 있습니다. 필요에 따라 스크립트를 수정하여 다른 작업을 수행할 수 있습니다.

 

728x90