본문 바로가기
이것저것구축하기/Linux관련

SFTP를 이용한 서버에 파일 업로드 및 script실행

by 곰네Zip 2023. 3. 17.

AWS의 EC2에 간단한 jar파일을 올리고, 실행하여야 하는 일이 필요했다.

그걸 위해서는 FTP프로그램을 이용하여 접속해서 파일 올리고,

파일이 다 올라가면 Putty같은 프로그램을 이용하여 콘솔에 접속해서 파일 압축 풀고(필요하면), 실행하는걸 일일이 입력해야한다.

근데..

귀찮다.

스크립트로 처리하자. 이제는 윈도우에서도 WSL이 있기에 아주 쉽게 리눅스 쉘 스크립트를 사용할 수 있으니까. :)

아래는 스크립트.

#!/bin/bash
REMOTE_ADDR="접속할서버주소"
REMOTE_USER="UserID"
AUTH_FILE="AWS의 EC2에 접속할 key파일경로"
#업로드한 폴더 경로를 yymmddHH로 표시하기 위해
TARGET_FOLDER_POST=$(date +%y%m%d%H) 
TARGET_FOLDER_BASE="EC2에 파일을 올릴 경로"
FILE_NAME="업로드할 파일경로"
EXESCRIPT="업로드 후 EC2에서 실행할 스크립트파일"

#파일명 변경 필요하면 파라미터로 입력 가능
if [ ! -z ${1} ]
then
	FILE_NAME=${1}
fi

#서버주소 변경 필요하면 파라미터로 입력 가능 
if [ ! -z ${2} ]
then
	REMOTE_ADDR=${2}
fi

#접속할 사용자 계정 바꾸려면 파라미터로 선택 가능
if [ ! -z ${3} ]
then 
	REMOTE_USER=${3}
fi

#스크립트 시작부분
sftp -i $AUTH_FILE $REMOTE_USER@$REMOTE_ADDR << EOF
cd $SERVER_DIR_BASE
mkdir $DATE
cd $DATE
lcd $LOCAL_DIR
put $FILE_NAME
quit
EOF

ssh -i $AUTH_FILE -l $REMOTE_USER $REMOTE_ADDR $EXESCRIPT

이러면 WSL을 켜서, 서버에 바로 업로드 하고 스크립트 실행도 가능하다. 필요하다면 EXESCRIPT에 특정 값을 넣어서 파라미터로 주는 것도 한 방법이다. 

반응형

댓글