리눅스 백업 설정

IT/Linux / / 2023. 3. 28. 19:36
반응형

안녕하세요 유똥입니다.

오늘은 리눅스 로컬 백업 설정에 대하여 같이 스크립트 작성 후 실행방법까지 포스팅을 진행하겠습니다.

 

백업은 서버를 운영하는데 있어 가장 중요한 요소 중 하나입니다.

디스크 장애로 인해 데이터가 손실이 되거나

혹은 해킹으로 인해 데이터가 날아갈 수 있는 상황에 대비하는 것이 가장 중요합니다.

 

 백업 설정

vi backup.sh

#!/bin/bash

TIME=$(date); echo ${TIME} >> /root/backup/rsync_start.log

GRUB=$(dd if=/dev/sdb bs=512 count=1 2>/dev/null | strings | egrep -ic "grub")
RSYNC="/usr/bin/rsync"
LOGFILE="/root/backup/backup.log"

umount /disk/boot
umount /disk

sleep 5

mkdir -p /root/backup
mkdir -p /disk

mount /dev/sdb3 /disk

CHECK_MOUNT=$(df -h | egrep -c "/disk")

if [ ${CHECK_MOUNT} -eq 0 ]
then
    echo "backup disk mount error" > ${LOGFILE}
    exit 0;
fi

mkdir -p /disk/boot

mount /dev/sdb1 /disk/boot

sleep 5

${RSYNC} -a / /disk --exclude proc --exclude sys --exclude tmp --exclude boot --exclude home --exclude disk > ${LOGFILE}
${RSYNC} -a /usr/include /disk/usr >> ${LOGFILE}
${RSYNC} -a /root/tmp /disk/root >> ${LOGFILE}
${RSYNC} -a /boot/ /disk/boot >> ${LOGFILE}
${RSYNC} -a /home/ /disk/home >> ${LOGFILE}

mkdir -p /disk/sys
mkdir -p /disk/proc
mkdir -p /disk/tmp

chmod 1777 /disk/tmp

if [ ${GRUB} -eq 1 ]
then
   echo ${TIME} >> ${LOGFILE}
   echo "Already grub installed" >> ${LOGFILE}
else

dd if=/dev/zero of=/dev/sdb bs=512 seek=1 count=2047

mount --bind /proc /disk/proc
mount --bind /sys /disk/sys
mount --bind /dev /disk/dev
mount --bind /dev/pts /disk/dev/pts

/usr/sbin/chroot /disk <<EOF
/usr/sbin/grub2-install --force /dev/sdb
EOF

umount /disk/dev/pts
umount /disk/dev
umount /disk/sys

umount /disk/dev
umount /disk/sys
umount /disk/proc

fi

sleep 5

touch /disk/root/BACKUP_DISK

umount /disk/boot
umount /disk

TIME=$(date); echo ${TIME} >> /root/backup/rsync_end.log

 

해당 백업 스크립트는 OS영역인 데이터를 rsync 명령어로 복사해

다른 디스크로 복사하는 형태입니다.

백업이 완료되면 rsync_end.log에 백업 완료된 로그가 남게되며

스크립트가 실행되면 /dev/sdb 영역에 /disk로 마운트 후 백업이 완료되면 언마운트 되는 스크립트 입니다.

 

 백업 확인

cat /root/backup/rsync_end.log 
Tue Mar 28 19:28:52 KST 2023
- 백업이 정상적으로 완료 되는 부분 확인

 

여기까지 리눅스 백업설정에 대하여 알아보았습니다.

 

 

도움이 되셨다면 카카오뷰 채널추가 부탁드립니다!

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기
});