Skip to main content

NAS에서 : 매일 변경 파일을 Tar 로 원격지에 적재 / 일자를 정한 날짜를 원격지 적재

매일 변경된 내용을 Tar 원격지에 적재 

meta 시스템의 파일을 공유 

#!/bin/sh

export FinalBackupCnt=5
export FinalBackupDueDay=60
export BaseBackupTarget=$1
export BackupTargetYear=`date +%Y --date="1 days ago"`
export BackupTargetMonth=`date +%m --date="1 days ago"`
export BackupTargetDay=`date +%d --date="1 days ago"`
export NOW=`date +%Y%m%d%H%M`
export DestinationBackupFolder=$2
export DestinationRemoteBackupFolder=$3




# Make Backup file
MakeBackUp()
{
  echo -n "\n ### Start Archiving folder ###"
  echo "Backup date is " $NOW
  echo "Base backup folder is " $BaseBackupTarget/$BackupTargetYear/$BackupTargetMonth/$BackupTargetDay 
  echo "tar cfP $DestinationBackupFolder/meta-$BackupTargetYear-$BackupTargetMonth-$BackupTargetDay.tar $BaseBackupTarget/$BackupTargetYear/$BackupTargetMonth/$BackupTargetDay"
  tar cfP $DestinationBackupFolder/meta-$BackupTargetYear-$BackupTargetMonth-$BackupTargetDay.tar $BaseBackupTarget/$BackupTargetYear/$BackupTargetMonth/$BackupTargetDay
}

# Copy to Remote Backup Server
CopyRemoteServer()
{
  echo -n "\n ### Start Copy Remote Server ###"
  echo "Target Server 192.168.0.10 "
  echo "scp $DestinationBackupFolder/meta-$BackupTargetYear-$BackupTargetMonth-$BackupTargetDay.tar hyunsu@192.168.0.10:/data/ext/4TB/backup/NAS"
  scp $DestinationBackupFolder/meta-$BackupTargetYear-$BackupTargetMonth-$BackupTargetDay.tar hyunsu@192.168.0.10:$DestinationRemoteBackupFolder
}

# Delete Backup File
ClearBackupFile()
{
  echo -n "\n ### Delete Back file ###"
  echo "Delete backup file = $DestinationBackupFolder/meta-$BackupTargetYear-$BackupTargetMonth-$BackupTargetDay.tar "
  rm -rf $DestinationBackupFolder/meta-$BackupTargetYear-$BackupTargetMonth-$BackupTargetDay.tar
}



if [ $# -ne 3 ];then
        echo "ERROR 1.target backup folder, 2. base folder parameters 3. remote backup folder!"
        echo " ex : /data/shared/remoteBackupDaily.sh /data/shared/meta /home/hyunsu /data/ext/4TB/backup/NAS/meta"
        exit 1
fi
echo -n "\n\n"
echo "=========== Backup START ! =============\n"
echo ">> Backup Base Folder : $BaseBackupTarget"
echo ">> Backup Target Folder : $BaseBackupTarget/$BackupTargetYear/$BackupTargetMonth/$BackupTargetDay"
echo ">> Backup Destination : $DestinationBackupFolder"
echo ">> Backup Remote Destination : $DestinationRemoteBackupFolder"
echo ">> DATE : $NOW"
  if [ -d $BaseBackupTarget/$BackupTargetYear/$BackupTargetMonth/$BackupTargetDay ]; then
    echo "EXIST"
    MakeBackUp
    CopyRemoteServer
    ClearBackupFile
  else
    echo "NOT EXIST --> " $BaseBackupTarget/$BackupTargetYear/$BackupTargetMonth/$BackupTargetDay
  fi


echo -n "\n =========== Backup FINISHED ! =============\n\n"

메뉴얼하게 일자를 정할 때 

#!/bin/sh

export FinalBackupCnt=5
export FinalBackupDueDay=60
export BaseBackupTarget=$1
export BackupTargetYear=$4
export BackupTargetMonth=$5
export BackupTargetDay=$6
export NOW=`date +%Y%m%d%H%M`
export DestinationBackupFolder=$2
export DestinationRemoteBackupFolder=$3




# Make Backup file
MakeBackUp()
{
  echo -n "\n ### Start Archiving folder ###"
  echo "Backup date is " $NOW
  echo "Base backup folder is " $BaseBackupTarget/$BackupTargetYear/$BackupTargetMonth/$BackupTargetDay 
  echo "tar cfP $DestinationBackupFolder/meta-$BackupTargetYear-$BackupTargetMonth-$BackupTargetDay.tar $BaseBackupTarget/$BackupTargetYear/$BackupTargetMonth/$BackupTargetDay"
  tar cfP $DestinationBackupFolder/meta-$BackupTargetYear-$BackupTargetMonth-$BackupTargetDay.tar $BaseBackupTarget/$BackupTargetYear/$BackupTargetMonth/$BackupTargetDay
}

# Copy to Remote Backup Server
CopyRemoteServer()
{
  echo -n "\n ### Start Copy Remote Server ###"
  echo "Target Server 192.168.0.10 "
  echo "scp $DestinationBackupFolder/meta-$BackupTargetYear-$BackupTargetMonth-$BackupTargetDay.tar hyunsu@192.168.0.10:/data/ext/4TB/backup/NAS"
  scp $DestinationBackupFolder/meta-$BackupTargetYear-$BackupTargetMonth-$BackupTargetDay.tar hyunsu@192.168.0.10:$DestinationRemoteBackupFolder
}

# Delete Backup File
ClearBackupFile()
{
  echo -n "\n ### Delete Back file ###"
  echo "Delete backup file = $DestinationBackupFolder/meta-$BackupTargetYear-$BackupTargetMonth-$BackupTargetDay.tar "
  rm -rf $DestinationBackupFolder/meta-$BackupTargetYear-$BackupTargetMonth-$BackupTargetDay.tar
}



if [ $# -ne 6 ];then
        echo "ERROR 1.target backup folder, 2. base folder parameters 3. remote backup folder!"
        echo " ex : /data/shared/remoteBackupDaily.sh /data/shared/meta /home/hyunsu /data/ext/4TB/backup/NAS/meta 2024 9 3"
        echo " ex : /data/shared/remoteBackupDaily.sh /data/shared/backup/meta /home/hyunsu /data/ext/4TB/backup/NAS/backup/meta 2024 9 3"
        exit 1
fi
echo -n "\n\n"
echo "=========== Backup START ! =============\n"
echo ">> Backup Base Folder : $BaseBackupTarget"
echo ">> Backup Target Folder : $BaseBackupTarget/$BackupTargetYear/$BackupTargetMonth/$BackupTargetDay"
echo ">> Backup Destination : $DestinationBackupFolder"
echo ">> Backup Remote Destination : $DestinationRemoteBackupFolder"
echo ">> DATE : $NOW"
  if [ -d $BaseBackupTarget/$BackupTargetYear/$BackupTargetMonth/$BackupTargetDay ]; then
    echo "EXIST"
    MakeBackUp
    CopyRemoteServer
    ClearBackupFile
  else
    echo "NOT EXIST --> " $BaseBackupTarget/$BackupTargetYear/$BackupTargetMonth/$BackupTargetDay
  fi


echo -n "\n =========== Backup FINISHED ! =============\n\n"