Posted on 2010/07/21 14:45
Filed Under 리눅스기술문서/서버관련 조회수: view 18882

발췌 : http://www.cep.kr/blog/cep/239

bacula를 설치하기위해서는 다음 몇가지가 필요하다. ( bin & devel package )
readline package
mysql package ( 다른 DB package여도 된다.)
  - mysql server를 위해 perl-DBD-MySQL package도 필요
python package

start mysql daemon

[] Bacula-5.0.2 install

download : http://www.bacula.org

extract : tar zxvf bacula-x.x.x.tar.gz

configure : ./configure  --prefix=/usr/local/bacula-5.0.2 --with-x --with-mysql --with-readline --with-python --with-db-password=BACULA_PWD --with-db-port=3306 --enable-includes  --enable-bwx-console --enable-static --enable-shared

mysql port is 3306.

make : make

install : make install

환경설정하기 : bacula server
cd /usr/local/bacula-5.0.2/etc
#환경설정 했던것을 다시한번 보고 싶을때
./bacula_config
#create bacula database to mysql
./create_bacula_datase
#create bacula table to mysql
./make_bacula_tables
#copy from <bacula source>/examples/sample-query.sql to /usr/local/bacula-5.0.2/etc/query.sql
cp /root/bacula-5.0.2/examples/sample-query.sql to /usr/local/bacula-5.0.2/etc/query.sql


checking /etc/service
[root@backup bacula-5.0.2]# cat /etc/services |grep bacula
bacula-dir      9101/tcp                        # Bacula Director
bacula-dir      9101/udp                        # Bacula Director
bacula-fd       9102/tcp                        # Bacula File Daemon
bacula-fd       9102/udp                        # Bacula File Daemon
bacula-sd       9103/tcp                        # Bacula Storage Daemon
bacula-sd       9103/udp                        # Bacula Storage Daemon


run : cd /usr/local/bacula-5.0.2/sbin
        ./bacula start
        ./console  (or ./gnome-console)

stop : ./bacula stop


checking bacula stuff
# ps -ef |grep bacula
root      2040     1  0 22:32 ?        00:00:00 /usr/local/bacula-5.0.2/sbin/bacula-sd -v -c /usr/local/bacula-5.0.2/etc/bacula-sd.conf
root      2050     1  0 22:32 ?        00:00:00 /usr/local/bacula-5.0.2/sbin/bacula-fd -v -c /usr/local/bacula-5.0.2/etc/bacula-fd.conf
root      2058     1  0 22:32 ?        00:00:00 /usr/local/bacula-5.0.2/sbin/bacula-dir -v -c /usr/local/bacula-5.0.2/etc/bacula-dir.conf
# netstat -na |grep 910
tcp        0      0 0.0.0.0:9102                0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:9103                0.0.0.0:*                   LISTEN    
# ./bacula status
bacula-sd (pid 18753) is running...
bacula-fd (pid 18763) is running...
bacula-dir (pid 18771) is running...
그러나 bconsole을 띄우면 bacula-dir 데몬이 죽게된다. 그래서 netstat로 9101 포트가 살아 있는지 확인을 꼭해야 한다.
# ./bacula status
bacula-sd (pid 2040) is running...
bacula-fd (pid 2050) is running...
bacula-dir dead but pid file exists

이것은 대게 mysql과 bacula와 연동이 안되서 생기는 증상이다.
# ./bacula stop

# mysql
mysql> use mysql
mysql> insert into user (host,user,password) values('localhost','bacula',password('BACULA_PWD'));
mysql> insert into db values('%','bacula','bacula','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','N','N');


[root@backup etc]# ./bacula start
Starting the Bacula Storage daemon
Starting the Bacula File daemon
Starting the Bacula Director daemon
[root@backup etc]# ps -ef |grep bacu
root     19144     1  0 23:13 ?        00:00:00 /usr/local/bacula-5.0.2/sbin/bacula-sd -v -c /usr/local/bacula-5.0.2/etc/bacula-sd.conf
root     19154     1  0 23:13 ?        00:00:00 /usr/local/bacula-5.0.2/sbin/bacula-fd -v -c /usr/local/bacula-5.0.2/etc/bacula-fd.conf
root     19162     1  0 23:13 ?        00:00:00 /usr/local/bacula-5.0.2/sbin/bacula-dir -v -c /usr/local/bacula-5.0.2/etc/bacula-dir.conf
root     19168  1045  0 23:13 pts/2    00:00:00 grep bacu
[root@backup etc]# netstat -na |grep 910
tcp        0      0 0.0.0.0:9101                0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:9102                0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:9103                0.0.0.0:*                   LISTEN      

[root@backup etc]# cd ../sbin
[root@backup sbin]# ls
bacula      bacula-fd  bconsole  bextract  bregex  bsmtp  btraceback  dbcheck
bacula-dir  bacula-sd  bcopy     bls       bscan   btape  bwild
[root@backup sbin]# ./bconsole
Connecting to Director backup:9101
1000 OK: backup-dir Version: 5.0.2 (28 April 2010)
Enter a period to cancel a command.
*

Test backup
[root@backup etc]# pwd
/usr/local/bacula-5.0.2/etc
# vi file-list
--------------------------------------------------------
/usr/local/bacula-5.0.2/share/man/man1/bacula-bwxconsole.1.gz
/usr/local/bacula-5.0.2/share/man/man1/bacula-tray-monitor.1.gz
--------------------------------------------------------
# bacula-fd.conf 는 backup 될곳(client)에 떠 있는 daemon의 환경설정파일. (client server)
# vi bacula-dir.conf    (backup server)
backup 할 곳(client) 정의 및 backup 서버를 정의한다.
--------------------------------------------------------
# List of files to be backed up
FileSet {
  Name = "Full Set"
  Include {
    Options {
      signature = MD5
    }
#
#  Put your list of files here, preceded by 'File =', one per line
#    or include an external list with:
#
#    File = <file-name
#
#  Note: / backs up everything on the root partition.
#    if you have other partitions such as /usr or /home
#    you will probably want to add them too.
#
#  By default this is defined to point to the Bacula binary
#    directory to give a reasonable FileSet to backup to
#    disk storage during initial testing.
#
    #File = /usr/local/bacula-5.0.2/sbin
    File = </usr/local/bacula-5.0.2/etc/file-list #<= backup file list
  }
 
#
# If you backup the root directory, the following two excluded
#   files can be useful
#
  Exclude {
    File = /usr/local/bacula-5.0.2/var/bacula/working
    File = /tmp
    File = /proc
    File = /tmp
    File = /.journal
    File = /.fsck
  }
}
--------------------------------------------------------------
# vi bacula-sd.conf     ( backukp server )
backup파일이 쌓일 storage 관련 정보를 지정해준다.
--------------------------------------------------------------
Device {
  Name = FileStorage
  Media Type = File
#  Archive Device = /tmp
  Archive Device = /backup/bacula  # <= backup 된 디렉토리를 써준다.
  LabelMedia = yes;                   # lets Bacula label unlabeled media
  Random Access = Yes;
  AutomaticMount = yes;               # when device opened, read it
  RemovableMedia = no;
  AlwaysOpen = no;
}
--------------------------------------------------------------

[root@backup etc]# ./bconsole
Connecting to Director backup:9101
1000 OK: backup-dir Version: 5.0.2 (28 April 2010)
Enter a period to cancel a command.
* label
Automatically selected Catalog: MyCatalog
Using Catalog "MyCatalog"
Automatically selected Storage: File
Enter new Volume name: test2
Defined Pools:
     1: Default
     2: File
     3: Scratch
Select the Pool (1-3): 2
Connecting to Storage daemon File at backup:9103 ...
Sending label command for Volume "test2" Slot 0 ...
3000 OK label. VolBytes=186 DVD=0 Volume="test2" Device="FileStorage" (/backup/bacula)
Catalog record for Volume "test2", Slot 0  successfully created.
Requesting to mount FileStorage ...
3906 File device "FileStorage" (/backup/bacula) is always mounted.
*

이렇게 label 명령어로 백업 시킬 device (file name)을 생성시킨후에 run 명령어로 백업하면 백업될곳의 내용이 label로 정의 한 파일에 저장된다.



[] bacula daemon 설명
bacula director (bacula-dir)
   - backup, restore 등의 작업을 총괄하는 서비스
   - backup schedule을 관리
bacula console (console)
   - 관리자가 명령어를 입력하는 콘솔 (director에 접속할수 있어야함)
   - bwx-console은 GUI 환경의 console
bacula file (bacula-fd)
    - 백업할 곳의 장비에 설치되는 서비스
    - director로부터 명령어를 받아서 backup 하거나 restore를 해준다.
    - restore를 할때 다른곳으로도 보내서 restore가 가능하다.
bacula storage (bacula-sd)
    - backup device를 갖고 있는 장비에 설치되는 서비스
    - bacula-fd로부터 날아오는 파일을 저장 하거나
       backup된 것으로부터 bacula-fd로 데이터를 날려주는 daemon
    - directory에 file device를 사용하거나 DVD, DLT, 8mm, 4mm 등의 device 정의
    - director로부터 명령어를 받아 처리함.
Catalog
    - 백업되는 파일들의 정보가 저장되는 데이터베이스 머신에 설치되는 서비스
    - 이것이 깨진경우 백업파일이 직접 접근할수 있는 유틸을 사용가능
bacula monitor
    - 여러 버시스들의 상태를 알수 있는 GUI 프로그램
Writer profile
author image
-아랑 -
2010/07/21 14:45 2010/07/21 14:45

트랙백 주소 : 이 글에는 트랙백을 보낼 수 없습니다

About

by 서진우
Twitter :@muchunalang

Counter

• Total
: 3904403
• Today
: 656
• Yesterday
: 711