Computer >> Máy Tính >  >> Hệ thống >> Linux

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ư fwbackups và Sbackup. Tuy nhiên, có một phương pháp đơn giản để sao lưu một 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 tập lệnh shell bằng cách sử dụng các biến, tar lệnh và ngày lệnh để tạo tệp sao lưu ngày tháng của một thư mục, với các thư mục con của nó.

Tập 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 trình tự. Nếu bạn có một loạt lệnh mà bạn thường xuyên chạy theo thứ tự, sẽ rất hữu ích khi tạo một tập lệnh shell chứa các lệnh này. Sau đó, bạn chỉ phải chạy tệp script để chạy các lệnh.

Tạo tệp kịch bản Shell

Đối với ví dụ này, chúng ta sẽ tạo một tập 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 Gnome môi trường trong Ubuntu .

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

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

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

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

Một tệp được thêm vào danh sách và sẵn sàng được đổi tên. Nhập tên cho tệp, đặt tên cho tệp là .sh .

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

Đối với ví dụ này, chúng tôi đặt tên tệp của mình là user_guide_backups.sh .

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

Bây giờ chúng ta cần thêm các lệnh vào tệp. Nhấp chuột phải vào tên của tệp và chọn Mở bằng gedit từ menu bật lên.

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

Tệp được mở bằng gedit . Nhập các dòng sau vào tệp và nhấp vào 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 . Đảm bảo thay đổi vào 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

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

Mô tả từng dòng

Bảng sau đây mô tả từng dòng có trong tệp script 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 một biến có tên là SRCDIR và đặt giá trị của nó vào thư mục sẽ được sao lưu.
LƯU Ý: Đảm bảo thay thế bằng tên người dùng của bạn .3 Dòng này thiết lập một biến có tên là DESTDIR và đặt giá trị của nó vào thư mục mà tệp sao lưu sẽ được ghi.
LƯU Ý: Đảm bảo thay thế bằng tên người dùng của bạn .4 Dòng này thiết lập một biến có tên là FILENAME và đặt giá trị bằng cách sử dụng văn bản và các biến có chứa 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 một biến, hãy luôn bắt đầu biến đó bằng ký hiệu đô la ( $ ). Nếu bạn sử dụng lệnh như một phần của biến, hãy đặt lệnh và các tùy chọn cho lệnh trong dấu ngoặc đơn.5 Dòng này là tar lệnh với chức năng và tùy chọn sau được thêm vào.

–CreateChức năng này tạo một kho lưu trữ mới (hoặc cắt bớt một kho lưu trữ cũ nếu tên tệp được chỉ định đã tồn tại) và ghi các tệp hoặc thư mục đã đặt tên vào đó. – 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 cách sử dụng gzip tiện ích.-file Tùy chọn này cung cấp 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ách sử dụng DESTDIR , FILENAME SRCDIR biến.

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

Trước khi chạy tập lệnh của mì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ở Thư mục Trang chủ của bạn một lần nữa như đã đề cập ở trên và nhấp chuột phải vào tệp script shell. Chọn Thuộc tính từ menu bật lên.

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

Thuộc tính hộp thoại hiển thị. Đảm bảo Thực thi hộp kiểm được chọn.

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

Nhấp vào Đó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 | Nhà ga từ Ứng dụng menu.

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

Khi Nhà ga cửa sổ mở ra, bạn sẽ ở trong Thư mục Trang chủ theo mặc định. Nhập pwd trên dòng lệnh và nhấn enter xác nhận điều này. Tại lời nhắc, nhập ./user_guide_backups.sh và nhấn Enter .

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

Bạn phải có .tgz tệp trong thư mục Sao lưu trong Thư mục Trang chủ củ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 giải nén tệp trực tiếp vào Bản sao lưu sử dụng thư mục Trích xuất tại đây lệnh.

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

Thông tin thêm

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

Viết kịch bản

Hướng dẫn nhanh để viết script bằng bash shell

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

Sổ tay hướng dẫn tham khảo Bash

Lệnh Linux

Trang tar MAN

ngày MAN Trang

lệnh bash - Linux MAN Pages

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 mình.