관리 메뉴

bright jazz music

백업 스크립트 본문

OS 및 기타

백업 스크립트

bright jazz music 2023. 9. 21. 09:45
#!/bin/bash

#file에 디렉터리 경로를 포함한 파일명 담기
#basename 함수를 사용하여 경로를 제외한 파일명만 추출
#추출한 파일명에 "오늘일자.bak" 붙여서 backup 디렉터리로 이동


#변수선언
target=$1
target_dir=$2
backup_dir=$3


#아규먼트 제공여부 확인. -z : 빈 문자열 여부 확인.
if [ -z "${target}" ] || [ -z "${target_dir}" ] || [ -z "${backup_dir}" ]; then
  echo "#### ERROR: Please provide three appropriate arguments! (target, target_dir, backup_dir)  ####"
  exit 1
fi



# target_dir가 존재하는지 확인. -d : 디렉터리 여부 확인. 디렉터리인 경우 true
if [ ! -d "${target_dir}" ]; then
  echo "#### WARNING: ${target_dir} does not exist! ####"
  exit 1
fi

# backup_dir가 존재하지 않으면 생성
if [ ! -d "${backup_dir}" ]; then
  mkdir -p ${backup_dir}
fi



for file in ${target_dir}/${target};
do
  #파일이 실제로 존재하지 않거나 일반파일이 아닌 경우 건너뜀
  if [ ! -f "$file" ]; then
    echo "#### WARNING: $file does not exist or is not a regular file! ####"
    continue
  fi


  base=$(basename $file)
  mv ${file} ${backup_dir}/${base}.$(date +%Y%m%d%H%M%S).bak

  # ex) target.20230921095711.bak

done

#사용하기 전chmod +x remove_and_backup.sh 명령어를 사용해 실행권한 부여할 것

'OS 및 기타' 카테고리의 다른 글

Git 병합  (0) 2024.03.07
Jenkinsfile  (0) 2023.09.21
젠킨스 트리거 설정  (0) 2023.09.18
Nginx 설정 (리액트 index.html)  (0) 2023.05.03
우분투 mariadb 설치  (0) 2023.04.08
Comments