bacula 操作

简介:

前面的博文里讲到了bacula服务器的快速搭建客户端的部署(包含在ks部署脚本里),本文讲述bacula的基本操作,适合快速上手。

 

操作系统:centos 6

bacula服务器:bacula.test.org

bacula客户端:apache01.test.org

 

在服务器注册bacula客户端并添加一个任务,

在/etc/bacula/bacula-dir.conf 添加如下内容:

 
 
  1. Client { 
  2.   Name = apache01.test.org 
  3.   Password = FD_PASSWORD 
  4.   Address = apache01.test.org 
  5.   FDPort = 9102 
  6.   Catalog = MyCatalog 
  7.   File Retention = 30 days 
  8.   Job Retention = 6 months 
  9. Job { 
  10.   Name = apache01.job 
  11.   Type = Backup 
  12.   Level = Incremental 
  13.   Client = apache01.test.org 
  14.   FileSet = "Full Set" 
  15.   Schedule = WeeklyCycle 
  16.   Storage = File 
  17.   Pool = File 
  18.   Messages = Standard 

 

重新载入配置文件

 
 
  1. # service bacula-dir reload 
  2. # service bacula-sd reload 

 

 

OK,恭喜你,大功告成。此时bacula服务器会定时执行默认的备份,也就是如下值:

 

默认备份路径 /usr/sbin ,(或许你想添加另外一个fileset,依葫芦画瓢即可)

 
 
  1. FileSet { 
  2.   Name = "Full Set" 
  3.   Include { 
  4.     Options { 
  5.       signature = MD5 
  6.     } 
  7.  
  8.     File = /usr/sbin 
  9.   } 
  10.  
  11.   Exclude { 
  12.     File = /var/spool/bacula 
  13.     File = /tmp 
  14.     File = /proc 
  15.     File = /tmp 
  16.     File = /.journal 
  17.     File = /.fsck 
  18.   } 

 

执行计划,第一个周日“全备”,其余周日“差备”,平时“增备”,这个计划还是比较周到的。

 
 
  1. Schedule { 
  2.   Name = "WeeklyCycle" 
  3.   Run = Full 1st sun at 23:05 
  4.   Run = Differential 2nd-5th sun at 23:05 
  5.   Run = Incremental mon-sat at 23:05 

 

备份到哪里?,默认是/tmp,也就是/etc/bacula/bacula-sd.conf中的这一段代码

 
 
  1. Device { 
  2.   Name = FileStorage 
  3.   Media Type = File 
  4.   Archive Device = /tmp  #请修改这里 
  5.   LabelMedia = yes;        
  6.   Random Access = Yes
  7.   AutomaticMount = yes;   
  8.   RemovableMedia = no
  9.   AlwaysOpen = no

 

注:

1、跟前面文章一样,必须有内网DNS,否则客户端必须在hosts文件里静态解析或使用 IP来识别。

2、本文配置文件若没有指定,则是/etc/bacula/bacula-dir.conf

3、bacula 客户端初始化后的密码是FD_PASSWORD,建议用puppet托管此文件,以便日后修改密码。

 

以下puppet 代码仅供参考

 
 
  1. file {"/etc/bacula/bacula-fd.conf" : 
  2.      ensure => present, 
  3.      owner => root, 
  4.      group => bacula, 
  5.      mode => 0640, 
  6.      source => "puppet:///files/bacula-fd.conf", 

 

bacula提供了一个强大的控制台,手动执行备份任务的办法

 

 
 
  1. [root@bacula]# bconsole 
  2. Connecting to Director 192.168.1.251:9101 
  3. 1000 OK: bacula-dir Version: 5.0.0 (26 January 2010) 
  4. Enter a period to cancel a command. 
  5. *run 
  6. Automatically selected Catalog: MyCatalog 
  7. Using Catalog "MyCatalog" 
  8. A job name must be specified. 
  9. The defined Job resources are: 
  10.      1: BackupClient1 
  11.      2: BackupCatalog 
  12.      3: RestoreFiles 
  13.      4: apache01.test.org 
  14. Select Job resource (1-4): 4 
  15. Run Backup job 
  16. JobName:  apache01.job 
  17. Level:    Incremental 
  18. Client:   apache01.test.org 
  19. FileSet:  Full Set 
  20. Pool:     File (From Job resource) 
  21. Storage:  File (From Job resource) 
  22. When:     2012-08-07 19:32:02 
  23. Priority: 10 
  24. OK to run? (yes/mod/no): yes 

 

还原备份就没有自动一说了,这是必须的

 

 
 
  1. *restore 
  2.  
  3. First you select one or more JobIds that contain files 
  4. to be restored. You will be presented several methods 
  5. of specifying the JobIds. Then you will be allowed to 
  6. select which files from those JobIds are to be restored. 
  7.  
  8. To select the JobIds, you have the following choices: 
  9.      1: List last 20 Jobs run 
  10.      2: List Jobs where a given File is saved 
  11.      3: Enter list of comma separated JobIds to select 
  12.      4: Enter SQL list command 
  13.      5: Select the most recent backup for a client 
  14.      6: Select backup for a client before a specified time 
  15.      7: Enter a list of files to restore 
  16.      8: Enter a list of files to restore before a specified time 
  17.      9: Find the JobIds of the most recent backup for a client 
  18.     10: Find the JobIds for a backup for a client before a specified time 
  19.     11: Enter a list of directories to restore for found JobIds 
  20.     12: Select full restore to a specified Job date 
  21.     13: Cancel 
  22. Select item:  (1-13): 5 
  23. Defined Clients: 
  24.      1: bacula-fd 
  25.      2: apache01.test.org 
  26. Select the Client (1-2): 2 
  27. Automatically selected FileSet: Full Set 
  28. +-------+-------+----------+------------+---------------------+------------+ 
  29. | JobId | Level | JobFiles | JobBytes   | StartTime           | VolumeName | 
  30. +-------+-------+----------+------------+---------------------+------------+ 
  31. |    17 | F     |      173 | 10,051,327 | 2012-08-07 18:38:40 | test-0014  | 
  32. +-------+-------+----------+------------+---------------------+------------+ 
  33. You have selected the following JobId: 17 
  34.  
  35. Building directory tree for JobId(s) 17 ...  +++++++++++++++++++++++++++++++++++++++++++ 
  36. 172 files inserted into the tree. 
  37.  
  38. You are now entering file selection mode where you add (mark) and 
  39. remove (unmark) files to be restored. No files are initially added, unless 
  40. you used the "all" keyword on the command line. 
  41. Enter "done" to leave this mode. 
  42.  
  43. cwd is: / 

 

进入了备份文件的根目录,里面组织的跟原系统一样,我们备份了/usr/sbin,那么根目录下只有usr子目录了,其余类推,可以用常见的几个基本命令来查看

 
 
  1. $ ls 
  2. usr/ 
  3. $ cd usr 
  4. cwd is: /usr/ 
  5. $ ls 
  6. sbin/ 
  7. $ ls 
  8. sbin/ 
  9. $ cd sbin 
  10. cwd is: /usr/sbin/ 
  11. $ ls 
  12. .sshd.hmac 
  13. addgnupghome 
  14. adduser 
  15. alternatives 
  16. anacron 
  17. applygnupgdefaults 
  18. arpd 
  19. arping 
  20. authconfig 
  21. authconfig-tui 
  22. avcstat 
  23. bacula 
  24. bacula-fd 
  25. biosdecode 
  26. bsmtp 
  27. 。。。。。。 

 

我们来还原一个文件/usr/sbin/adduser

 

 
 
  1. $ mark adduser 
  2. 1 file marked. 
  3. $ done 
  4. Bootstrap records written to /var/spool/bacula/bacula-dir.restore.1.bsr 
  5.  
  6. The job will require the following 
  7.    Volume(s)                 Storage(s)                SD Device(s) 
  8. =========================================================================== 
  9.     
  10.     test-0014                 File                      FileStorage               
  11.  
  12. Volumes marked with "*" are online. 
  13.  
  14.  
  15. 1 file selected to be restored. 
  16.  
  17. Run Restore job 
  18. JobName:         RestoreFiles 
  19. Bootstrap:       /var/spool/bacula/bacula-dir.restore.1.bsr 
  20. Where:           /tmp/bacula-restores 
  21. Replace:         always 
  22. FileSet:         Full Set 
  23. Backup Client:   apache01.test.org 
  24. Restore Client:  apache01.test.org 
  25. Storage:         File 
  26. When:            2012-08-07 19:43:05 
  27. Catalog:         MyCatalog 
  28. Priority:        10 
  29. Plugin Options:  *None* 
  30. OK to run? (yes/mod/no): yes 

可以根据需要来修改这个还原命令,比如apache02的adduser文件损坏了,我们可以调用apache01的文件来修复它。

 

还有就是默认还原的位置在/tmp/bacula-restores,会在该目录下生成这样的子目录结构:/tmp/bacula-restores/usr/sbin/adduser ,这样便于比较,如果我们把还原的位置改为/ 根目录,那么备份文件则会直接覆盖系统文件,所以要慎重。

 

更简单的操作bacula的办法是用webmin,全网页操作,不多讲。

 

总之,bacula 是个非常容易上手的开源的专业网络备份软件。在使用之前最好把它的原理弄明白。










本文转自 紫色葡萄 51CTO博客,原文链接:http://blog.51cto.com/purplegrape/957651,如需转载请自行联系原作者

目录
相关文章
|
4月前
|
算法
CF 1561
【7月更文挑战第20天】
48 2
|
人工智能 网络架构
CF 698A
CF 698A
74 0
|
人工智能
CF628B
CF628B
68 0
|
人工智能
cf 220B(莫队)
cf 220B(莫队)
98 0
CF1000F One Occurrence(莫队)
CF1000F One Occurrence(莫队)
54 0
|
存储 监控 关系型数据库