สคริปต์ Python สำหรับการสำรองข้อมูลในเครื่องด้วย rsync

ใน Gnu / Linux มีโปรแกรมต่าง ๆ ในการสำรองข้อมูล แต่โดยส่วนตัวแล้วฉันชอบสิ่งที่เรียบง่ายห่างไกลจากอินเทอร์เฟซแบบกราฟิก (ซึ่งไม่มีอะไรผิดปกติ แต่ถ้าฉันสามารถหลีกเลี่ยงการใช้งานได้ฉันก็หลีกเลี่ยง)
ในคำสั่ง rsync มีการสำรองข้อมูลพันธมิตรที่น่ากลัวซึ่งเรามักลืมทำ มีตัวเลือกเพียงพอที่จะทำสำเนาพร้อมข้อกำหนดที่จำเป็นทั้งหมด คอมพิวเตอร์ 767784_640

สคริปต์ python ต่อไปนี้สร้างสำเนาสำรองสำหรับวัตถุประสงค์นี้ คุณจะเห็นว่ามันง่ายมากและแม้แต่สำหรับผู้ที่ไม่มีความคิดเกี่ยวกับภาษานี้เลยการเพิ่มบรรทัดสำหรับสคริปต์เพื่อซิงโครไนซ์ไดเร็กทอรีใหม่ก็ทำได้ทันที
ในเครื่องของฉันฉันใช้ฮาร์ดดิสก์ภายนอกที่ฉันเรียกว่า IOmega_HDD ในกรณีของคุณคุณสามารถเปลี่ยนชื่อในสคริปต์ตามกรณีของคุณ
อีกประการหนึ่งคือการเพิ่มหรือลบไดเรกทอรีออกจากสำเนา ในสคริปต์เดียวกันกับบรรทัดความคิดเห็นจะอธิบายวิธีการทำ
ในการทำงานโดยอัตโนมัติคุณสามารถเพิ่มบรรทัดลงใน crontab ที่มีตัวแปล python และเส้นทางที่คุณต้องการใส่สคริปต์ ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ

การเตือน: โปรแกรมแก้ไข wordpress ไม่อนุญาตให้มีการเว้นวรรคที่จุดเริ่มต้นของบรรทัดดังนั้นการเยื้องที่จำเป็นในสคริปต์จึงหายไปดังนั้นฉันจึงแทนที่ช่องว่างด้วยจุด (.) ที่คุณต้องกำจัดด้วยโปรแกรมแก้ไขและแทนที่ด้วยช่องว่าง .

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

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


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   Matias dijo

    สวัสดีสบายดีไหม
    ฉันชอบบทที่เรียบง่ายมาก
    ไม่มีความผิดฉันได้ทำการปรับเปลี่ยนบางอย่างเพื่อให้ง่ายขึ้นและอ่านง่ายขึ้นรวมถึงรองรับ Python 2 และ 3 (ปัจจุบันสามารถทำงานได้ใน Python 2 เท่านั้น)

    ฉันปล่อยลิงค์ไว้ให้คุณพร้อมทั้ง 2 เวอร์ชันเผื่อว่าคุณสนใจ
    http://linkode.org/1np9l2bi8IiD5oEkPIUQb5/Yfa4900cA76BpcTpcf4nG1

    1.    แดนดูทริช dijo

      ม็อดที่ยอดเยี่ยมและฉันดีใจที่คุณชอบสคริปต์

  2.   นิโฟซิโอ dijo

    ความตั้งใจเป็นที่ชื่นชม แต่ผลที่ได้คือไม่มีรสนิยมและไส้กรอก
    หลานสาวอายุ 4 ขวบของฉันสามารถสร้างสคริปต์ที่ชาญฉลาดและกำหนดค่าได้มากกว่ามันฝรั่งที่คุณใส่ไว้ที่นี่

    อย่างไรก็ตามการเยื้องรหัสไม่ถูกต้องตรวจสอบลูปของคุณและฉันไม่ได้หมายถึงผม

    1.    แดนดูทริช dijo

      สคริปต์ทำงานได้อย่างสมบูรณ์ฉันใช้มานานแล้วและอันที่จริงเนื่องจากมีคนแชร์จำนวนมากจึงไม่ควรเส็งเคร็งอย่างที่คุณพูด บางทีคุณควรโทรหาหลานสาวเพื่อดูว่าคุณใส่ทุกอย่างถูกต้องหรือไม่

    2.    tr dijo

      เฮ้เรียนรู้ที่จะเห็นคุณค่าและแทนที่จะวิพากษ์วิจารณ์แก้ไขถ้าคุณโอ้อวดมาก ๆ

      1.    แดนดูทริช dijo

        แน่นอนว่า tr Matias ได้ทำการปรับเปลี่ยนที่ยอดเยี่ยม แน่นอนว่าสคริปต์สามารถปรับปรุงได้และนั่นคือสิ่งที่เกี่ยวกับโลกแห่งการทำงานร่วมกันและนั่นคือวิธีที่ Matias แสดงออกมา เป็นที่น่าเสียดายที่ผู้คนอยู่แถวนี้จะได้รับบรรยากาศที่ดีที่ควรจะมีเหนือกว่า ที่นั่นพวกเขา

    3.    Abaddon s dijo

      คุณคิดว่าคำวิจารณ์ที่หยาบคายมีประโยชน์และไม่ได้เพิ่มอะไรลงในสคริปดีกว่าคุณอย่าเขียนสคริปต์ที่น่าสนใจและแบ่งปัน !!!!!!!

  3.   ฉันไม่รู้ dijo

    นี่คือเวอร์ชันอื่น: https://gist.github.com/Itsuki4/5acc3d03f3650719b88d
    แสดงความคิดเห็นเกี่ยวกับข้อผิดพลาดที่ฉันมีฉันจะแก้ไข (ตอนนี้ฉันอยู่ใน windows และฉันไม่สามารถทดสอบได้)

  4.   ซีทากะ 01 dijo

    ฉันใช้ rsync โดยตรงกับเชลล์สคริปต์โดยไม่ต้องใช้ python
    ฉันวางบรรทัดสำหรับไดเรกทอรีต้นทางและปลายทางแต่ละรายการ
    ฉันมีสคริปต์หลายตัวขึ้นอยู่กับอุปกรณ์ที่ฉันทำสำเนาในกรณีของฉันเพิ่มขึ้น
    ตัวอย่างเช่นในการคัดลอกหนังสือของฉันไปยัง usb ขนาด 128MB ที่ติดตั้งโดยค่าเริ่มต้นใน
    / media / zetaka01 / Sandisk128 ฉันใส่บรรทัดต่อไปนี้ในสคริปต์ LibrosAusb128.sh:

    rsync -av –delete / home / zetaka01 / หนังสือ / สื่อ / zetaka01 / Sandisk128 /

    หากไม่มีไดเร็กทอรีปลายทางจะสร้างขึ้นสำหรับคุณและลบออกจากปลายทางสิ่งที่ไม่อยู่ในต้นทางโดยเรียกซ้ำแน่นอน
    คำอวยพร

  5.   ซีทากะ 01 dijo

    อ่าข้อผิดพลาดในการคัดลอก / วางลบมีขีดกลางสองตัว

    อาศิรพจน์

  6.   แดนดูทริช dijo

    คุณต้องการสร้างอินเทอร์เฟซแบบกราฟิกหรือไม่? ฉันได้เห็นความเป็นไปได้ของ Tkinter และ Tix แต่สำหรับการควบคุมการเลือกไดเรกทอรีบางที Wx จะดีกว่า

  7.   ซีทากะ 01 dijo

    มีอินเทอร์เฟซแบบกราฟิกที่ใช้ GTK อยู่แล้วเรียกว่า grsync
    ฉันทิ้งลิงค์ไปยัง Wikipedia https://en.wikipedia.org/wiki/Grsync
    คำอวยพร

  8.   เฟอร์นันโด dijo

    สวัสดีทุกคน. บทพูดอาจเป็นเรื่องน่าอัศจรรย์หรือเรียบง่ายที่ฉันไม่รู้จักหรือสนใจ แต่สิ่งต่าง ๆ สามารถพูดได้เป็นพัน ๆ วิธีและเมื่อพูดได้ดีทำไมถึงพูดผิด ต้องบอกว่าฉันเป็นผู้ใช้ Linux มาตั้งแต่ปี 2008 และแม้ว่าฉันจะเรียนรู้ช้าตลอดเวลาและฉันก็มีช่วงเวลาที่ยากลำบากในการทำความเข้าใจหลาย ๆ สิ่งรวมถึงวิธีเรียกใช้สคริปต์ (ฉันรู้ว่ามันง่าย แต่ก็มี ไม่ให้มากกว่านี้) ติดตั้งโปรแกรมโดยรวบรวม ฯลฯ เป็นต้น นั่นคือเหตุผลที่เมื่อฉันอ่านพบว่ามีเวอร์ชันที่มีอินเทอร์เฟซแบบกราฟิกฉันได้ดูและพบว่าหน้านี้ให้ทุกสิ่งแก่คุณแม้กระทั่งเคี้ยว เพราะเงอะงะในฐานะคนรับใช้ฉันปล่อยไว้ที่นี่ ทักทายและขอบคุณสำหรับความพยายามของคุณ
    http://www.opbyte.it/grsync/download.html

    1.    แดนดูทริช dijo

      เฟอร์นันโดไม่มีความรุนแรงใด ๆ และถ้าคุณไม่สนใจที่จะตอบฉันสงสัยว่าทำไมคุณถึงใช้ Gnu / Linux ขอบคุณและทักทาย

  9.   ซีทากะ 01 dijo

    อินเทอร์เฟซแบบกราฟิกเป็นมิตรมาก แต่ไม่ได้ให้ตัวเลือกที่คำสั่งเต็มให้
    นอกจากนี้ไม่ใช่กรณีของฉันที่ฉันทำเพื่อวัดสคริปต์เชลล์หรือไพ ธ อนหรืออะไรก็ตามที่คุณต้องการช่วยให้คุณสามารถตั้งโปรแกรมให้ทำงานได้ทุกเมื่อที่คุณต้องการ
    อ่าใน linux distro ของคุณคุณควรมี rsync และ grsync โดยไม่มีปัญหาในที่เก็บ
    คำอวยพร

  10.   ซีทากะ 01 dijo

    Ah Fernando ถ้าคุณใช้ linux มาตั้งแต่ปี 2008 และคุณไม่รู้วิธีเรียกใช้สคริปต์ฉันก็ไม่มีคำพูด
    อาศิรพจน์

  11.   กอนซาโล่มาร์ติเนซ dijo

    Pa เป็นวิศวกรระบบทั้งหมดที่วิจารณ์สคริปต์ที่มีคนทำเพื่อทำงานร่วมกันและถ้าจะใช้คอนโซล / สคริปต์หรืออะไรก็ตาม?

    อึมากแค่ไหนที่จะผายลมเพื่อเห็นแก่พระเจ้า

    ฉันจัดการเซิร์ฟเวอร์ Linux มา 10 ปีแล้วและความจริงก็คือการสร้างระบบอิเล็กทรอนิกส์ในการทำทุกอย่างด้วยสคริปต์ผ่านฉันมาสักพักแล้วตัวอย่างเช่นในการจัดการบาคูลาฉันชอบใช้อินเทอร์เฟซแบบกราฟิกมากกว่าเชลล์เพื่อแสร้งทำเป็น สำคัญซึ่งเป็นวิธีการทางอาญาจริงๆ

    เราต้องมีประสิทธิผลหากมีคนรู้สึกสบายใจที่จะทำผ่านอินเทอร์เฟซสำหรับเขาสิ่งที่สำคัญคือผลลัพธ์ไม่ใช่วิธีที่คุณทำ

    ในงานก่อนหน้าของฉันฉันเป็นผู้กำกับพื้นที่ไอทีของ บริษัท แห่งหนึ่งและคนที่รับผิดชอบขอให้เขาทำบางอย่างที่เฉพาะเจาะจงฉันสนใจในผลลัพธ์เขาไม่ได้พูดว่า«กำหนดค่า vhost อื่นใน apache โดยใช้ vi ที่ไม่มีสี ในเทอร์มินัล 30 × 20” ที่เขาทำตามที่สบายใจที่สุดถ้าผู้ชายชอบทำแบบนั้นติดตั้งด้วย SFTP และใช้แผ่นจดบันทึกหน้าต่างหรือสวดอ้อนวอนพระบิดาของเราฉันไม่สนใจตราบใดที่เขา ทำถูกแล้ว

    dandutrech สคริปต์ตอบสนองวัตถุประสงค์ซึ่งเป็นสิ่งสำคัญตอนนี้สิ่งที่ฉันจะเปลี่ยนคือแทนที่จะเรียกใช้คำสั่งจากเชลล์มันจะใช้ Python-librsync ซึ่งเป็นไลบรารีเพื่อใช้ฟังก์ชัน rsync ภายใน Python .

    ด้วยการที่คุณสามารถพกพาได้สคริปต์จึงทำงานในทุกสภาพแวดล้อมไม่ว่าจะเป็น Linux, Windows หรือ OS X

  12.   dandutrecht dijo

    ขอบคุณกอนซาโล ข้อเสนอแนะของคุณฉันคิดว่าดีมากและฉันจะใส่ไว้ในสคริปต์ คำทักทาย