Saturday, 21 December 2013

Centralized Backup with BackupPC

BackupPC (BPC) là 1 software viết bằng Perl, cung cấp giải pháp Backup tập trung cho các server.
Bạn có thể backup toàn bộ server hoặc thư mục chỉ định, và restore lại khi cần thiết.

BPC thực hiện việc tranfer files qua: FPT, rsync, hoặc Samba ...
User có thể lên lịch backup hoặc backup thủ công (kích hoạt bằng tay)
BPC có sẵn trong Ubuntu default source list, nên cài đặt đơn giản chỉ bằng:

sudo apt-get update
sudo apt-get install backuppc


Tại Postfix Configuration chọn Internet Site
Và Chỉnh system mailname theo config của bạn



Tại Configuring backuppc tick vào Apache để cài đặt webserver (Thực ra có mỗi Apache)


Tiếp theo là prompt thông báo về url truy cập đến WebUI của BackupPC

URL: http://your.domain.or.ip/backuppc/
Usernam: 'backuppc'
Password: 'tm5hyD9e'

Sau khi cài đặt xong, bạn có thể đổi password cho dễ nhớ.

root@backup-demo:# sudo htpasswd /etc/backuppc/htpasswd backuppc
New password: xxxx
Re-type new password: xxxx
Updating password for user backupp
Restart lại BCP service để có hiệu lực: `service backuppc restart`

Giờ bạn có thể truy cập đến: http://your.domain.or.ip/backuppc/ với username 'backuppc' và password đã cấu hình ở trên
để vào WebUI của BPC - là 1 trang home đơn giản, lạc hậu


Vào Edit config > Xfer : Đây là vùng cho phép config tranfer method.
Tên của các option đều là các link đến mục help tương ứng của BCP, nó sẽ hướng dẫn chi tiết việc cấu hình option này, rất tiện cho việc config.

Ở đây mình chọn rsync. Để dùng được rsync cả máy chủ và khách đều phải cài rsync (apt-get install rsync). Và thực hiện tiếp các bước như bên dưới.
Chọn xong, kéo xuống dưới mục: Rsync Paths/Commands/Args


Chú ý, đến RsyncClientCmdRsyncClientRestoreCmd. Mặc định là
RsyncClientCmd $sshPath -q -x -l *root* $host $rsyncPath $argList+
RsyncClientRestoreCmd $sshPath -q -x -l *root* $host $rsyncPath $argList+
`root` là ssh user để sync data từ client về. Bạn cần đổi lại cho hợp lý. VD trên cloud là `clouduser`
Hoặc nếu muốn sử dụng user `root` để backup, bạn cần enable root login và add public key của BCP server vào máy client.
Tiếp theo cần generate ssh key cho backuppc user

root@backup-demo:~# sudo su backuppc
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/var/lib/backuppc/.ssh/id_rsa):
Created directory '/var/lib/backuppc/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /var/lib/backuppc/.ssh/id_rsa.
Your public key has been saved in /var/lib/backuppc/.ssh/id_rsa.pub.
The key fingerprint is:
3c:11:2b:f2:65:31:fb:98:e2:a8:9d:e4:ae:91:97:0e backuppc@backup-demo
The key's randomart image is:
+--[ RSA 2048]----+
|        +        |
|         *       |
|    . . *        |
|     o = =       |
|      o S .      |
|   . + . .       |
|  E = .          |
|   X .           |
|  oo*            |
+-----------------+
$ cat /var/lib/backuppc/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC5udMeQ2SdTl9HRPEL49InRBrsyBXEL0ex/X+VaN6lJEZyl/q/B8Eo0bRy744BLYWfq/KZbZDMCOIzRcEnmTmm/BPmx69tAB178VYbXUy2O/wC6Xy3LBduQA5UkUHVTc9b1vVL/nan0tsZxuRluL0Et3AdY6y2Fh2kqF8hQj25Fv+tX1glxAuF/9oVc0zvzZF2cjXvtbMlzSfvLMaVwlj9rlhcMyOwhsVpvx0SHYaPLS+JNNsouLdhypdWD2WdMH6xD30Txacf8ToGtX7+T6LbfUDD/Jy387scHKbStf6EaxFdso1T9N4/WD6F4rqpXnhN9kIS9nZ2PBfg2FN1u6sL backuppc@backup-demo
Sau đó add public key vào máy client để backup. Nếu cần backup data của user `git` thì add key vào /home/git/.ssh/authorized_keys
Nếu backup cả server, bạn cần dùng user `root`.
Để user root có thể login qua ssh cần:
M file: /etc/ssh/sshd_config
Sa `PermitRootLogin` thành `yes`
Restart li ssh service (service ssh restart)

Và add public key ca BPC vào /root/.ssh/authorized_keys

Chuyển sang config Hosts:


Add ip host và ssh user vào. Save lại.
Lúc này mục Hosts bên menu trái sẽ có thêm Hosts vừa add.


Vào Edit Config của Host > Xfer > RsyncShareName : Để config folder cần backup. Để trống nếu backup toàn bộ server.
Click Start Full Backup để tiến hành full backup.
Sau khi backup có thể browse để các file đã được backup.


Ngoài ra còn có thể config được số lượng bản backup giữ trên BCP, tuổi thọ các bản backup, email notify...+ nhiều thứ - bạn tự tìm hiểu và trải nghiệm.

Các mục log sẽ cung cấp log của BCP trong quá trình hoạt động.

BCP cung cấp 2 kiểu backup: Full Backup Incremental Backup. Bạn cần chạy Full Backup trước, Incremental Backup là các bản backup phụ trên nền của full backup - tức là backup các file có thay đổi so với bản full.

Enjoy it!