[Shell] 파일 백업을 위한 Shellscript

파일 백업을 위한 shellscript

파일이 있으면 해당 파일을 백업 폴더로 옮기고, 아닌 경우 단순 저장하는 쉘 스크립트를 짰다. 가령 Ansible에서 파일 백업을 위해 원격 서버 sh backup.sh을 실행하기 위해 아래와 같은 스크립트를 작성해 놓을 수 있다.

VERSION=1.0.0
DATE=`date +%Y%m%d%H%M%S`

TARGET_PATH=~/system-name/target
BACKUP_PATH=~/system-name/backup
WAR_FILE=PRODUCTION-"$VERSION"-RELEASE.war
WAR_BACKUP_FILE=PRODUCTION-"$VERSION"-"$DATE".war

if [ -f "$TARGET_PATH"/"$WAR_FILE" ]; then
        echo "File exist"
        ls -l
        mv "$TARGET_PATH"/"$WAR_FILE" "$BACKUP_PATH"/"$WAR_BACKUP_FILE"
        echo "$TARGET_PATH"/"$WAR_FILE" moved to "$BACKUP_PATH"/"$WAR_BACKUP_FILE"
else
        echo "File doesn't exist"
fi

테스트를 위해 아래와 같이 테스트 스크립트를 작성해 볼 수 있다.

DATE=`date +%Y%m%d%H%M%S`
TEST_FILE=~/system-name/target/tmp.txt
if [ -f "$TEST_FILE" ]; then
        ls -l
        mv tmp.txt ~/system-name/backup/tmp-"$DATE".txt
else
        echo "Test File doesn't exist"
fi

그리고 내부에 tmp.txt를 만든 다음 실행해보면, 아래와 같은 결과를 볼 수 있다.

[account@server target]$ ls ~/system-name/backup/
tmp-20230119194123.txt

Updated:

Leave a comment