리눅스 파일시스템관리 2편
작성자 정보
- 웹관리자 작성
- 작성일
컨텐츠 정보
- 9,458 조회
- 0 추천
- 목록
본문
제목 : 리눅스 파일시스템관리 2편
ㅇ 제작 : 리눅스포털(www.superuser.co.kr) 수퍼유저코리아 서버관리팀
ㅇ SULINUX 홈페이지 : www.sulinux.net
ㅇ 리눅스포털 홈페이지 : www.superuser.co.kr
파일 시스템 관리
5. 백업
백업방법은 여러 가지가 있을 수 있다. 그리고 애플리케이션에 따라 또 별도의 백업방법이 있을 수도 있다. 하지만 애플리케이션의 백업방법은 각 애플리케이션의 종류에 따라 다르므로 너무 많은 방법이 있어 본서에서는 다른지 않겠다. 보통 백업방법은 tar와 dump 명령을 이용하여 백업 하는 방법을 사용한다. SULinux에서는 호스팅 서버 관리자에게 편리한 백업명령어(su_backup)를 제공하며 이를 이용하여 주기적 백업 역시 가능하게 할수 있다. 별도 제공 명령어의 사용방법은 “6-3-7. 시스템 백업방법”을 참고하기 바란다.
5-1. dump를 이용하여 백업하기
dump는 파일들이 아닌 파일시스템(ext2/ext3) 전체를 백업한다. 일반적으로 dump 명령어는 파티션 단위로 백업할 때 유용하게 사용되고 있다. dump는 0-9단계의 레벨을 가지고 증분 백업을 지원하고 있다. 레벨 0이 전체 백업이고 나머지 레벨들은 부분백업을 의미한다.
백업시에 /etc/fstab 파일을 참조하며 백업된 데이터 복원은 restore명령을 사용하여 복원할 수 있다.
형식 : dump [옵션] [백업미디어] [백업하고자하는 대상]
옵 션 |
설 명 |
-0~9 |
덤프의 레벨을 지정한다. 0은 전체백업이고, 나머지는 부분백업을 한다. |
-f |
파일명 또는 디바이스명 : 백업할 미디어를 지정하거나 파일명을 적는다. |
-u |
dump 를 통해 백업한 후에 /etc/dumpdates라는 파일에 작업에 대한 정보를 기록한다. |
실제 사용의 예
1) dump -0f /dev/nst0 /home
설명 : /home 디렉토리 전체를 /dev/nst0 장치에 전체 백업을 하게 된다.
2) dump -0u -f /dev/nst0 /dev/hda7
설명 : /dev/hda7 파일시스템 전체를 /dev/nst0 장치에 전체 백업하며 그 작업 정보를 /etc/dumpdates라는 파일에 기록한다.
3) dump -0u -f home /home
설명 : /home 디렉토리 전체를 home이라는 이름으로 전체백업한다. 또한 그 작업정보를 /etc/dumpdates 라는 파일에 기록한다.
4) dump -4u -f /dev/nst0 /dev/hda7
설명 : level4 수준 또는 그 이하의 백업을 한 뒤에 바뀐 내용을 증분 백업을 진행한다. 또한 그 작업정보를/etc/dumpupdates에 기록하게 된다.
5-2. dump 복원
dump명령으로 파일시스템을 백업한 경우에는 restore 명령을 이용하여 복원하게 된다.
restore [옵션] [디바이스명 또는 백업파일명]
옵 션 |
설 명 |
-i |
대화식(interactive)으로 복구할 파일을 선택한 후에 복원이 가능하다. |
-f |
디바이스명 또는 백업파일명 : 백업되어진 파일이나 장치를 지정한다. |
-r |
전체백업시에 사용한다. 이 옵션사용시에 파일시스템이 미리 생성되어 있어야 하고, 마운트도되어 있어야 하며 해당 디렉토리에서 작업해야 한다. |
실제 사용의 예
1) restore -if /dev/st0
설명 : /dev/st0에 백업된 데이터를 하나씩 확인하면서 복원한다.
2) restore -rf /dev/nst0
설명 : /dev/nst0에 백업된 데이터를 전체복원한다. 하지만 복원하고자 하는 파일시스템이 생성되어 마운트 되어 있어야만 하고 해당 디렉토리안에서 작업이 이루어져야 한다.
3) restore -if home
설명 : home이라는 이름으로 백업된 파일을 복구한다. 위의 명령을 실행하면 "restore> "라는 프롬프트가 나타납니다.
위의 그림은 main_root라는 dump로 백업받아 생성된 파일을 다시 복원하는 과정을 보여주고있다.
"restore >" 프롬프트에서 내릴수 있는 명령어는 help라는 명령어로 자세히 볼수 있다.
복원모드 명령어 |
설 명 |
ls |
백업된 내용을 보여준다. |
add [파일 또는 디렉토리명] |
add 뒤에 파일명을 기입하지 않으면 백업된 모든 내용을 선택하였다는 말이 된다. |
extract |
백업된 내용을 복원하게 된다. |
quit |
복원 모드에서 빠져 나오게 된다. |
6. 파일 속성변경
파일에 대한 속성 관리는 시스템 보안상 아주 중요한다. SULinux에서는 별도의 시스템 보안상 중요한 파일 리스트를 만들어 그 파일들의 속성값의 결과를 점검하도록 하는 기능을 제공하고 있다. 이 기능은 ssu라는 서버관리용 유틸리티가 설치 되면서부터 관리가 된다. SULinux를 설치 하면 기본 설치 되어 있기 때문에 파일 속성관리를 설치한후 바로 관리 할 수 있다. 그 결과값은 web을 통해 확인 할 수 있으면 자세한 내용은 “6-3-10. web 결과화면 분석방법”을 참고하기 바란다.
6-1. chattr
이 명령은 파일의 속성을 변경시키는 명령이다.
형식 : chattr [ -RV ] [ -v 버전 ] [ 모드 ] 파일명
옵 션 |
설 명 |
-R |
디렉토리와 그 이하 모든 내용의 속성을 변환시킨다. |
-V |
변화된 속성에 대하여 자세히 출력한다. |
-v 버전 |
파일 버전을 설정할 수 있다. |
심볼릭 모드의 형식 | |
+ |
주어진 속성을 추가 설정한다. |
- |
주어진 속성을 제거한다. |
= |
설정 속성만 부여하고 나머지는 해제한다. |
속 성 |
설 명 |
a |
속성을 지닌 파일은 쓰기시에 오로지 추가만 할 수 있게 만듭니다. |
c |
속성을 지닌 파일은 커널에 의해 디스크상에 압축 상태로 저장된다. 파일로부터 읽기 작업을 하면 압축이 풀린 자료가 반환되고, 쓰기 작업은디스크 상에 저장하기 전에 자동으로 압축된다. |
d |
속성을 지닌 파일은 dump명령 수행시 백업되지 않는다. |
i |
속성을 가진 파일은 수정, 삭제 등의 어떠한 작업도 할 수 없게 만듭니다. 지울 수도 이름을 변경할 수도 그리고 링크도 가할 수 없으며 어떤 자료도 써질 수 없다. 오로지 root만이 다시 이 속성을 설정하거나 지울 수 있다. |
s |
속성을 가진 파일이 지워질 때는 일단 블럭들이 모두 0 으로 되고 다시디스크에 작성하게 된다. |
S |
속성을 가진 파일이 수정될 때는 그 변화가 디스크에 동기화된다. 이것은 마치 sync 마운트 옵션을 몇몇 파일에게 부여한 것과 같것 이다. |
u |
속성을 가진 화일이 지워지면 그 내용이 별도저장되고, 사용자는 다시 복구할 수 있게 된다.. |
j |
속성을 가진 파일은 저장할 때 저널일 파일시스템으로 테이타를 저장한다. |
실제 사용의 예
6-2. lsattr
이 명령은 파일의 속성을 보여주는 명령어이다. 위에서 살펴본 chattr 명령어를 이용하여 파일의 속성을 변경하였다면 lsattr이란 이 명령어로 그 변경된 속성값을 확인 해볼 수 있다.
형식 : lsattr [ -Radv ] 파일명
옵션 |
설 명 |
-R |
디렉토리와 그 내부의 내용들까지도 속성값을 출력한다. |
-a |
‘.’로 시작하는 화일을 포함한 디렉토리 내 모든 파일을 열거한다.. |
-d |
디렉토리를 보여줄 때 그 안에든 화일을 보여주는 것이 아니라 일반 파일과 마찬가지로 보여준다. |
-v |
파일 버전을 출력한다. |
실제 사용의 예
7. 예약 작업
예약작업은 주기적으로 시스템 관리자나 애플리케이션에서 해야 할 일들을 자동으로 처리하도록 도와주는 역할을 말한다. 예약작업을 통해 진행하는 작업은 아주 다양하면 많다. 여기서는 기본 동작방법과 실행방법을 알아보겠다. SULinux에서는 예약작업을 통해 시스템 점검 및 주기적 백업관리가 가능하다. 자세한 내용은 “6-3-9. 자동 시스템 점검 & 자동백업”을 참고하기 바란다.
7-1. crontab
같은 작업을 주기적으로 반복할 수 있도록 해주는 명령어이다. 보통 /usr/bin/crontab명령어로 반복주기와 명령어는 /etc/rc.d/init.d/crond라는 cron 데몬에 의해 주기적인 작업이 가능하다.
관련명령어 및 파일
crontab이란 명령어는 cron작업을 설정하는 명령어 실행시키면 기본 편집기인 vi가 실행되도록 하는 명령어이다.
형식 : crontab [옵션] [파일명]
옵 션 |
설 명 |
-l |
현재 crontab에 의해 설정된 내용을 출력한다. |
-e |
crontab의 내용을 작성하거나 수정할수 있다. |
-r |
crontab의 내용을 삭제한다. |
-u |
root권한자가 각 사용계정으로 동작할 crontab 파일을 생성할 경우 사용한다. |
실제 사용의 예
1) [root@localhost ~ ]# crontab -l
no crontab for root
설명 : 작업의 목록을 보여준다. 하지만 no crontab for root라는 말은 root로 등록된 예약 작업이 없다는 것이다.
2) [nemo@www nemo]$ crontab -r
설명 : 이 명령어를 실행하는 계정으로 등록된 예약 작업을 모두 삭제한다.
3) [root@localhost ~ ]# crontab -e -u nemo
설명 : nemo이라는 사용자의 crontab을 작성하거나 수정한다.
4) [nemo@www nemo]$ crontab aaa
설명 : aaa라는 미리 작성한 cront 형식을 crontab에 적용하는 경우이다.
crontab 작성 형식
MM HH DD mm d command
crontab 작성을 위해서는 기본 5개의 날짜 필드와 1개의 명령필드로 구성되어 있다는 사실을 알고 있어야 한다.
날짜필드의 형식은 MM HH DD mm d 이과 같으면 각 형식의 내용은 다음과 같다.
형 식 |
설 명 |
MM |
분(Minute)을 의미한다.(0~59까지 사용) |
HH |
시(Hour)를 의미한다.(0~23까지 사용) |
DD |
날짜(Day of Month)를 의미한다.(1~31까지 사용) |
mm |
달(Month)을 의미한다.(1~12까지 사용) |
d |
요일(Day of Week)을 의미한다.(0~7까지 사용) |
command |
실행할 작업을 명기한다. |
위 형식에서 시간을 나타내는 각 필드에서 와일드 카드( * )를 사용할 수 있고 각각의 요일을 구분할 때 ',' 를 사용하고, 연일을 나타낼 때는 '-'를 사용할 수 있다. 즉 월요일과 수요일은 '1,3'으로 월요일부터 금요일까지는 '1-5'로 표시할 수있다.
예약 작업을 위한 기본 설정 파일
/etc/crontab이라는 기본 파일을 이용하여 예약 설정을 할수 있다.
위 예의 run-parts는 디렉토리 이하의 스크립트를 순차적으로 실행하라는 명령어이다.
/etc/cron.allow 은 예약 작업을 진행 할 수 있는 사용자를 제한하기 위한 설정 파일이다.
/var/spool/cron 디렉토리는 각각의 사용자가 등록한 crontab은 이 디렉토리 아래에 각 사용자의 계정이름으로 저장되어 동작하게 된다.
실제 예제를 통하 예약작업 등록 과정을 살펴보도록 하겠다.
[root@localhost /]# crontab -e
위의 내용을 입력하고 "Esc + :wq" 입력하면 설정이 완료된다.
위의 설정내용은 매일 01시에 root계정으로 “backup-1.05.1.SULinux --local”이라는 명령어를 실행하라는 것이다.
설정된 정보를 다시 확인 하실려면 “crontab -l” 하면 설정된 정보를 다시 화면에 출력해서 보여준다.
관련자료
-
이전
-
다음