Chúng tôi muốn sao lưu mọi thứ trên máy chủ Debian của chúng tôi đang chạy từ xa ở phía bên kia của thế giới (được lưu trữ bởi Linode) mà không cần tắt nó.
Hệ thống này đang chạy shell, email, XMPP / prosence và web, với một vài thiết lập nginx đơn giản.
Chúng tôi muốn sao lưu các tập tin liên quan đến những điều đó để được an toàn. Ví dụ, các tập tin người dùng đã lưu trữ trong thư mục nhà của họ.
Chúng tôi không cần phải sao chép chính xác thiết lập hiện tại wrt mỗi tệp / etc; thay vào đó, lý do chúng tôi thậm chí thực hiện sao lưu ở vị trí đầu tiên là vì vậy chúng tôi có thể chuyển tất cả sang thiết lập mới (phiên bản Debian mới hơn vẫn còn trên Linode).
Tôi thấy rằng Linode cung cấp một dịch vụ sao lưu. Nhưng về lâu dài, chúng ta cũng cần các bản sao lưu của riêng mình, ở đây, trong trường hợp chúng bị hỏng hoặc có điều gì đó kỳ lạ xảy ra.
Lý do câu hỏi này tồn tại là khi tôi đã thử tạo bản sao lưu trong quá khứ, tôi đã tiếp tục mắc một trong hai lỗi sau:
- Tôi đã đi "OK, tôi sẽ chỉ sao chép
/
và mọi thứ bên dưới nó" và sau đó bị mắc kẹt trong một vòng lặp vô hạn kỳ lạ vì ổ đĩa mà tôi đã sao chép được gắn vào / media / backup và nó đang sao chép chính nó [obv vấn đề cụ thể đó không áp dụng được ở đây vì chúng tôi sẽ sao lưu qua rsync hoặc tương tự] hoặc nó đã bị mắc kẹt khi cố gắng sao chép một số nội dung "còn sống" trong / Proc hoặc / var hoặc bất cứ điều gì, như cố gắng theo kịp các nhật ký luôn thay đổi, hoặc là - Tôi đã đi "OK, tôi sẽ chỉ lấy tối thiểu những gì chúng tôi cần, hmm, thư mục nhà của mọi người và thư mục máy chủ web của chúng tôi (tất cả đều ở dưới
/var
) và hãy lấy một bản sao/etc
và tất cả các thư cũ trong / var / vmail "và sau đó tôi đã vô tình làm hỏng các quyền hoặc dấu thời gian của tệp (sẽ đảm bảo rằng tôi không sao lưu các tệp unix vào ổ đĩa FAT) hoặc quên một cái gì đó (" oh, bắn đi, tôi có một số tập lệnh tùy chỉnh trong / usr / local / bin mà tôi không bao giờ lưu trữ ở bất cứ nơi nào khác, tôi đã quên lấy chúng, đoán chúng đã biến mất ngay bây giờ ").
Vì vậy, obv sao chép toàn bộ ổ đĩa thẳng lên dẫn đến cạm bẫy và sao chép thư mục có chọn lọc dẫn đến cạm bẫy. Tôi muốn biết làm thế nào để làm điều đó đúng.
Câu hỏi về lỗi máy chủ Điều gì cần thiết cho một hệ thống sao lưu hoàn chỉnh? bao gồm triết lý và thực hành tốt, nhưng tôi đang tìm kiếm những chi tiết cụ thể hơn về:
- Mà thư mục sao tôi cần phải sao chép và đó làm tôi loại trừ (cho rằng đó là một hệ thống hiện đang chạy & và phục vụ lên một wiki, XMPP chat, email - với những thông điệp mới đến trong khi công việc sao chép đang chạy)
- Những thuộc tính tệp nào như tem thời gian & chủ sở hữu & nhóm tôi cần phải trình bày và làm cách nào để làm điều đó? ← Tôi nghĩ rằng tôi có thể tự trả lời một nửa câu hỏi này bằng một cái gì đó giống như kiểu um um
rsync -HXaz
. Các-z
obv không thực sự liên quan đến câu hỏi "tôi phải giữ gìn"
Rất nhiều lời khuyên sao lưu mà tôi thấy, như sử dụng dd
, dường như giả định rằng ổ đĩa không được đếm và không sử dụng. Nhưng tôi không phải loại trừ "sống" thư mục như / proc và một số các thư mục con trong / var (tuy nhiên, một số công cụ dưới / var Tôi biết chúng tôi chắc chắn làm cần thiết phải giữ) và / gắn kết? Còn điều gì khác mà tôi cần phải suy nghĩ trong tình huống này? Sau đó, tôi đoán rằng tôi có thể đánh hơi nó bằng rsync và sử dụng một loạt các --exclude
cờ.
Hoặc có những ý tưởng tốt hơn, đặc biệt là những người thân thiện với FOSS?
cp -r -a
sẽ bảo tồn càng nhiều thuộc tính tệp càng tốt khi sao chép tệp (dựa trên những gì hệ thống tệp đích hỗ trợ). Các -a
lá cờ chỉ thị cp
để duy trì các thuộc tính. Để sao chép qua mạng hoặc qua hệ thống tệp không hỗ trợ các thuộc tính bắt buộc, tôi tar -c
luôn làm việc cho tôi mặc dù tôi tin rằng có một số trường hợp cạnh mà nó không bao gồm và đặc biệt tôi tin tar
là mặc định phụ thuộc vào tên người dùng phù hợp với cả hai hệ thống. Điều đó nói rằng, tôi đã sao chép toàn bộ hệ thống Linux (chưa từng có) bằng cách sử dụng tar
mà không có bất kỳ vấn đề rõ ràng nào.