질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

scp로 백업을 전송하는 스크립트, 용량이 큰 파일은 전송이 안됩니다.

작성자 정보

  • 손남일 작성
  • 작성일

컨텐츠 정보

본문


로컬 pc에서 매일 생성한 tar.gz를 백업 서버로 scp를 사용해 매일 전송하는 스크립트를 짰습니다.


이상하게 백업 용량이 커지면 백업서버로 전송이 안되더군요.

스크립트를 사용했을 때에만 전송이 안되고

scp명령어만 사용했을 때에는 전송이 됩니다. 똑같은 파일이요.


이유가 뭘까요?


다음은 스크립트 전문입니다.

--------------------------------------------------------------------------------------------------------------

#!/bin/bash


DOW=`date +%a`

#월요일 full backup

if [ "$DOW" = "Mon" ] ; then

#DIRNAME에 날짜를 저장하고, 이 파일을 참고해서 폴더 이름을 생성하도록 했습니다.

 echo "`date +%y%m%d`">/backup/DIRNAME

 rm -r /backup/`date -d '14 day ago' +%y%m%d`


 if [ ! -d /backup/`cat /backup/DIRNAME` ] ; then

mkdir /backup/`cat /backup/DIRNAME`

 fi


 tar -g /backup/`cat /backup/DIRNAME`/snapshot -czpf /backup/`cat /backup/DIRNAME`/`date +%y%m%d_%a_%H%M`.tar.gz /home

 

 scp -rp /backup/`cat /backup/DIRNAME` ID@server:/home/admin4/backup/admin5

#화요일에는 증분 백업

else

#full backup에서 생성한 snapshot을 계속 보존해서 level 1 이 되도록 했습니다.

cp /backup/`cat /backup/DIRNAME`/snapshot /backup/`cat /backup/DIRNAME`/cp1

 tar -g /backup/`cat /backup/DIRNAME`/snapshot -czpf /backup/`cat /backup/DIRNAME`/`date +%y%m%d_%a_%H%M`.tar.gz /home


 scp -rp /backup/`cat /backup/DIRNAME`/`date +%y%m%d_%a_%H%M`.tar.gz ID@server:/home/admin4/backup/admin5/`cat /backup/DIRNAME`


관련자료

댓글 3

지유파파님의 댓글

  • 지유파파
  • 작성일
일단은 echo로 DOW 값이 정상적으로 나타나는지 확인이 필요하고요. 실제 터미널에서는 MON으로 나오지만 쉘상에서는 "월"이라고 나오지는 않는지...

그 다음에는 아래쪽에 주석으로 처리하고 하나씩 실행되는 범위를 늘려가면서 찾으면 금방 찾으실 수 있을 것 같습니다.

손남일님의 댓글

  • 손남일
  • 작성일
마지막 부분에 보면 tar를 생성한 후 scp로 전송하는데요. tar를 생성하는데 걸리는 시간이 1분이 넘게 걸리기 때문에 생성한 tar파일의 이름과, 전송하라고 지정한 scp 이름이 다릅니다. 그래서 전송을 못하는 거였더군요. 다시 검토하면서 우연히 알게 되었습니다.

지유파파님의 댓글의 댓글

  • 지유파파
  • 작성일
해결하셨다니 다행입니다.

사견이지만, $DOW와 같이 변수명에 date값을 저장한 것과 같이

"cat /backup/DIRNAME" 값과 "date +%y%m%d_%a_%H%M" 값도 변수로 지정하여 사용하시면 위와 같은 에러 발생도 방지되고 쉘 가독성도 더 좋을 것 같습니다. ^^

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,801 개
  • 현재 접속자 :  87 명