반응형
scp 명령어를 사용하여 파일을 쉽게 업로드 및 다운로드할 수 있는 스크립트
스크립트 작성
vim file_transfer.sh
#!/bin/bash
# Check if the correct number of arguments is provided
if [ "$#" -ne 4 ]; then
echo "Usage: $0 {up|down} <user@hostname_or_ip> <local_file_path> <remote_file_path>"
exit 1
fi
# Set variables for better readability
ACTION=$1
REMOTE=$2
LOCAL_PATH=$3
REMOTE_PATH=$4
KEY_PATH=~/aws-key/ec2key.pem
# Perform the action based on the first argument
case "$ACTION" in
up)
scp -i "$KEY_PATH" "$LOCAL_PATH" "$REMOTE:$REMOTE_PATH"
if [ $? -eq 0 ]; then
echo "File successfully uploaded to $REMOTE:$REMOTE_PATH"
else
echo "File upload failed"
fi
;;
down)
scp -i "$KEY_PATH" "$REMOTE:$REMOTE_PATH" "$LOCAL_PATH"
if [ $? -eq 0 ]; then
echo "File successfully downloaded to $LOCAL_PATH"
else
echo "File download failed"
fi
;;
*)
echo "Invalid command. Use 'up' to upload or 'down' to download."
;;
esac
chmod +x file_transfer.sh
사용 방법
./file_transfer.sh {up|down} <user@hostname_or_ip> <local_file_path> <remote_file_path>
- up : 파일을 원격 서버로 업로드합니다.
- down : 원격 서버에서 파일을 다운로드합니다.
- <user@hostname_or_ip> : 원격 서버의 사용자와 호스트 이름 또는 IP 주소를 입력합니다.
- <local_file_path> : 업로드 또는 다운로드할 로컬 파일의 경로를 입력합니다.
- <remote_file_path> : 업로드 또는 다운로드할 원격 파일의 경로를 입력합니다.
파일 업로드 예제
/path/to/local/file.txt 파일을 원격 서버 1.1.1.1의 /remote/path/file.txt 경로로 업로드합니다.
./file_transfer.sh up ec2-user@1.1.1.1 /path/to/local/file.txt /remote/path/file.txt
파일 다운로드 예제
원격 서버 1.1.1.1의 /remote/path/file.txt 파일을 로컬 시스템의 /local/path/file.txt 경로로 다운로드합니다.
./file_transfer.sh down ec2-user@1.1.1.1 /local/path/file.txt /remote/path/file.txt
이 스크립트를 사용하면 파일을 쉽게 업로드 및 다운로드할 수 있으며, 사용자는 성공 또는 실패 여부에 대한 명확한 피드백을 받을 수 있습니다.
참고URL
- 변군이글루 블로그(Byeon-gun's Igloo Blog) : scp 명령어
728x90
반응형
'스크립트' 카테고리의 다른 글
screwim을 사용하여 PHP 파일을 보호하고 이를 테스트하는 방법 (0) | 2024.09.10 |
---|---|
[python] 운영 체제를 판별하는 코드 (0) | 2024.05.17 |
[python] 환경 변수를 .env 파일에서 로드하는 코드를 작성 (0) | 2024.05.14 |
[python] distro 모듈을 사용하여 운영체제 정보 확인 예제 (0) | 2024.05.13 |
[python] 아파치 웹 서버를 시작하고 중지하는 스크립트 (0) | 2024.05.10 |