포터블기기 강좌


가만히 생각해 보면 백업의 중요성을 알면서도 대부분 안하는 이유는 간단히 백업이 귀찮기 때문입니다.
시스템에서 제공되거나 상업용으로도 여러가지 backup tool이 있는데 그걸로 백업하면 몇분-몇십분 이상 걸리니까 제 경험으로는 처음에 한두번 하고는 잘 안하게 됩니다.

처음에나 몇번만 해놓고 설마 별일 있겠어? 하고  백업을 안해놓고 그것이 지속될 때에 큰일이 터지는거죠

(저도 그런적이 한두번이 아니에요 크게 날린적 많음)

그렇다고 계속 다른 디스크에 sync하는 방식은 평소 사용에 걸리적거립니다.
그러니 백업도 몇초뿐이 안걸리게 해놓는게 최고입니다.
사실 백업이 안되어 낭패를 보는 경우는 영화같은 큰 화일이 아니라 직접 작성한 화일들인 경우죠.

하는 일이 항상 큰 화일을 항상 만드는 작업이라면 별수 없이 큰화일을 전부 백업해야 겠지만 대부분의 경우  크기가 전혀 크지 않습니다.

대개가 작은 문서화일 소스화일일겁니다.  그래서 시간이 오래걸리는 백업을 할 필요가 없죠. 

따라서 큰 하드에 통채로 백업하는것은 가끔만 하고 용량이 작은 ssd 얼마 안하니까 그걸 붙여놓고 큰화일제외하고 작은 화일만 ssd에 idle일때 수시로 백업하게 하는 것이 다수의 사용자에게 유용할 겁니다.


그래서

1. 작은 백업본이 몇개만 들어갈 정도면 충분한 백업용 디스크를 만들고

2. 수시로 원할때마다 백업하는 방향을 씁니다.

3. 2가 충분히 잘되면 그때가서 자신에 맞는 스케쥴대로 자동백업 계획을 세우기로 합니다


먼저 백업용 ssd를 장만해서 붙이고
sudo fdisk -l 하면 새로운 디스크의 디바이스명을 알 수 있습니다
예를 들어 /dev/sdb 라고 합시다

먼저 포맷하고
sudo mkfs.ext3 /dev/sdb

다시 sudo fdisk /dev/sdb 로 들어가서 파티션을 만듭니다.
n 으로 새 파티션 만들고 w로 쓰면 됩니다.

(파티션 종류는  아무거나 되는데 리눅스니까 ext3로 합시다)


디폴트파티션은 1부터 만들어지니까 처음 만들었다면 직접 사용하는 파티션의 경로는
/dev/sdb1이 됩니다.

그리고 라벨도 변경해 줍니다
위의 해당 파티션에 라벨을 Backup이라고 주려면
sudo e2label /dev/sdb1 Backup
이런 식입니다.

이제 백업과 리스토어 스크립트를 만들 차례입니다.


---file 'backup'----------
#! /bin/bash

set -e

gio mount -d /dev/sdb1 || true
while [ ! -d "/media/$USER/Backup" ]; do
  sleep 1
done

#백업에 제외할 화일들을 제외하고 3일동안 변경된 화일만을 tar합니다. (각자의 용도에 따라 변경하세요)

find $HOME -type f -size -100M ! -iname "*.avi" -and ! -iname "*.tar" -and \
! -iname "*.mp4" -and ! -iname "*.mpeg" -and ! -iname "*.vdi" -and \
! -iname "*.log" -and ! -iname "*.torrent" -and ! -iname "*.part" -and \
! -iname "*.deb" -and ! -iname "*.iso"  -and ! -path "*/.mozilla*" -and \
! -path "*/Trash/*" -and ! -path "*/.sogouinput/*" -and \
! -path "*/.config/*" -and ! -path "*/.xsession*" -and \
! -path "*/.local/share/*" -and ! -path "*/.cache*" -and -mtime -3 \
-print | xargs -d "\n" tar cvf /media/$USER/Backup/backup$(date -I).tar

# 7일 이상 지난 백업은 지웁니다.
find /media/$USER/Backup/backup*.tar -mtime +7 -exec rm {} \;


gio mount -u /media/$USER/Backup || true

--------end of file------------

다음은 리스토어 하는 스크립트

--- file 'restore'--------------
#! /bin/bash
set -e
gio mount -d /dev/sdb1 || true
cd /media/$USER/Backup
fn=$(ls -Art backup*.tar | tail -1)

read -p "Restore from $fn? [Y/N]" yn
case $yn in
  [Yy]* ) tar xvf $fn -C /;;
  * ) exit;;
esac

gio mount -u /media/$USER/Backup || true

--------end of file------------



각각 .local/bin 같이 잘 쓰는 경로에 backup과 restore란 이름을 주어 저장하고 실행권한을 주세요
chmod +x backup restore


그다음에 편하게 쓰기 위해서는 .bashrc (배시쉘의 경우)화일에

alias b="backup"
alias r="restore"
를 추가합니다

로그인아웃 한다음,

일상생활하며 b로 백업 r로  리스토어 해가며 쓰면 됩니다.

저는 m2<->ssd간에 이렇게 쓰는데 백업이 몇초도 안걸리기에 하루에도 몇번씩 쉽게 백업해가며 쓸수 있습니다~

심지어 안정성이 떨어지는 기기에서도 마음의 평화를 얻을 수 있습니다.

어 실수로 작업이 잠깐 잘못되었다? 뭘 지워버렸다? 리눅스에선 명령어 잘못써서 이런경우 꼭 있는데 undo처럼 바로바로 뒤로 돌아갈 수 있어서 매우 편리합니다.


사실 linuxmint의 backup tool도 훌륭합니다. (ver.19쓰시면 꼭 필히 20으로 업글하세요 많이 다듬어졌습니다.) 저는 가끔만 전체백업사용하고 나머지는 수시로 이렇게 수동으로 백업해가며 씁니다.


제 판단에는 이게 가장 빠르고 편한 백업같습니다.
(*물론 시스템 도난 화재 분실등을 대비한 경우에는 이런 동일 기계안에서의 간이 백업갖고는 안되고 클라우드나 하다못해 cd롬이라도 별도의 제대로된 백업플랜이 필히 있어야겠습니다.)




번호 제목 작성자 작성일 조회
201 PostmarketOS: `진짜`리눅스 스마트폰을 구하는 법. [2] piloteer 02.07 42664
200 리눅스민트: 화면분할해서 윈도우배치하기 영진 02.05 40707
199 안드로이드 -> 아이폰 이전시 주의할 점 [1] matsal 11.22 41697
198 리눅스: 구글tts를 이용하기 [1] 영진 10.01 41074
197 리눅스민트 : 구글드라이브 연동하기 2 영진 09.23 40780
» 리눅스: 쉽고 빠른 백업은 없을까? [3] 영진 09.16 9137
195 xfce4에서 generic monitor활용 (막대그래프) file 영진 02.12 9016
194 리눅스: xfce4데스크탑에서 원하는 정보만 표시하기 [1] file 영진 02.05 8931
193 해피해킹키보드 흉내내기 (리눅스) [1] 영진 12.03 9236
192 리눅스민트: 네모액션으로 구글드라이브 연동 [2] file 영진 04.11 9353
191 구글킵 이용하기 [5] file 영진 04.06 9663
190 리눅스: 어학공부를 위한 mp3 플레이어 [2] 영진 01.18 9320
189 리눅스민트: 구글캘린더 연결하기 [1] file 영진 12.19 9589
188 리눅스 : 음성타이머를 만들어보자 [2] 영진 12.08 9228
187 리눅스데스크탑: 구글드라이브로 백업하기 [1] 영진 11.21 8943
186 리눅스데스크탑: 오늘의 인용문 표시하기 영진 10.19 8911
185 리눅스 데스트탑 : i3wm [2] 영진 10.17 9056
184 시내먼 데스크탑: 비트코인 티커 만들기 (초간단) [1] 영진 10.01 8881
183 윈도에서 간단하게 배터리 수명 알아보기 [3] matsal 05.10 9490
182 USB Type-C 케이블과 USB 3.2 그래픽 출력단자 [2] matsal 01.01 12911

오늘:
627
어제:
2,146
전체:
15,973,608