You cannot see this page without javascript.

메뉴 건너뛰기

WHKorea

[리눅스] 다른 서버에 있는 파일 가져오기(SCP 이용)

 

[B서버가 A서버에 접속해서 A서버 내의 파일을 B서버로 가져와 저장하기]

 

 

(정리)

A서버 : 가져올 파일이 있는 서버

B서버 : 파일을 가져와 저장해야 하는 서버

 

 

scp 명령어를 이용하여 파일을 가져오려고 하니 할때마다 비밀번호를 입력해야 함.

나는 크론탭에 등록하여 자동화할 것이기 때문에 자동 로그인이 되야 함.

 

 

자동 로그인을 위해서 A서버와 B서버에서 각각 할일이 있다.

 

A서버(=가져올 파일이 있는 서버) 할일

#ssh-keygen -t dsa

-> 입력 후 엔터 3번

 

 

B서버(=파일 가져올 서버)

#mkdir ~/.ssh

 

A서버

#scp -P 포트 ~/.ssh/id_dsa.pub 호스트user@호스트IP:.ssh/authorized_keys

 

B서버

#chmod 700 ~/.ssh

#chmod 600 ~/.ssh/authorized_keys

 

자동 로그인 설정 끝!!

 

 

이제 SCP 명령어를 이용해 파일을 가져와보자!

 

#scp -P 포트 USER@IP:가져올파일의와파명 저장할절대경로및파일명

 

#scp -P 100 root@100.100.100.100:/tmp/log.txt /home/log/log.txt

 

 

 

난 이걸 새벽에 돌릴 예정이라 전날 파일을 가져와야 했음. 그래서 day 변수를 전일자로 설정. 

그리고 파일을 계속 쌓는게 아니라 오늘을 기준으로 3일치만 보관하고 나머지는 삭제. 

(해당 스크립트를 새벽에 돌리기 때문에 결론적으로 2개의 파일이 보관됨)

 

크론탭에 등록하기 위해서 만든 쉘스크립트 파일

#!/bin/sh

# 어제 날짜 구하기​ '17-12-28' 형태로 출력
day=$(date -d yesterday +%y-%m-%d)

# 오늘 날짜 구하기 '17-12-28' 형태로 출력

#today=$(date +%y-%m-%d)​

 

# /home/admin/DB_BACKUP 경로에서 확장자가 sql인 파일을 3일치만 보관​

find /home/admin/DB_BACKUP/*.sql -mtime +1 -exec rm -f {} \; >> /tmp/find.log 2>&1

# A서버의 /log/DB_BACKUP 경로 밑에 있는 '어제날짜.sql' 파일을

# B서버의 /home/admin/DB_BACKUP/어제날짜.sql로 저장​
scp -P 100
root@100.100.100.100:/log/DB_BACKUP/$day.sql /home/admin/DB_BACKUP/$day.sql 

 

 

위로