Skrip Python untuk backup lokal dengan rsync

Di Gnu / Linux ada program yang berbeda untuk melakukan backup tetapi secara pribadi saya suka hal-hal sederhana, jauh dari antarmuka grafis (yang tidak ada salahnya, tentu saja, tetapi jika saya dapat menghindari menggunakannya, saya hindari).
Dalam perintah rsync ada sekutu cadangan yang hebat yang sering kita lupa lakukan. Ini memiliki cukup opsi untuk membuat salinan dengan semua persyaratan yang diperlukan. komputer-767784_640

Skrip python berikut membuat salinan cadangan untuk tujuan ini. Anda akan melihat bahwa ini sangat sederhana dan bahkan bagi mereka yang sama sekali tidak tahu bahasa ini, menambahkan baris untuk skrip untuk menyinkronkan direktori baru dengan segera.
Di mesin saya, saya menggunakan hard disk eksternal yang saya sebut IOmega_HDD, dalam kasus Anda, Anda dapat mengganti namanya di skrip sesuai dengan kasus Anda.
Hal lainnya adalah menambah atau menghapus direktori dari salinan. Dalam skrip yang sama dengan baris komentar dijelaskan bagaimana melakukannya.
Untuk mengotomatiskan tugas, Anda dapat menambahkan baris ke crontab yang berisi interpreter python dan jalur tempat Anda ingin meletakkan skrip. Semoga bermanfaat untuk anda

Advertencia: editor wordpress tidak mengizinkan spasi di awal baris, sehingga lekukan yang diperlukan dalam skrip telah hilang, jadi saya mengganti spasi kosong dengan titik (.) yang harus Anda hilangkan dengan editor dan ganti dengan spasi .

———————————————————————————
# -*- 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"

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


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.

  1.   Matias dijo

    Halo apa kabarmu?
    Saya menyukai naskahnya, sangat sederhana.
    Jangan tersinggung, saya melakukan beberapa modifikasi agar lebih sederhana dan mudah dibaca, selain mendukung Python 2 dan 3 (saat ini hanya bisa dijalankan dengan Python 2)

    Saya meninggalkan Anda tautan dengan 2 versi, jika Anda tertarik.
    http://linkode.org/1np9l2bi8IiD5oEkPIUQb5/Yfa4900cA76BpcTpcf4nG1

    1.    dandutrech.dll dijo

      Modifikasi hebat dan saya senang Anda menyukai skripnya

  2.   niphosio dijo

    Niatnya dihargai, tapi hasilnya norak dan sosis.
    Keponakan saya yang berusia 4 tahun mampu membuat skrip yang lebih cerdas dan dapat dikonfigurasi daripada kentang yang Anda taruh di sini.

    Ngomong-ngomong, lekukan kode salah, periksa loop Anda dan maksud saya bukan yang rambut

    1.    dandutrech.dll dijo

      Skripnya berfungsi dengan sempurna, saya telah menggunakannya untuk waktu yang lama dan, faktanya, karena jumlah orang yang membagikannya, seharusnya tidak seburuk yang Anda katakan. Mungkin Anda harus menelepon keponakan Anda untuk mengetahui apakah Anda telah mengatur semuanya dengan benar

    2.    tr dijo

      Hei, belajarlah untuk menghargai dan bukannya mengkritik, perbaiki, jika kamu terlalu membual.

      1.    dandutrech.dll dijo

        Benar, Matias telah membuat beberapa modifikasi hebat. Tentunya naskah bisa diperbaiki dan itulah yang terjadi di dunia kolaborasi dan begitulah cara Matias mengungkapkannya. Sungguh memalukan bahwa orang-orang di sekitar sini merusak suasana nyaman yang seharusnya ada. Itu mereka.

    3.    abaddon s dijo

      Apakah menurut Anda kritik kasar itu berguna dan tidak menambahkan apa-apa ke skrip? LEBIH BAIK JANGAN MENULIS SKRIP SIALAN DAN BERBAGI !!!!!!

  3.   Saya tidak tahu dijo

    Berikut versi lain: https://gist.github.com/Itsuki4/5acc3d03f3650719b88d
    Komentari kesalahan yang Anda miliki, saya akan memperbaikinya (sekarang saya di windows dan saya tidak bisa mengujinya)

  4.   zetaka01 dijo

    Yah saya menggunakan rsync langsung dengan skrip shell, tanpa menggunakan python.
    Saya meletakkan baris untuk setiap direktori sumber dan tujuan.
    Saya memiliki beberapa skrip tergantung pada perangkat tempat saya membuat salinan, dalam kasus saya inkremental.
    Misalnya, untuk menyalin buku saya ke usb 128MB yang diinstal secara default di
    / media / zetaka01 / Sandisk128 saya taruh di script LibrosAusb128.sh baris berikut:

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

    Jika direktori tujuan tidak ada, itu membuatnya untuk Anda dan menghapus dari tujuan apa yang tidak ada di asalnya, tentu saja secara rekursif.
    Sebuah ucapan.

  5.   zetaka01 dijo

    Ah, kesalahan salin / tempel –hapus, dengan dua tanda hubung.

    Sebuah ucapan

  6.   dandutrech.dll dijo

    Apakah Anda ingin membuat antarmuka grafis? Saya telah melihat kemungkinan Tkinter dan Tix tetapi untuk kontrol pilihan direktori mungkin Wx lebih baik

  7.   zetaka01 dijo

    Antarmuka grafis berbasis GTK sudah ada, yang disebut grsync.
    Saya meninggalkan tautan ke Wikipedia, https://en.wikipedia.org/wiki/Grsync
    Sebuah ucapan.

  8.   fernando dijo

    Halo semuanya. Naskah bisa menjadi keajaiban atau kesederhanaan, saya tidak tahu atau peduli, tetapi hal-hal dapat dikatakan dalam ribuan cara dan ketika itu dapat dikatakan dengan baik, mengapa mengatakannya salah? Karena itu, saya harus mengatakan bahwa saya telah menjadi pengguna Linux sejak 2008 dan meskipun selama ini saya lambat belajar dan sangat sulit bagi saya untuk memahami banyak hal termasuk cara menjalankan skrip (mudah saya tahu tapi satu tidak memberi lebih banyak). menginstal program dengan mengkompilasinya, dll. dll. Itulah mengapa ketika saya membaca bahwa ada versi dengan antarmuka grafis, saya telah melihat dan menemukan halaman ini di mana mereka bahkan mengunyah semuanya. Untuk yang kikuk sebagai server saya tinggalkan di sini. Salam dan terima kasih atas usahamu.
    http://www.opbyte.it/grsync/download.html

    1.    dandutrech.dll dijo

      fernando, tanpa rasa kesal dan jika Anda tidak keberatan menjawab, saya penasaran mengapa Anda menggunakan Gnu / Linux. Terima kasih dan salam hangat

  9.   zetaka01 dijo

    Ya, antarmuka grafis sangat ramah tetapi tidak memberi Anda opsi yang diberikan perintah lengkap kepada Anda.
    Juga, bukan kasus saya bahwa saya melakukannya untuk mengukur, skrip, baik itu shell atau python atau apa pun yang Anda inginkan, memungkinkan Anda memprogramnya untuk berjalan kapan pun Anda mau.
    Ah, di distro linux Anda, Anda harus memiliki rsync dan grsync tanpa masalah di repositori.
    Sebuah ucapan.

  10.   zetaka01 dijo

    Ah Fernando, jika Anda telah menggunakan linux sejak 2008 dan Anda tidak tahu bagaimana menjalankan skrip, saya tidak punya kata-kata.
    Sebuah ucapan

  11.   Gonzalo Martinez dijo

    Pa adalah semua insinyur sistem di sini yang mengkritik skrip yang dilakukan seseorang untuk berkolaborasi, dan jika menggunakan konsol / skrip atau apa pun?

    Betapa banyak buang air besar demi Tuhan.

    Saya telah mengelola server Linux selama 10 tahun, dan kenyataannya adalah bahwa ereksi elektronik untuk melakukan segala sesuatu dengan skrip melewati saya beberapa waktu yang lalu, misalnya, untuk mengelola Bacula, saya lebih suka menggunakan antarmuka grafis daripada shell untuk berpura-pura menjadi penting, yang sebenarnya berarti kriminal.

    Seseorang harus produktif, jika seseorang merasa lebih nyaman melakukannya melalui antarmuka, yah baginya, yang penting adalah hasilnya, bukan bagaimana Anda melakukannya.

    Dalam pekerjaan saya sebelumnya, saya mengarahkan area IT sebuah perusahaan, dan orang yang bertanggung jawab memintanya untuk melakukan sesuatu yang spesifik, saya tertarik dengan hasilnya, dia tidak mengatakan «Konfigurasi vhost lain di apache, menggunakan vi tanpa warna di terminal 30 × 20 ”, yang dia lakukan sesukanya, kalau yang laki-laki lebih suka melakukan seperti itu, memasang sftp dan menggunakan windows notepad, atau berdoa bapak kita, saya tidak peduli selama dia melakukannya dengan benar.

    dandutrech, skrip memenuhi tujuannya, yang merupakan hal penting, sekarang yang akan saya ubah adalah bahwa alih-alih meminta perintah dari shell, ia akan tiba-tiba menggunakan Python-librsync, yang merupakan pustaka untuk menggunakan fungsi rsync dalam Python .

    Dengan itu Anda mendapatkan portabilitas, skrip berjalan di lingkungan apa pun, baik itu Linux, Windows atau OS X.

  12.   dandutrecht dijo

    Terima kasih, Gonzalo. Saran Anda menurut saya sangat bagus dan saya akan memasukkannya ke dalam naskah. Salam