서버 & 리눅스 실무팁

리눅스 쉘 스크립트 실전 예제 Part 9: 원격 파일 연동

smartbay 2025. 6. 14. 15:51

리눅스 쉘 스크립트 실전 예제 Part 9: 원격 파일 연동

백업 파일 전송, 외부 서버 자동 업로드, URL 기반 일괄 다운로드까지  - 원격 파일 작업도 스크립트로 자동화해 보세요.


1. rsync를 이용한 원격 서버 간 백업

용도: 로컬 디렉토리를 rsync를 통해 SSH 기반 원격 서버로 백업합니다. 효율적인 증분 복사에 적합합니다.


rsync -avz -e ssh /path/to/dir/ user@remotehost:/backup/

설명:
- -a: 아카이브 모드 (권한, 시간 등 유지)
- -v: 자세한 출력, -z: 압축 전송
- -e ssh: SSH 사용으로 보안 강화
- 비밀번호 자동화를 원하면 SSH 키 인증 설정이 필요합니다.


2. scp를 이용한 원격 자동 전송

용도: 주기적인 파일 하나 혹은 여러 개를 원격 서버로 자동 전송할 수 있습니다.


scp /data/report.csv user@192.168.10.20:/home/user/backup/

설명:
- scp는 간단한 원격 전송 명령입니다.
- SSH 기반이므로 보안성이 높으며, expect 등을 함께 쓰면 자동화 가능
- 파일 전송 후 완료 로그를 기록하는 방식도 추천됩니다.


3. FTP/SFTP 자동 업로드 (lftp)

용도: FTP 또는 SFTP로 자동 로그인하여 지정된 파일을 업로드하거나 동기화할 수 있습니다.


lftp -u username,password sftp://example.com <

설명:
- lftp는 명령어 기반 자동화에 유리한 FTP 클라이언트입니다.
- 다양한 명령 (put, mirror)으로 스크립트 작성이 용이합니다.
- FTP 환경에서도 사용할 수 있으며, 암호 노출 방지를 위해 별도 인증 방식 권장


4. URL 목록 기반 파일 일괄 다운로드

용도: 여러 URL이 담긴 파일에서 항목별로 자동 다운로드를 수행합니다.


wget -i url_list.txt -P ./downloads

설명:
- url_list.txt: 다운로드 대상 URL 목록
- -P: 다운로드 파일 저장 디렉토리 지정
- HTTP/HTTPS 지원, 다운로드 로그 및 에러 핸들링 가능


5. 파일 전송 후 무결성 검증 및 로그 기록

용도: scp 또는 rsync로 전송한 파일의 무결성을 해시값 비교로 검증하고 로그로 남깁니다.


#!/bin/bash
FILE="report.csv"
LOCAL_HASH=$(md5sum $FILE | awk '{print $1}')
scp $FILE user@server:/tmp/
REMOTE_HASH=$(ssh user@server "md5sum /tmp/$FILE" | awk '{print $1}')

if [ "$LOCAL_HASH" = "$REMOTE_HASH" ]; then
  echo "$(date) - 무결성 확인 완료: $FILE" >> /var/log/transfer.log
else
  echo "$(date) - 무결성 실패: $FILE" >> /var/log/transfer.log
fi

설명:
- 전송 전후 md5sum을 비교하여 안전성 확보
- 결과는 로컬 로그로 기록되며, Slack 또는 메일 연동도 가능


마무리

원격 파일 연동은 백업, 배포, 수집 등 시스템 운영의 필수 과정입니다. SSH 키, 무결성 검증, 자동 알림과 함께 활용하면 업무 효율성과 신뢰성이 모두 향상됩니다.


실무에 바로 적용할 수 있는 리눅스 쉘 스크립트 예제, 스마트베이에서 함께합니다.


스마트베이 | IT 자동화 혁신 파트너
비즈니스 효율을 높이는 스마트한 IT 솔루션을 제공합니다.

웹사이트 : www.esmartbay.co.kr
E-mail : smartbay.svc@gmail.com
카카오톡 : 바로 상담하기