2011. 8. 12. 23:58

[ ssh를 사용하여 tar아카이브 백업 ]

♧ OpenSSH(www.ppenssh.org)는 안전한 원격 로그인, 원격 실행, 그리고 네트워크 인터페이스를 통해

원격지로 파일을 복사할 수 있는 툴들을 제공.

 

▶ 원격 시스템의 파일을 → 로컬 시스템으로 복사.

$ ssh devanix@server1 'tar cf - myfile*' | tar xvf -

devanix@server1's password: ******

myfile1

myfile2

☞ 원격지 시스템에서 실행한 tar 명령어(파일을 압축된 아카이브로 생성)의 표준출력 스트림을

파이프로 보내고 ssh 명령어를 통해 로컬시스템으로 전달한 뒤 로컬의 tar 명령어로 풀어냄.

(로컬 디렉토리에 동일한 파일이 있을 경우 덮어쓰기 함)

 

▷ 로컬 시스템의 파일을 → 원격 시스템으로 복사.

$ tar cf - myfile* | ssh devanix@server1 'cd /data; tar xvf -'

devanix@server1's password: ******

myfile1

myfile2

☞ 원격지 시스템에 있는 특정 디렉토리로 이동하기 위해 cd명령 추가.

 

▶ 원격 시스템에서 전송받은 압축 파일을 풀어내지 않고 tgz 파일로 저장.

$ ssh devanix@server1 'tar czf - myfile*' | cat > myfiles.tgz

server1devanix사용자의 홈 디렉토리에서 myfile로 시작하는 모든 파일을 압축한 뒤

로컬 시스템에 myfiles.tgz로 저장.

 

▷ 로컬 시스템의 압축한 파일을 원격 시스템에 tgz파일로 전송.

$ tar czf - myfile* | ssh devanix@server1 'cat > myfiles.tgz'

 

 

 

 

[ rsync를 사용하여 파일 백업]

rsync는 체크섬을 사용하여 원격지 파일과 로컬 파일을 작은 블록 단위로 비교해 백업을 수행.

 

rsync 명령어는 원격 쉘 프로그램인 ssh를 이용하거나

원격 서버에서 실행되는 rsyncd데몬을 통해 동작할 수 있다.

 

▶ ssh를 통해 원격 디렉토리와 동일한 로컬 디렉토리(미러)를 만드는 rsync 예제 :

$ rsync -avz --delete devanix@server1:/home/devanix/data devadata/

(-a 옵션) : 원격지 디렉토리 이하의 모든 파일을 재귀적으로 복사.

(-v옵션) : 명령어가 실행되는 동안 보다 상세한 정보 출력.

(-z 옵션) : 압축 옵션.

(--delete) : rsync 원격 시스템에 존재하지 않은 파일은 로컬에서도 삭제.

(rsync는 기본적으로 변경된 파일만 백업하기 때문에, 원격지에서 파일이 삭제된 경우, 아무런 조치를

취하지 않는다. 따라서 --delete 옵션을 사용해 더 이상 백업할 필요가 없는 파일을 삭제해 준다)

 

▶ 매주 rsync를 이용하여 백업.

# mkdir /var/backups

# rsync --delete --backup \

--backup-dir=/var/backups/backup-`date +%A` \

-avz devanix@server1:/home/devanix/data/ \

/var/backups/current-backup/

☞ 원격시스템 server1/home/devanix/data 디렉토리의 모든 파일이

로컬 디렉토리 /var/backups/current-backup으로 복사.

☞ 당일 변경된 모든 파일은 /var/backups/backup-Monday와 같은 형태로 복사.

☞ 한 주 동안, 과거 7일간의 변경사항이 반영된 7개의 디렉토리가 생성 된다.

 

▶ 하드링크를 이용해 백업.

# rm -rf /var/backups/backup-old/

# mv /var/backups/backup-current/ /var/backups/backup-old/

# rsync --delete --link-dest=/var/backups/backup-old -avz \

devanix@server1:/home/devanix/data/ /var/backups/backup-current/

☞ 지난 backup-old 디렉토리 내용을 지우고,

☞ 기존의 backup-current 디렉토리 백업내용을 backup-old 디렉토리로 이동.

☞ 이렇게 2주가 지난 backup-old 디렉토리는 지난주 백업된 backup-current로 대체될 것이다.

☞ 새로운 백업은 rsync--link-dest 옵션과 함께 실행해 만든다.

원격시스템 server1data/ 디렉토리에서 새로 백업한 파일이 이전 백업(이제는 backup-old에 저장)과

동일한 경우, 해당 파일을 backup-currentbackup-old 디렉토리 간에 하드링크를 생성.

 

▷ 두 디렉토리간 하드링크를 통해 많은 디스크 공간을 절약할 수 있다.

만약 양쪽 디렉토리에 file1.txt 파일을 가지고 있다면, 다음 명령어를 통해 해당 파일의 inode가

하나의 동일한 물리적 파일을 향하는 것을 확인할 수 있다.

$ ls -I /var/backups/backup*/file1.txt

260761 /var/backups/backup-current/file1.txt

260761 /var/backups/backup-old/file1.txt

 

 

Posted by devanix
2011. 8. 12. 07:12

 

 












AdvancedLinuxProgramming
카테고리 과학/기술 > 컴퓨터
지은이 Mitchell, Mark/ Samuel, Alex (NewRiders, 2001년)
상세보기
 

 

 

[ 책소개 ]

Advanced Linux Programming is divided into two parts. The first covers generic UNIX system services,

but with a particular eye towards Linux specific information. This portion of the book will be of use even

to advanced programmers who have worked with other Linux systems since it will cover Linux specific

details and differences. For programmers without UNIX experience, it will be even more valuable. The second

section covers material that is entirely Linux specific. These are truly advanced topics, and are the techniques

that the gurus use to build great applications. While this book will focus mostly on the Application

Programming Interface (API) provided by the Linux kernel and the C library, a preliminary introduction to the

development tools available will allow all who purchase the book to make immediate use of Linux.

 

 

Title

File

Filesize

Front Matter and Table of Contents

pdf

1273361

Chapter 01 - Advanced Unix Programming with Linux

pdf

235835

Chapter 02 - Writing Good GNU/Linux Software

pdf

280326

Chapter 03 - Processes

pdf

241758

Chapter 04 - Threads

pdf

292419

Chapter 05 - Interprocess Communication

pdf

289853

Chapter 06 - Mastering Linux

pdf

268821

Chapter 07 - The /proc File System

pdf

258582

Chapter 08 - Linux System Calls

pdf

261352

Chapter 09 - Inline Assembly Code

pdf

204992

Chapter 10 - Security

pdf

288441

Chapter 11 - A Sample GNU/Linux Application

pdf

298215

Appendix A - Other Development Tools

pdf

272377

Appendix B - Low Level I/O

pdf

252755

Appendix C - Table of Signals

pdf

177879

Appendix D - Online Resources

pdf

148074

Appendix E - Open Publication License Version 1.0

pdf

176596

Appendix F - The GNU General Public License

pdf

228793

Index

pdf

1253094

<소스다운로드>

 

 

출처 : http://www.advancedlinuxprogramming.com/downloads.html

Posted by devanix
2011. 8. 12. 05:17

 











유닉스이론과실습유닉스전문가로가는첫걸음
카테고리 컴퓨터/IT > OS
지은이 윤소정 (한빛미디어, 2006년)
상세보기
 

   

[ 책소개 ]

누구를 위한 책인가?

이 책은 유닉스나 리눅스에 대한 기본 지식을 배우고자 하는 컴퓨터 관련 학과의 학부생을 대상으로 한다.

가장 일반적인 솔라리스를 기반으로, 유닉스 입문에 꼭 필요한 기본 기능과 명령의 사용 방법을 다양한

예제를 통해 익힐 수 있다. 유닉스에서 중요하고 꼭 알아야 할 내용만 엄선하여 상세히 다루었으므로 강의

교재로 적합하며, 독학용으로도 활용할 수 있다.

 

무엇을 다루는가?

이 책은 총 4부로 구성되어 있다.

1장~5장: 유닉스의 기본_유닉스 개요 및 기본 사용법, 파일과 디렉토리 다루기, vi 편집기 사용법,

콘 셸 활용법. 6장~11장: 유닉스 고급 기능_파일 접근 권한, 고급 파일 관리, 사용자와 프로세스,

파일 백업과 압축, 인터넷과 통신 등 12장~13장: 유닉스 셸_셸의 이해, 콘 셸 프로그래밍 기초

14~15장: 유닉스 시스템 관리 기초_유닉스 내부 구조, 시스템 관리 기초

 


<예제소스>
Posted by devanix