꽤나 오랜만의 포스팅....;;
집에서 개인 데이터 백업용으로 FreeNAS를 구축해서 사용중인데,
예전에 하드 한번 날려먹은 경험으로...
이중 백업을 하고 있다.
원래 레이드로 미러링을 걸려고 했는데,
속도 뭐 별로 중요치 않고, 레이드를 써본적이 없기 때문에
레이드가 깨지면 어떻게 하나... 싶어서 그냥 한군데에 넣고 다른 하드로 복사하는 절차.
cp명령에 변경된 파일만 복사하는 옵션이 있는데
FreeNAS상의 쉘에서는 그 옵션이 안먹더라.
그래서 쉘스크립트로 작성.
원본 디렉토리에 있는 파일을 대상 디렉토리로,
없거나, 날짜가 먼저이면 복사하는 간단한 스크립트....
2011/07/19 수정 : 파일명에 공백이 있을 경우 제대로 처리되지 않던 문제 발견... 및 수정...
[code shell]#!/bin/bash
if [ $# != 2 ]
then
echo Usage : $0 [SourceDir] [TargetDir]
exit
fi
if [ -d $1 -a -d $2 ]
then
echo Source : $1
echo Target : $2
fi
echo Getting file list......
sourceLen=`echo $1 | wc -c`
find $1 | while read f
do
relative=${f:$sourceLen}
sourceFile=$1/$relative
targetFile=$2/$relative
if [ -d "$sourceFile" ]
then
if [ ! -d "$targetFile" ]
then
echo Make Directory : $targetFile
mkdir "$targetFile" -p
fi
elif [ -f "$sourceFile" ]
then
if [ "$sourceFile" -nt "$targetFile" ] #newer then. -ot
then
echo Copying : $targetFile
cp "$sourceFile" "$targetFile"
else
echo Passing : $targetFile
fi
else
echo Passing.....? : $targetFile
fi
done
[/code]
집에서 개인 데이터 백업용으로 FreeNAS를 구축해서 사용중인데,
예전에 하드 한번 날려먹은 경험으로...
이중 백업을 하고 있다.
원래 레이드로 미러링을 걸려고 했는데,
속도 뭐 별로 중요치 않고, 레이드를 써본적이 없기 때문에
레이드가 깨지면 어떻게 하나... 싶어서 그냥 한군데에 넣고 다른 하드로 복사하는 절차.
cp명령에 변경된 파일만 복사하는 옵션이 있는데
FreeNAS상의 쉘에서는 그 옵션이 안먹더라.
그래서 쉘스크립트로 작성.
원본 디렉토리에 있는 파일을 대상 디렉토리로,
없거나, 날짜가 먼저이면 복사하는 간단한 스크립트....
2011/07/19 수정 : 파일명에 공백이 있을 경우 제대로 처리되지 않던 문제 발견... 및 수정...
[code shell]#!/bin/bash
if [ $# != 2 ]
then
echo Usage : $0 [SourceDir] [TargetDir]
exit
fi
if [ -d $1 -a -d $2 ]
then
echo Source : $1
echo Target : $2
fi
echo Getting file list......
sourceLen=`echo $1 | wc -c`
find $1 | while read f
do
relative=${f:$sourceLen}
sourceFile=$1/$relative
targetFile=$2/$relative
if [ -d "$sourceFile" ]
then
if [ ! -d "$targetFile" ]
then
echo Make Directory : $targetFile
mkdir "$targetFile" -p
fi
elif [ -f "$sourceFile" ]
then
if [ "$sourceFile" -nt "$targetFile" ] #newer then. -ot
then
echo Copying : $targetFile
cp "$sourceFile" "$targetFile"
else
echo Passing : $targetFile
fi
else
echo Passing.....? : $targetFile
fi
done
[/code]
'Knowledge > 기타' 카테고리의 다른 글
갤S [네트워크를 검색할 수 없습니다] 해결방법 (0) | 2011.12.30 |
---|---|
MP3 파일의 구조 (0) | 2011.08.18 |
아이폰 백업파일의 구조 (0) | 2011.04.25 |
FreeNAS에 SVN서버 설치하기 (0) | 2011.03.24 |
FreeNAS에 추가 패키지 설치하기 (0) | 2011.03.23 |