리눅스 쉘 스크립트 실전 예제 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 솔루션을 제공합니다.
웹사이트 : www.esmartbay.co.kr
E-mail : smartbay.svc@gmail.com
카카오톡 : 바로 상담하기
'서버 & 리눅스 실무팁' 카테고리의 다른 글
| 리눅스 쉘 스크립트 실전 예제 시리즈 (총 10편) (3) | 2025.06.14 |
|---|---|
| 리눅스 쉘 스크립트 실전 예제 Part 10: 파일 분석 및 리포트 자동화 (0) | 2025.06.14 |
| 리눅스 쉘 스크립트 실전 예제 Part 8: 자동화 예약 실행 (0) | 2025.06.14 |
| 리눅스 쉘 스크립트 실전 예제 Part 7: 중복 및 무결성 검사 (0) | 2025.06.14 |
| 리눅스 쉘 스크립트 실전 예제 Part 6: 권한 및 보안 관리 자동화 (0) | 2025.06.14 |