Tập lệnh Python để sao lưu cục bộ với rsync

Trong Gnu / Linux có các chương trình khác nhau để thực hiện sao lưu nhưng cá nhân tôi thích những thứ đơn giản, khác xa với giao diện đồ họa (tất nhiên không có gì sai, nhưng nếu tôi có thể tránh sử dụng nó, tôi tránh).
Trong lệnh rsync có một đồng minh đáng kể của các bản sao lưu mà chúng ta thường quên làm. Nó có đủ tùy chọn để tạo một bản sao với tất cả các yêu cầu cần thiết. máy tính-767784_640

Tập lệnh python sau tạo các bản sao lưu cho mục đích này. Bạn sẽ thấy nó cực kỳ đơn giản và ngay cả đối với những người hoàn toàn không biết gì về ngôn ngữ này, việc thêm một dòng cho script để đồng bộ hóa một thư mục mới là việc làm ngay lập tức.
Trong máy của tôi, tôi sử dụng một đĩa cứng bên ngoài mà tôi đã gọi là IOmega_HDD, trong trường hợp của bạn, bạn có thể đổi tên nó trong script tùy theo trường hợp của bạn.
Một điều khác là thêm hoặc xóa các thư mục khỏi bản sao. Trong cùng một kịch bản như dòng chú thích, nó được giải thích cách thực hiện.
Để tự động hóa tác vụ, bạn có thể thêm một dòng vào crontab chứa trình thông dịch python và đường dẫn bạn muốn đặt tập lệnh. Tôi hy vọng nó hữu ích cho bạn.

Sự phản đối: trình soạn thảo wordpress không cho phép khoảng cách ở đầu dòng, do đó, phần thụt lề cần thiết đã bị mất trong tập lệnh, vì vậy tôi đã thay thế các khoảng trắng bằng dấu chấm (.) mà bạn phải loại bỏ bằng trình chỉnh sửa và thay thế bằng dấu cách .

-------------------------------
# -*- coding: utf-8 -*-
import os
ruta_usuario=os.getcwd()
ruta_volumen="/media/Iomega_HDD" #Modificar según nombre de disco externo
directorio_destino=ruta_volumen + "/" + "RsyncBackup"
try:
....if os.path.exists(directorio_destino):
........pass
....else:
........os.mkdir(directorio_destino,0777)
....directorios_origen=[] ....rutas_directorios_origen=[] ....#Se añaden los directorios para sincronizar
....directorios_origen.append("Documentos")
....directorios_origen.append("Imágenes")
....directorios_origen.append("Descargas")
....#Añadir aquí otros directorios que se deseen sincronizar
....#o eliminar de las líneas anteriores los que no se deseen
....for rutas in directorios_origen:
....rutas_directorios_origen.append(ruta_usuario + "/" + rutas)
....for rutas in rutas_directorios_origen:
....print "Sincronizando " + rutas + " con " + directorio_destino
....os.system("rsync -ahv --progress" + " " + rutas + " " + directorio_destino)
....print "Proceso terminado"
except OSError:
print "Ha ocurrido un error ¿está el disco externo listo?"
except:
print "Ha ocurrido un error"

---------------------------


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   Matias dijo

    Xin chào, bạn khỏe không?
    Tôi thích kịch bản, rất đơn giản.
    Không xúc phạm, tôi đã thực hiện một số sửa đổi để làm cho nó đơn giản và dễ đọc hơn, cũng như hỗ trợ Python 2 và 3 (hiện tại nó chỉ có thể chạy bằng Python 2)

    Tôi để lại cho bạn liên kết với 2 phiên bản, trong trường hợp bạn quan tâm.
    http://linkode.org/1np9l2bi8IiD5oEkPIUQb5/Yfa4900cA76BpcTpcf4nG1

    1.    Bồ công anh dijo

      Các bản mod tuyệt vời và tôi rất vui vì bạn thích kịch bản

  2.   niphosio dijo

    Ý định được đánh giá cao, nhưng kết quả là dính và xúc xích.
    Cháu gái 4 tuổi của tôi có khả năng tạo ra một tập lệnh thông minh và có thể định cấu hình tốt hơn so với củ khoai tây mà bạn đã đặt ở đây.

    Nhân tiện, phần thụt lề của mã bị sai, hãy kiểm tra các vòng lặp của bạn và ý tôi không phải là những sợi tóc

    1.    Bồ công anh dijo

      Kịch bản hoạt động hoàn hảo, tôi đã sử dụng nó trong một thời gian dài và trên thực tế, do số lượng người chia sẻ nó, nó không nên tồi tệ như bạn nói. Có lẽ bạn nên gọi cho cháu gái để xem bạn đã đặt mọi thứ chính xác chưa

    2.    tr dijo

      Này, hãy học cách trân trọng và thay vì chỉ trích, hãy sửa sai, nếu bạn khoe khoang quá nhiều.

      1.    Bồ công anh dijo

        Chính xác thì Matias đã thực hiện một số sửa đổi lớn. Chắc chắn kịch bản có thể được cải thiện và đó là những gì nó nói về thế giới của sự hợp tác và đó là những gì Matias đã thể hiện. Thật đáng tiếc khi các cá nhân ở quanh đây làm chua đi bầu không khí tốt đẹp nên chiếm ưu thế. Đây rồi.

    3.    abaddon dijo

      Bạn có nghĩ rằng một lời chỉ trích thô lỗ là hữu ích và nó không thêm bất cứ điều gì vào kịch bản? TỐT HƠN BẠN ĐỪNG VIẾT ĐIỂM LỪA ĐẢO VÀ CHIA SẺ ĐI !!!!!!!

  3.   Tôi không biết dijo

    Đây là một phiên bản khác: https://gist.github.com/Itsuki4/5acc3d03f3650719b88d
    Comment những lỗi mà mình mắc phải, mình sẽ sửa lại (hiện tại mình đang ở windows mà không test được).

  4.   zetaka01 dijo

    Tôi sử dụng rsync trực tiếp với tập lệnh shell mà không sử dụng python.
    Tôi đặt một dòng cho mỗi thư mục nguồn và đích.
    Tôi có một số tập lệnh tùy thuộc vào thiết bị mà tôi tạo bản sao, trong trường hợp của tôi là tăng dần.
    Ví dụ: để sao chép sách của tôi vào một usb 128MB được cài đặt theo mặc định trong
    / media / zetaka01 / Sandisk128 Tôi đã đặt tập lệnh LibrosAusb128.sh dòng sau:

    rsync -av –delete / home / zetaka01 / Books / media / zetaka01 / Sandisk128 /

    Nếu thư mục đích không tồn tại, nó sẽ tạo nó cho bạn và xóa khỏi đích những gì không có trong thư mục gốc, tất nhiên là đệ quy.
    Một lời chào.

  5.   zetaka01 dijo

    À, lỗi sao chép / dán –xóa, với hai dấu gạch nối.

    lời chúc mừng

  6.   Bồ công anh dijo

    Bạn có muốn tạo giao diện đồ họa không? Tôi đã thấy khả năng của Tkinter và Tix nhưng để kiểm soát việc lựa chọn các thư mục có lẽ Wx tốt hơn

  7.   zetaka01 dijo

    Đã có một giao diện đồ họa dựa trên GTK, nó được gọi là grsync.
    Tôi để lại liên kết đến Wikipedia, https://en.wikipedia.org/wiki/Grsync
    Một lời chào.

  8.   fernando dijo

    Xin chào tất cả mọi người. Kịch bản có thể là một điều kỳ diệu hoặc đơn giản, tôi không biết hoặc không quan tâm, nhưng mọi thứ có thể được nói theo hàng ngàn cách và khi chúng có thể được nói tốt, tại sao lại nói chúng sai? Phải nói rằng, tôi phải nói rằng tôi đã là một người dùng Linux từ năm 2008 và mặc dù trong thời gian này, tôi học chậm và tôi gặp khó khăn trong việc hiểu nhiều thứ bao gồm cả cách chạy một tập lệnh (tôi biết nó dễ dàng nhưng tôi không cho nhiều hơn). cài đặt chương trình bằng cách biên dịch chúng, v.v. Đó là lý do tại sao khi tôi đọc thấy có một phiên bản có giao diện đồ họa, tôi đã xem và tìm thấy trang này, nơi họ cung cấp cho bạn mọi thứ thậm chí còn nhai lại. Đối với sự vụng về như một máy chủ, tôi để nó ở đây. Xin chào và cảm ơn cho nỗ lực của bạn.
    http://www.opbyte.it/grsync/download.html

    1.    Bồ công anh dijo

      fernando, không có bất kỳ lời nói nào và nếu bạn không ngại trả lời, tôi tò mò tại sao bạn sử dụng Gnu / Linux. trân trọng cảm ơn

  9.   zetaka01 dijo

    Chà, giao diện đồ họa rất thân thiện nhưng nó không cung cấp cho bạn các tùy chọn mà một lệnh đầy đủ cung cấp cho bạn.
    Ngoài ra, không phải trường hợp của tôi mà tôi làm việc đó để đo lường, một tập lệnh, có thể là shell hoặc python hoặc bất cứ thứ gì bạn muốn, đều cho phép bạn lập trình để chạy bất cứ khi nào bạn muốn.
    À, trong bản phân phối linux của bạn, bạn nên có rsync và grsync mà không có vấn đề gì trong kho lưu trữ.
    Một lời chào.

  10.   zetaka01 dijo

    Ah Fernando, nếu bạn đã sử dụng linux từ năm 2008 và bạn không biết cách chạy script, tôi không có lời nào.
    lời chúc mừng

  11.   Gonzalo martinez dijo

    Pa là tất cả các kỹ sư hệ thống ở đây, những người chỉ trích kịch bản mà ai đó làm để cộng tác và nếu sử dụng bảng điều khiển / tập lệnh hay bất cứ điều gì?

    Xì hơi nhiều vì Chúa.

    Tôi đã quản lý các máy chủ Linux được 10 năm và sự thật là công việc điện tử làm mọi thứ với các tập lệnh đã vượt qua tôi một thời gian trước đây, chẳng hạn như để quản lý Bacula, tôi thích sử dụng giao diện đồ họa hơn là vỏ để giả vờ là quan trọng, đó thực sự là một phương tiện tội phạm .

    Người ta phải làm việc hiệu quả, nếu ai đó cảm thấy thoải mái hơn khi làm việc đó thông qua giao diện, tốt cho anh ta, điều quan trọng là kết quả chứ không phải cách bạn thực hiện.

    Trong công việc trước đây của tôi, tôi chỉ đạo khu vực CNTT của một công ty, và những người phụ trách yêu cầu anh ấy làm một việc cụ thể, tôi quan tâm đến kết quả, anh ấy đã không nói «Định cấu hình vhost khác trong apache, sử dụng vi không có màu trong một thiết bị đầu cuối 30 × 20 ”, anh ấy làm điều đó khi anh ấy thấy thoải mái nhất, nếu anh ấy thích làm điều đó như vậy, gắn bằng SFTP và sử dụng sổ ghi chú cửa sổ, hoặc cầu nguyện Cha của chúng ta, tôi không quan tâm miễn là anh ấy đã làm đúng.

    dandutrech, tập lệnh hoàn thành mục tiêu của nó, đó là điều quan trọng, bây giờ điều tôi sẽ thay đổi là thay vì gọi lệnh từ trình bao, nó sẽ đột nhiên sử dụng Python-librsync, là một thư viện để sử dụng các hàm rsync bên trong Con trăn.

    Nhờ đó, bạn có được tính di động, tập lệnh chạy trong mọi môi trường, có thể là Linux, Windows hoặc OS X.

  12.   dandutrecht dijo

    Cảm ơn, Gonzalo. Đề xuất của bạn, tôi nghĩ là rất tốt và tôi sẽ đưa nó vào kịch bản. Một lời chào