Thứ năm, 09/04/2015 | 00:00 GMT+7

Cách cài đặt Bacula Server trên Ubuntu 14.04

Bacula là một giải pháp backup mạng open-souce cho phép bạn tạo các bản backup và thực hiện khôi phục dữ liệu của hệ thống máy tính của bạn . Nó rất linh hoạt và mạnh mẽ, điều này làm cho nó, trong khi cấu hình hơi cồng kềnh, phù hợp để backup trong nhiều tình huống. Hệ thống backup là một thành phần quan trọng trong hầu hết các cơ sở hạ tầng server , vì việc khôi phục sau khi mất dữ liệu thường là một phần quan trọng trong các kế hoạch khôi phục sau thảm họa.

Trong hướng dẫn này, ta sẽ chỉ cho bạn cách cài đặt và cấu hình các thành phần server của Bacula trên server Ubuntu 14.04. Ta sẽ cấu hình Bacula để thực hiện một công việc hàng tuần là tạo bản backup local (tức là bản backup của server lưu trữ của chính nó). Bản thân đây không phải là cách sử dụng Bacula đặc biệt hấp dẫn, nhưng nó sẽ cung cấp cho bạn một điểm khởi đầu tốt để tạo bản backup các server khác của bạn, tức là các client backup . Hướng dẫn tiếp theo trong loạt bài này sẽ đề cập đến việc tạo bản backup của các server khác, từ xa, của bạn bằng cách cài đặt và cấu hình client Bacula cũng như cấu hình server Bacula.

Nếu bạn muốn sử dụng CentOS 7 thay thế, hãy làm theo liên kết sau:Cách cài đặt server Bacula trên CentOS 7 .

Yêu cầu

Bạn phải có quyền truy cập superuser (sudo) trên server Ubuntu 14.04. Ngoài ra, server sẽ yêu cầu đủ dung lượng ổ đĩa cho tất cả các bản backup mà bạn định giữ lại tại bất kỳ thời điểm nào.

Nếu bạn đang sử dụng DigitalOcean, bạn nên bật Mạng riêng trên server Bacula của bạn và tất cả các server khách của bạn nằm trong cùng một khu vực trung tâm dữ liệu. Điều này sẽ cho phép server của bạn sử dụng mạng riêng khi thực hiện backup , giảm chi phí mạng.

Ta sẽ cấu hình Bacula để sử dụng FQDN riêng của các server của ta , ví dụ: bacula.private.example.com . Nếu bạn chưa cài đặt DNS, hãy sử dụng các địa chỉ IP thích hợp để thay thế. Nếu bạn chưa bật mạng riêng tư, hãy thay thế tất cả thông tin kết nối mạng trong hướng dẫn này bằng địa chỉ mạng mà server có thể truy cập được (ví dụ: địa chỉ IP công cộng hoặc tunnel VPN).

Hãy bắt đầu bằng cách xem tổng quan về các thành phần của Bacula.

Tổng quan về thành phần Bacula

Mặc dù Bacula bao gồm một số thành phần phần mềm, nó tuân theo mô hình backup server -máy khách; để đơn giản hóa cuộc thảo luận, ta sẽ tập trung nhiều hơn vào server backup và các máy khách backup hơn là các thành phần Bacula riêng lẻ. Tuy nhiên, điều quan trọng là phải có kiến thức sơ lược về các thành phần Bacula khác nhau, vì vậy ta sẽ xem xét chúng ngay bây giờ.

Máy chủ Bacula, mà ta cũng sẽ gọi là " server dự phòng", có các thành phần sau:

  • Bacula Director (DIR): Phần mềm điều khiển các hoạt động backup và khôi phục được thực hiện bởi các daemon File và Storage
  • Storage Daemon (SD): Phần mềm thực hiện đọc và ghi trên các thiết bị lưu trữ được sử dụng để backup
  • Danh mục: Dịch vụ duy trì database gồm các file đã được backup . Database được lưu trữ trong database SQL như MySQL hoặc PostgreSQL
  • Bacula Console: Giao diện dòng lệnh cho phép administrator backup tương tác và điều khiển Bacula Director
Note: The Bacula server components don't need to run on the same server, but they all work together to provide the backup server functionality. 

Một máy khách Bacula, tức là một server sẽ được backup , chạy thành phần File Daemon (FD) . File Daemon là phần mềm cung cấp cho server Bacula (cụ thể là Director) quyền truy cập vào dữ liệu sẽ được backup . Ta cũng sẽ gọi các server này là “máy khách dự phòng” hoặc “máy khách”.

Như ta đã lưu ý trong phần giới thiệu, ta sẽ cấu hình server backup để tạo bản backup hệ thống file của riêng nó. Điều này nghĩa là server backup cũng sẽ là một client backup và sẽ chạy thành phần File Daemon.

Hãy bắt đầu cài đặt.

Cài đặt MySQL

Bacula sử dụng database SQL, chẳng hạn như MySQL hoặc PostreSQL, để quản lý danh mục backup của nó. Ta sẽ sử dụng MySQL trong hướng dẫn này.

Đầu tiên, hãy cập nhật apt-get:

  • sudo apt-get update

Bây giờ cài đặt MySQL Server với apt-get:

  • sudo apt-get install mysql-server

Bạn sẽ được yêu cầu nhập password cho admin-user database MySQL, root. Nhập password , sau đó xác nhận nó.

Hãy nhớ password này, vì nó sẽ được sử dụng trong quá trình cài đặt Bacula.

Cài đặt Bacula

Cài đặt server Bacula và các thành phần client , sử dụng apt-get:

  • sudo apt-get install bacula-server bacula-client

Bạn sẽ được yêu cầu về một số thông tin sẽ được sử dụng để cấu hình Postfix, mà Bacula sử dụng:

  • Loại Cấu hình Thư Chung: Chọn “Trang web Internet”
  • Tên thư hệ thống: Nhập FQDN của server hoặc tên server của bạn

Tiếp theo, bạn sẽ được yêu cầu về thông tin sẽ được sử dụng để cài đặt database Bacula:

  • Cấu hình database cho bacula-director-mysql với dbconfig-common ?: Chọn “Có”
  • Mật khẩu của admin-user database : Nhập password root MySQL của bạn (được đặt trong quá trình cài đặt MySQL)
  • Mật khẩu ứng dụng MySQL cho bacula-director-mysql : Nhập password mới và xác nhận password đó hoặc để trống dấu nhắc để tạo password ngẫu nhiên

Bước cuối cùng trong quá trình cài đặt là cập nhật các quyền của tập lệnh mà Bacula sử dụng trong công việc backup danh mục của nó:

  • sudo chmod 755 /etc/bacula/scripts/delete_catalog_backup

Các thành phần server Bacula (và client ) hiện đã được cài đặt. Hãy tạo folder backup và khôi phục.

Tạo Thư mục Backup và Khôi phục

Bacula cần một folder backup — để lưu trữ các repository backup — và folder khôi phục — nơi các file đã khôi phục sẽ được đặt. Nếu hệ thống của bạn có nhiều phân vùng, hãy đảm bảo tạo các folder trên một phân vùng có đủ dung lượng.

Hãy tạo các folder mới cho cả hai mục đích sau:

  • sudo mkdir -p /bacula/backup /bacula/restore

Ta cần thay đổi quyền đối với file để chỉ quy trình bacula (và một siêu user ) có thể truy cập các vị trí sau:

  • sudo chown -R bacula:bacula /bacula
  • sudo chmod -R 700 /bacula

Bây giờ ta đã sẵn sàng để cấu hình Bacula Director.

Cấu hình Giám đốc Bacula

Bacula có một số thành phần phải được cấu hình độc lập để hoạt động chính xác. Tất cả các file cấu hình có thể được tìm thấy trong folder /etc/bacula .

Ta sẽ bắt đầu với Giám đốc Bacula.

Mở file cấu hình Bacula Director trong editor yêu thích của bạn. Ta sẽ sử dụng vi:

  • sudo vi /etc/bacula/bacula-dir.conf

Cấu hình Công việc Địa phương

Một công việc Bacula được sử dụng để thực hiện các hành động backup và khôi phục. Tài nguyên công việc xác định chi tiết về những gì một công việc cụ thể sẽ thực hiện, bao gồm tên của Máy khách, FileSet để backup hoặc khôi phục, trong số những thứ khác.

Ở đây, ta sẽ cấu hình các công việc sẽ được sử dụng để thực hiện backup hệ thống file local .

Trong cấu hình Giám đốc, hãy tìm tài nguyên Công việc có tên là “BackupClient1” (tìm kiếm “BackupClient1”). Thay đổi giá trị của Name thành “BackupLocalFiles”, vì vậy nó trông giống như sau:

bacula-dir.conf - Đổi tên công việc BackupClient1
Job {   Name = "BackupLocalFiles"   JobDefs = "DefaultJob" } 

Tiếp theo, tìm tài nguyên Job có tên là “RestoreFiles” (tìm kiếm “RestoreFiles”). Trong công việc này, bạn muốn thay đổi hai điều: cập nhật giá trị của Name thành “RestoreLocalFiles” và giá trị của Where cần “/ bacula / restore”. Nó sẽ giống như thế này:

bacula-dir.conf - Đổi tên công việc RestoreFiles
Job {   Name = "RestoreLocalFiles"   Type = Restore   Client=BackupServer-fd   FileSet="Full Set"   Storage = File   Pool = Default   Messages = Standard   Where = /bacula/restore } 

Thao tác này cấu hình công việc RestoreLocalFiles để khôi phục file vào /bacula/restore , folder mà ta đã tạo trước đó.

Cấu hình Tập hợp Tệp

Bacula FileSet xác định một tập hợp các file hoặc folder để bao gồm hoặc loại trừ các file khỏi lựa chọn backup và được sử dụng bởi các công việc.

Tìm tài nguyên FileSet có tên là “Full Set” (bên dưới một comment có nội dung “# Danh sách các file sẽ được backup ”). Ở đây, ta sẽ thực hiện ba thay đổi: (1) Thêm tùy chọn sử dụng gzip để nén các bản backup của ta , (2) thay đổi file bao gồm từ /usr/sbin thành / và (3) thay đổi file loại trừ thứ hai thành /bacula . Với các comment bị xóa, nó sẽ trông như thế này:

bacula-dir.conf - Cập nhật FileSet “Full Set”
FileSet {   Name = "Full Set"   Include {     Options {       signature = MD5       compression = GZIP     }     File = / }   Exclude {     File = /var/lib/bacula     File = /bacula     File = /proc     File = /tmp     File = /.journal     File = /.fsck   } } 

Hãy xem qua những thay đổi mà ta đã thực hiện đối với FileSet “Full Set”. Đầu tiên, ta đã bật tính năng nén gzip khi tạo bản lưu trữ backup . Thứ hai, ta đang bao gồm / , tức là phân vùng root , được backup . Thứ ba, ta loại trừ /bacula vì ta không muốn backup dự phòng các bản backup Bacula và các file đã khôi phục của bạn .

Note: If you have partitions that are mounted within /, and you want to include those in the FileSet, you will need to include additional File records for each of them. 

Lưu ý nếu bạn luôn sử dụng FileSets rộng, như “Full Set”, trong các công việc backup , thì các bản backup của bạn sẽ yêu cầu nhiều dung lượng đĩa hơn nếu các lựa chọn backup của bạn cụ thể hơn. Ví dụ: một FileSet chỉ bao gồm các file cấu hình và database tùy chỉnh của bạn có thể đủ cho nhu cầu của bạn, nếu bạn có một kế hoạch khôi phục rõ ràng chi tiết cài đặt các gói phần mềm cần thiết và đặt các file được khôi phục ở vị trí thích hợp, trong khi chỉ sử dụng một phần không gian đĩa để lưu trữ backup .

Cấu hình Kết nối Daemon Lưu trữ

Trong file cấu hình Bacula Director, tài nguyên Storage xác định Storage Daemon mà Director nên kết nối với. Ta sẽ cấu hình Storage Daemon thực tế chỉ trong giây lát.

Tìm tài nguyên Lưu trữ và thay thế giá trị của Địa chỉ, localhost , bằng FQDN (hoặc địa chỉ IP riêng) của server backup của bạn. Nó sẽ giống như thế này (thay thế từ được đánh dấu):

bacula-dir.conf - Cập nhật địa chỉ lưu trữ
Storage {   Name = File # Do not use "localhost" here   Address = backup_server_private_FQDN                # N.B. Use a fully qualified name here   SDPort = 9103   Password = "ITXAsuVLi1LZaSfihQ6Q6yUCYMUssdmu_"   Device = FileStorage   Media Type = File } 

Điều này là cần thiết vì ta sẽ cấu hình Storage Daemon để lắng nghe trên network interface riêng, vì vậy các client từ xa có thể kết nối với nó.

Cấu hình group

Tài nguyên Pool xác định tập hợp lưu trữ được Bacula sử dụng để viết các bản backup . Ta sẽ sử dụng file làm dung lượng lưu trữ của bạn và ta sẽ chỉ cập nhật nhãn để các bản backup local của ta được gắn nhãn chính xác.

Tìm tài nguyên Group có tên “Tệp” (bên dưới comment có nội dung “# Định nghĩa Group Tệp”) và thêm một dòng chỉ định Định dạng Nhãn. Nó sẽ trông như thế này khi bạn hoàn thành:

bacula-dir.conf - Cập nhật group :
# File Pool definition Pool {   Name = File   Pool Type = Backup   Label Format = Local-   Recycle = yes                       # Bacula can automatically recycle Volumes   AutoPrune = yes                     # Prune expired volumes   Volume Retention = 365 days         # one year   Maximum Volume Bytes = 50G          # Limit Volume size to something reasonable   Maximum Volumes = 100               # Limit number of Volumes in Pool } 

Lưu và thoát. Cuối cùng thì bạn đã hoàn tất việc cấu hình Bacula Director.

Kiểm tra cấu hình giám đốc:

Hãy xác minh không có lỗi cú pháp nào trong file cấu hình Director của bạn:

  • sudo bacula-dir -tc /etc/bacula/bacula-dir.conf

Nếu không có thông báo lỗi, bacula-dir.conf của bạn không có lỗi cú pháp.

Tiếp theo, ta sẽ cấu hình Storage Daemon.

Cấu hình Daemon lưu trữ

Server Bacula của ta gần như đã được cài đặt xong, nhưng ta vẫn cần cấu hình Storage Daemon, vì vậy Bacula biết nơi lưu trữ các bản backup .

Mở cấu hình SD trong editor yêu thích của bạn. Ta sẽ sử dụng vi:

  • sudo vi /etc/bacula/bacula-sd.conf

Cấu hình tài nguyên lưu trữ

Tìm tài nguyên lưu trữ. Điều này xác định nơi quá trình SD sẽ lắng nghe các kết nối. Thêm thông số SDAddress và gán nó cho FQDN riêng (hoặc địa chỉ IP riêng) của server backup của bạn:

bacula-sd.conf - cập nhật SDAddress
Storage {                             # definition of myself   Name = BackupServer-sd   SDPort = 9103                  # Director's port   WorkingDirectory = "/var/lib/bacula"   Pid Directory = "/var/run/bacula"   Maximum Concurrent Jobs = 20   SDAddress = backup_server_private_FQDN } 

Cấu hình thiết bị lưu trữ

Tiếp theo, tìm tài nguyên Thiết bị có tên “FileStorage” (tìm kiếm “FileStorage”) và cập nhật giá trị của Archive Device để trùng với folder backup của bạn:

bacula-sd.conf - cập nhật Thiết bị lưu trữ
Device {   Name = FileStorage   Media Type = File   Archive Device = /bacula/backup    LabelMedia = yes;                   # lets Bacula label unlabeled media   Random Access = Yes;   AutomaticMount = yes;               # when device opened, read it   RemovableMedia = no;   AlwaysOpen = no; } 

Lưu và thoát.

Xác minh cấu hình nền tảng lưu trữ

Hãy xác minh không có lỗi cú pháp nào trong file cấu hình Storage Daemon của bạn:

  • sudo bacula-sd -tc /etc/bacula/bacula-sd.conf

Nếu không có thông báo lỗi, bacula-sd.conf của bạn không có lỗi cú pháp.

Ta đã hoàn thành cấu hình Bacula. Ta đã sẵn sàng khởi động lại các thành phần server Bacula.

Khởi động lại Bacula Director và Storage Daemon

Để các thay đổi cấu hình bạn đã thực hiện có hiệu lực, hãy khởi động lại Bacula Director và Storage Daemon bằng các lệnh sau:

  • sudo service bacula-director restart
  • sudo service bacula-sd restart

Bây giờ cả hai dịch vụ đã được khởi động lại, hãy kiểm tra xem nó có hoạt động không bằng cách chạy công việc backup .

Kiểm tra công việc backup

Ta sẽ sử dụng Bacula Console để chạy công việc backup đầu tiên của ta . Nếu nó chạy mà không có sự cố nào , ta sẽ biết rằng Bacula được cấu hình đúng cách.

Bây giờ hãy nhập Control panel bằng lệnh này:

  • sudo bconsole

Thao tác này sẽ đưa bạn đến dấu nhắc Bacula Console, được biểu thị bằng dấu nhắc * .

Tạo nhãn

Bắt đầu bằng cách phát hành một lệnh label :

  • label

Bạn sẽ được yêu cầu nhập tên tập. Nhập bất kỳ tên nào bạn muốn:

Enter new Volume name:
MyVolume

Sau đó, chọn group mà bản backup sẽ sử dụng. Ta sẽ sử dụng group “Tệp” mà ta đã cấu hình trước đó, bằng lệnh “2”:

Select the Pool (1-3):
2

Chạy công việc backup theo cách thủ công

Bacula hiện biết cách ta muốn ghi dữ liệu để backup . Bây giờ ta có thể chạy bản backup của bạn để kiểm tra xem nó có hoạt động chính xác hay không:

  • run

Bạn sẽ được yêu cầu chọn công việc để chạy. Ta muốn chạy công việc “BackupLocalFiles”, vì vậy hãy nhập “1” vào dấu nhắc:

Select Job resource (1-3):
1

Tại dấu nhắc xác nhận “Chạy công việc backup ”, hãy xem lại chi tiết, sau đó nhập “yes” để chạy công việc:

  • yes

Kiểm tra tin nhắn và trạng thái

Sau khi thực hiện một công việc, Bacula sẽ cho bạn biết rằng bạn có tin nhắn. Các thông báo được tạo ra bởi các công việc đang chạy.

Kiểm tra tin nhắn bằng lệnh :

  • messages

Các thông báo sẽ cho biết “Không tìm thấy bản ghi công việc backup đầy đủ trước” và công việc backup đã bắt đầu. Nếu có bất kỳ lỗi nào, điều gì đó không ổn, và họ sẽ cung cấp cho bạn một gợi ý về lý do tại sao công việc không chạy.

Một cách khác để xem tình trạng công việc là kiểm tra trạng thái của Giám đốc. Để thực hiện việc này, hãy nhập lệnh này tại dấu nhắc bconsole:

  • status director

Nếu mọi thứ hoạt động bình thường, bạn sẽ thấy rằng công việc của bạn đang hoạt động. Thông tin như thế này:

Output — status director (Running Jobs)
Running Jobs: Console connected at 09-Apr-15 12:16 JobId Level Name Status ====================================================================== 3 Full BackupLocalFiles.2015-04-09_12.31.41_06 is running ====

Khi công việc của bạn hoàn thành, nó sẽ chuyển đến phần “Công việc đã chấm dứt” của báo cáo trạng thái, như sau:

Output — status director (Terminated Jobs)
Terminated Jobs: JobId Level Files Bytes Status Finished Name ==================================================================== 3 Full 161,124 877.5 M OK 09-Apr-15 12:34 BackupLocalFiles

Trạng thái “OK” cho biết rằng công việc backup đã chạy mà không gặp sự cố nào . Xin chúc mừng! Bạn có một bản backup của “Toàn bộ” server Bacula của bạn .

Bước tiếp theo là kiểm tra công việc khôi phục.

Kiểm tra công việc khôi phục

Bây giờ một bản backup đã được tạo, điều quan trọng là phải kiểm tra xem nó có thể được khôi phục đúng cách hay không. Lệnh restore sẽ cho phép ta khôi phục các file đã được backup .

Chạy Khôi phục Tất cả Công việc

Để chứng minh, ta sẽ khôi phục tất cả các file trong bản backup cuối cùng của ta :

  • restore all

Một menu lựa chọn sẽ xuất hiện với nhiều tùy chọn khác nhau, được sử dụng để xác định bộ backup nào cần khôi phục. Vì ta chỉ có một bản backup duy nhất, hãy “Chọn bản backup mới nhất ” —chọn tùy chọn 5:

Select item (1-13):
5

Bởi vì chỉ có một client , server Bacula, nó sẽ tự động được chọn.

Dấu nhắc tiếp theo sẽ hỏi bạn muốn sử dụng FileSet nào. Chọn "Toàn bộ", phải là 2:

Select FileSet resource (1-2):
2

Thao tác này sẽ đưa bạn vào một cây file ảo với toàn bộ cấu trúc folder mà bạn đã backup . Giao diện giống như shell này cho phép các lệnh đơn giản để đánh dấu và bỏ đánh dấu các file được khôi phục.

Vì ta chỉ định rằng ta muốn "khôi phục tất cả", mọi file đã backup đều đã được đánh dấu để khôi phục. Các file được đánh dấu được ký hiệu bằng ký tự * đứng đầu.

Nếu bạn muốn tinh chỉnh lựa chọn của bạn , bạn có thể chuyển và liệt kê các file bằng lệnh “ls” và “cd”, đánh dấu file để khôi phục bằng “đánh dấu” và bỏ đánh dấu file bằng “bỏ đánh dấu”. Danh sách đầy đủ các lệnh có sẵn bằng lệnh “help” vào console .

Khi bạn hoàn tất việc lựa chọn khôi phục, hãy tiếp tục bằng lệnh :

  • done

Xác nhận bạn muốn chạy công việc khôi phục:

OK to run? (yes/mod/no):
yes

Kiểm tra tin nhắn và trạng thái

Như với các công việc backup , bạn nên kiểm tra các thông báo và trạng thái Giám đốc sau khi chạy công việc khôi phục.

Kiểm tra tin nhắn bằng lệnh :

  • messages

Sẽ có một thông báo cho biết công việc khôi phục đã bắt đầu hoặc đã kết thúc với trạng thái “Khôi phục OK”. Nếu có bất kỳ lỗi nào, điều gì đó không ổn, và họ sẽ cung cấp cho bạn một gợi ý về lý do tại sao công việc không chạy.

, kiểm tra trạng thái Giám đốc là một cách tốt để xem trạng thái của công việc khôi phục:

  • status director

Khi bạn hoàn tất quá trình khôi phục, hãy nhập exit để rời khỏi Bacula Console:

  • exit

Xác minh Khôi phục

Để xác minh công việc khôi phục đã thực sự khôi phục các file đã chọn, bạn có thể tìm trong folder /bacula/restore (được xác định trong công việc “RestoreLocalFiles” trong cấu hình Director):

  • sudo ls -la /bacula/restore

Bạn sẽ thấy các bản sao đã khôi phục của file trong hệ thống file root của bạn , ngoại trừ các file và folder được liệt kê trong phần “Loại trừ” của công việc “RestoreLocalFiles”. Nếu bạn đang cố gắng khôi phục sau khi mất dữ liệu, bạn có thể sao chép các file đã khôi phục vào vị trí thích hợp của chúng.

Xóa file đã khôi phục

Bạn có thể cần xóa các file đã khôi phục để giải phóng dung lượng đĩa. Để làm như vậy, hãy sử dụng lệnh sau:

  • sudo -u root bash -c "rm -rf /bacula/restore/*"

Lưu ý bạn phải chạy lệnh rm này với quyền là user root , vì nhiều file được khôi phục thuộc sở hữu của user root .

Kết luận

Đến đây bạn đã có một cài đặt Bacula cơ bản có thể backup và khôi phục hệ thống file local của bạn. Bước tiếp theo là thêm các server khác của bạn làm client dự phòng để bạn có thể khôi phục chúng, trong trường hợp mất dữ liệu.

Hướng dẫn tiếp theo sẽ chỉ cho bạn cách thêm các server từ xa khác của bạn làm client Bacula: Cách Backup Server Ubuntu 14.04 bằng Bacula .


Tags:

Các tin liên quan

Thiết lập ban đầu của server Fedora 21
2015-03-31
Cách giám sát tác nhân OSSEC bằng server OSSEC trên Ubuntu 14.04
2015-03-12
Cách thiết lập server OSRM trên Ubuntu 14.04
2015-02-20
Cách cài đặt Linux Dash trên Ubuntu 14.04
2015-02-18
Cách bảo vệ server Linux của bạn chống lại lỗ hổng GHOST
2015-01-28
Cách cài đặt và cấu hình Postfix làm server SMTP chỉ gửi trên Ubuntu 14.04
2015-01-23
Cách cấu hình xác thực dựa trên khóa SSH trên server FreeBSD
2015-01-14
Giới thiệu so sánh về FreeBSD cho người dùng Linux
2015-01-14
Tại sao bạn có thể không muốn chạy mail server của riêng mình
2014-12-11
Cách kiểm tra lưu lượng mạng trong server LAMP với sysdig trên CentOS 7
2014-12-05