特殊:Badtitle/NS100:BackupPC

来自Ubuntu中文
跳到导航跳到搜索
可打印版本不再受到支持且可能有渲染错误。请更新您的浏览器书签并改用浏览器默认打印功能。

{{#ifexist: :BackupPC/zh | | {{#ifexist: BackupPC/zh | | {{#ifeq: {{#titleparts:BackupPC|1|-1|}} | zh | | }} }} }} {{#ifeq: {{#titleparts:BackupPC|1|-1|}} | zh | | }}

序言

BackupPC是一个免费的备份软件与基于Web的前端。可跨平台运行于任何Linux , Solaris操作系统或Unix服务器。没有客户端不是必然的,作为服务器本身就是一个客户端的一些协议,是处理其他服务本地的客户端的操作系统。


备份方法

从客户端备份数据的三种方法如下: SMB (服务器消息块) tar (磁带存档) rsync (文件传输程序的Unix系统)

WinXX Linux/Unix/MacOSX
smb *
rsync * 1. *
tar *
  1. 1 rsync / cygwin软件需要安装在客户端 备份windows系统最简单的方法就是“SMB”协议。详见BackupPC手册

配置

要配置BackupPC有3个选择:

  Web浏览器(最简单)
  文本编辑器(超级用户) 
  两者结合(平衡) 

注: BackupPC用户手册是最重要的“文本”的基础。

BackupPC的配置文件

BackupPC的配置文件中的` / etc / backuppc directory` 。最重要的两个文件是` / etc / backuppc / config.pl `和` / etc / backuppc /hosts` 。您现在应该打开它们并且熟悉所有的配置选项。这两个文件有大量注释和评论,所以当你看到他们你也就应该明白他们能坐什么了。例如,在` / etc / backuppc / config.pl 你可以自定义BackupPC如何以及何时备份,完全备份或者是增量备份,有多少日志文件等。

nano -w /etc/backuppc/config.pl
nano -w  /etc/backuppc/hosts

安装

sudo apt-get install backuppc

Add Hosts

To add a client (Hoist) to BackupPC, we must add it to `/etc/backuppc/hosts`. That file has the following format:

host        dhcp    user      moreUsers
hostname1     0     user1     anotheruser,athirduser
hostname2     1     user2     stillanotheruser

The first column contains the hostname/NetBIOS name of the client (e.g. `hostname1`), the second column whether the client is configured through DHCP, the third column contains a user that is allowed to log into the BackupPC web interface to manage that backup client, and the fourth (optional) column contains additional users that can do the same.

Browse Network

smbtree is a smb browser program in text mode. It is similar to the "Network Neighborhood" found on Windows computers. It prints a tree with all the known domains, the servers in those domains and the shares on the servers.

smbtree -b
Password:

Don't enter a password, hit enter

WORKGROUP
        \\BACKUP                        backup server (Samba, Ubuntu)
                \\BACKUP\IPC$                   IPC Service (backup server (Samba, Ubuntu))
                \\BACKUP\print$                 Printer Drivers
        \\AMD6000
cli_rpc_pipe_open: cli_nt_create failed on pipe \srvsvc to machine AMD6000.  Error was NT_STATUS_ACCESS_DENIED

Your network will differ, BACKUP is the name of our BackupPC server, AMD6000 is the name of our Windows Vista PC we want to back up. Although `AMD6000` is configured through DHCP, dhcp should only be set to 1 if the following tests fail:

nmblookup AMD6000

If the test is successful, it should display `AMD6000` current IP address:

querying amd6000 on 192.168.0.255
192.168.0.50 amd6000<00>

Now that you know `AMD6000` current IP address, run the same test in the other direction:

nmblookup -A 192.168.0.50

If successful, the output should look like this:

Looking up status of 192.168.0.50
        AMD6000         <00> -         B <ACTIVE>
        WORKGROUP       <00> - <GROUP> B <ACTIVE>
        AMD6000         <20> -         B <ACTIVE>
        WORKGROUP       <1e> - <GROUP> B <ACTIVE>

        MAC Address = 00-1A-92-B0-4C-63

Both tests were successful, so we can set `dhcp` to 0, and we put `AMD6000 0 user` into `/etc/backuppc/hosts` and comment out the `localhost` line:

nano -w /etc/backuppc/hosts
[...]
AMD6000      0       user
#localhost   0       backuppc

If the tests had not been successful, we would have put `AMD6000 1 user` into `/etc/backuppc/hosts` instead, and in addition to that we would have had to change the variable `$Conf{DHCPAddressRanges}` in `/etc/backuppc/config.pl`. We have added the user user to the hosts file. That's the system user whom BackupPC will send email reports regarding `AMD6000`, so we should create that user on the BackupPC server now:

useradd -m user
passwd user

In addition to that we must create a password for user for the BackupPC web interface:

htpasswd /etc/backuppc/htpasswd user

(If you like you can now open a second browser and log in as `user` on `http://192.168.0.51/backuppc/`.)

Backup Linux Client (rsync)

Now we must edit /etc/backuppc/config.pl. The backup method for AMD6000 will be rsync, so we set $Conf{XferMethod} = 'rsync';. AMD6000 has just one (big) partition (/), so we set $Conf{RsyncShareName} == '/';. If you have multiple partitions to backup, you'd specify something like $Conf{RsyncShareName} == ['/', '/var', '/data', '/boot']; instead. rsync will be tunneled through SSH (port 22). SSH needs to know the hostname or IP address of the client. Unless you have a DNS server that resolves AMD6000 to its IP address, SSH will not be able to resolve the name AMD6000. Therefore we replace $host with $hostIP in $Conf{RsyncClientCmd} and $Conf{RsyncClientRestoreCmd}.

nano -w /etc/backuppc/config.pl
[...]
$Conf{XferMethod} = 'rsync';

$Conf{RsyncClientPath} = '/usr/bin/rsync';
$Conf{RsyncClientCmd} = '$sshPath -q -x -l root $hostIP $rsyncPath $argList+';
$Conf{RsyncClientRestoreCmd} = '$sshPath -q -x -l root $hostIP $rsyncPath $argList+';
$Conf{RsyncShareName} = '/';
#$Conf{RsyncShareName} = ['/', '/var', '/data', '/boot'];
[...]

(You might wonder now how we can specify options for multiple clients because the options for notebook will be different from those for AMD6000. It works like this: the options in /etc/backuppc/config.pl are global values that are valid for all clients unless they have their onw configuration file in /etc/backuppc, named after their hostname. So for notebook we will create /etc/backuppc/notebook.pl, and it will contain only the values that are different from the ones in /etc/backuppc/config.pl. In fact, we could have created /etc/backuppc/falko-desktop.pl for falko-desktop instead of modifying /etc/backuppc/config.pl.)

Enable settings

Next restart BackupPC:

/etc/init.d/backuppc restart

Backup Windows Client (smb)

To make backups of Windows systems using smb, we must share the folder that we want to back up. In this case I want to backup the whole C: drive, so I right-click on it in the Windows Explorer and go to Sharing. As share name I specify C. Next, on server1.example.com, I add a line for notebook to /etc/backuppc/hosts (I do this as root). In this case I use user again as the user. If you use a different username than before, make sure you create it on the system and for the BackupPC web interface, as shown in chapter 5.

vi /etc/backuppc/hosts
[...]
AMD6000      0       user
notebook     0       user
#localhost   0       backuppc

Then create the file /etc/backuppc/notebook.pl and add all options that are different from the ones in /etc/backuppc/config.pl. In this case we add $Conf{XferMethod} == 'smb';. Our share name is C, so we put $Conf{SmbShareName} == 'C'; into it as well as the username and password for the Windows share:

nano -w /etc/backuppc/notebook.pl
$Conf{SmbShareName} = 'C';
$Conf{SmbShareUserName} = 'username';
$Conf{SmbSharePasswd} = 'password';
$Conf{XferMethod} = 'smb';

Enable Settings

Then restart BackupPC:

/etc/init.d/backuppc restart

Then reload the BackupPC web interface again. You should now find notebook in the list of clients: You can start the first backup of notebook manually or wait until BackupPC starts it:

Backup Linux Clients (tar)

BackupPC is a great backup program for an Ubuntu server. However, backing up Ubuntu client machines doesn’t work “out of the box” due to Ubuntu’s lack of a root account. The following describes how to make BackupPC work with Ubuntu's sudo implementation. By adding sudo to the TAR commands in /etc/backuppc/config.pl and adding backuppc to the sudoers list, you’re able to perform both backups and restores directly from the web-based interface.

Modify /etc/backuppc/config.pl

  • Run “sudo gedit /etc/backuppc/config.pl”
  • Add sudo to the TAR Client and ClientRestore commands
  • Change $Conf{TarClientCmd} and $Conf{TarClientRestoreCmd} to read
$Conf{TarClientCmd} = ‘sudo $tarPath -c -v -f - -C $shareName’
. ‘ –totals’;
$Conf{TarClientRestoreCmd} = ‘sudo $tarPath -x -p –numeric-owner –same-owner’
. ‘ -v -f - -C $shareName’;
  • Also remove plus (+) from $incrDate in $Conf{TarIncrArgs} so it won't be double escaped (need to escape only once when running sudo):
$Conf{TarIncrArgs} = '--newer=$incrDate $fileList+';
  • Change $Conf{BackupFilesExclude} (these seem to all be temp files that you don’t really need to backup) to read
$Conf{BackupFilesExclude} = [’/proc’, ‘/dev’, ‘/tmp’, ‘/mnt’, ‘/media’, ‘/sys’, ‘/lost+found’, ‘/usr/src’, ‘/var/lib’, ‘/var/tmp’, ‘/var/cache’, ‘/var/spool’, ‘/var/run’, ‘/var/lock’, ‘/var/games’, ‘/home/*/.Trash’, ‘/home/*/.mozilla/*/*/Cache’, ‘/home/*/.mozilla/*/*/Cache.Trash’];

Add backuppc to the sudoers list

  • Run “sudo visudo”
  • At the bottom of the file add
# Allow backuppc to run tar without a password
backuppc ALL=NOPASSWD: /bin/tar
  • If you are unfamiliar with vi editor: Scroll to the end of last line of the file, press a to start adding text, write magic lines mentioned above, hit esc, type ":w"+enter to save file, ":q" to quit (":q!" to quit without saving changes).

alternatives

For other ways of backing up some or all of your system, see BackupYourSystem .

References

Authors

  • falko