Sao lưu một thư mục trong Linux bằng Shell Script


Có một số tùy chọn để sao lưu dữ liệu của bạn trong Linux. Bạn có thể sử dụng một số chương trình phần mềm có sẵn miễn phí, chẳng hạn như fwbackupsSbackup. Tuy nhiên, có một phương pháp đơn giản để sao lưu thư mục mà không cần cài đặt thêm bất kỳ phần mềm nào.

Chúng tôi sẽ tạo một kịch bản lệnh shell bằng cách sử dụng các biến, lệnh tarngàylệnh để tạo một tệp sao lưu ngày của một thư mục, với các thư mục con của nó.

Một kịch bản lệnh shell về cơ bản là một tệp chứa danh sách các lệnh được chạy theo thứ tự. Nếu bạn có một loạt các lệnh bạn thường xuyên chạy theo thứ tự, sẽ rất hữu ích khi tạo một kịch bản lệnh chứa các lệnh này. Sau đó, bạn chỉ phải chạy tập tin kịch bản để chạy các lệnh.

Tạo tập tin Shell Script

Trong ví dụ này, chúng ta sẽ tạo một kịch bản lệnh shell để sao lưu một thư mục chứa các tệp cho hướng dẫn sử dụng. Chúng tôi đang sử dụng môi trường Gnometrong Ubuntu.

Trước tiên, truy cập thư mục chính của bạn bằng cách chọn Thư mục chínhtừ Địa điểm. Trình duyệt tệpmở ra thư mục chính của bạn.

Opening the home folder

Chúng tôi sẽ tạo tệp trống mới trong đó chúng tôi sẽ nhập các lệnh để thực hiện sao lưu. Nhấp chuột phải vào khung bên phải và chọn Tạo tài liệu | Tệp rỗngtừ trình đơn bật lên.

Creating an empty shell script file

Một tệp được thêm vào danh sách và sẵn sàng đổi tên. Nhập tên cho tệp, cung cấp tệp cho phần mở rộng của .sh.

New file ready to be renamed

Ví dụ này, chúng tôi đã đặt tên tệp là user_guide_backups.sh.

Shell script file renamed

Bây giờ, chúng tôi cần thêm các lệnh vào tệp. Nhấp chuột phải vào tên tệp và chọn Mở bằng gedittừ trình đơn bật lên.

Opening shell script file with gedit

Tệp mở trong gedit. Nhập các dòng sau vào tệp và nhấp Lưu. Mục đích của mỗi dòng được liệt kê bên dưới.

LƯU Ý:Bạn cũng có thể sao chép văn bản sau và dán vào gedit. Hãy chắc chắn thay đổi & lt; tên người dùng & gt;thành tên người dùng của bạn.

#!/bin/bash
SRCDIR="/home/<username>/Documents/my_work/" DESTDIR="/home/<username>/Backups/" FILENAME=ug-$(date +%-Y%-m%-d)-$(date +%-T).tgz tar --create --gzip --file=$DESTDIR$FILENAME $SRCDIR

Editing shell script file in gedit

Dòng -by-Line Mô tả

Bảng sau mô tả những gì mỗi dòng trong tệp tập lệnh shell.

Dòng Mô tả 1 Dòng này phải là dòng đầu tiên trong tập lệnh bash shell, là loại tập lệnh mặc định. 2 Dòng này thiết lập biến có tên SRCDIRvà đặt giá trị của nó thành thư mục để sao lưu.
LƯU Ý:ạnh>Đảm bảo thay & lt; tên người dùng & gt;bằng tên người dùngcủa bạn. 3 Dòng này thiết lập biến có tên DESTDIRvà đặt giá trị của nó thành thư mục mà tệp sao lưu sẽ được ghi.
LƯU Ý:Đảm bảo thay thế & lt; tên người dùng & gt;bằng tên người dùngcủa bạn. 4 Dòng này thiết lập biến có tên FILENAMEvà đặt giá trị bằng văn bản và biến chứa lệnh ngàyđể thêm ngày và giờ hiện tại vào tên tệp. Ví dụ: tên tệp có thể là ug-20100212-13: 03: 45.tgz.
LƯU Ý:Khi sử dụng biến, luôn bắt đầu bằng ký hiệu đô la ($). Nếu bạn sử dụng một lệnh như là một phần của một biến, kèm theo lệnh và các tùy chọn cho lệnh trong dấu ngoặc đơn. 5 Dòng này là lệnh tarvới chức năng và tùy chọn sau được thêm vào.
- tạo Chức năng này tạo một kho lưu trữ mới (hoặc cắt bớt một tệp cũ nếu tên tệp được chỉ định đã tồn tại) và ghi các tệp hay thư mục được đặt tên vào nó. –gzip Tùy chọn này yêu cầu tar nén các tệp trong kho lưu trữ bằng tiện ích gzip. - tệp Tùy chọn này cho tar tên tệp để sử dụng. Trong trường hợp này, chúng tôi đã tập hợp tên tệp bằng các biến DESTDIR, FILENAMESRCDIR.

Chỉnh sửa Quyền trên Tệp Tập lệnh Shell

Trước khi chạy tập lệnh, bạn cần đảm bảo tệp có quyền chính xác. Để thực hiện việc này, hãy mở lại Thư mục chínhnhư đã đề cập ở trên và nhấp chuột phải vào tệp tập lệnh shell. Chọn Thuộc tínhtừ trình đơn bật lên.

Getting the properties of the shell script file

Hộp thoại Thuộc tínhhiển thị . Đảm bảo chọn hộp kiểm Thực thi.

Shell script file permissions

Nhấp Đóng.

Chạy Tập lệnh Shell

Để chạy tập lệnh shell, hãy mở cửa sổ dòng lệnh bằng cách chọn Phụ kiện | Thiết bị đầu cuốitừ trình đơn Ứng dụng.

Opening a Terminal window

Khi cửa sổ Thiết bị đầu cuốimở ra, bạn sẽ ở trong Thư mục chínhtheo mặc định. Nhập pwdtrên dòng lệnh và nhấn enter xác nhận thực tế này. Tại dấu nhắc, nhập ./ user_guide_backups.shvà nhấn Enter.

Running the shell script

Bạn phải có tệp .tgztrong thư mục Sao lưu trong Thư mục chínhcủa bạn. Nếu bạn nhấp chuột phải vào tên tệp, bạn sẽ thấy một số tùy chọn để mở tệp lưu trữ trong một trong các chương trình lưu trữ có sẵn hoặc trích xuất tệp trực tiếp vào thư mục Bản sao lưubằng Trích xuất tại đâylệnh.

Pop-up menu options for .tgz file

Thông tin khác

Các liên kết bên dưới cung cấp thêm thông tin về tập lệnh shell, tarngàylệnh và các lệnh Linux khác.

Tập lệnh

Hướng dẫn nhanh để viết kịch bản bằng bash shell

Bash Shell Scripting - Hướng dẫn 10 giây | Tất cả về Linux

Sổ tay tham khảo Bash

Lệnh Linux

tar MAN Page

date MAN Page

lệnh bash - Trang Linux MAN

Khám phá các trang này sẽ giúp bạn xây dựng các tập lệnh bash shell hữu ích của riêng bạn.

Thao tác tập tin, thư mục

bài viết liên quan:


16.02.2010