نص 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. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.

  1.   ماتياس قال

    اهلا كيف الحال؟
    اعجبني السيناريو ، بسيط جدا.
    بلا إهانة ، لقد أجريت بعض التعديلات لجعلها أبسط وأكثر قابلية للقراءة ، بالإضافة إلى دعم Python 2 و 3 (حاليًا لا يمكن تشغيلها إلا في Python 2)

    أترك لك الرابط مع نسختين ، في حال كنت مهتمًا.
    http://linkode.org/1np9l2bi8IiD5oEkPIUQb5/Yfa4900cA76BpcTpcf4nG1

    1.    داندوتريتش قال

      تعديلات رائعة وأنا سعيد لأنك أحب البرنامج النصي

  2.   niphosio قال

    النية مقدرة ، لكن النتيجة مبتذلة ونقانق.
    ابنة أخي البالغة من العمر 4 سنوات قادرة على عمل نص أكثر ذكاءً وقابلية للتكوين من هذه البطاطس التي وضعتها هنا.

    بالمناسبة ، المسافة البادئة للرمز خاطئة ، تحقق من الحلقات ولا أعني الشعر

    1.    داندوتريتش قال

      يعمل النص بشكل مثالي ، لقد كنت أستخدمه لفترة طويلة ، وفي الواقع ، نظرًا لعدد الأشخاص الذين يشاركونه ، لا ينبغي أن يكون سيئًا كما تقول. ربما يجب عليك الاتصال بابنة أختك لمعرفة ما إذا كنت قد وضعت كل شيء بشكل صحيح

    2.    tr قال

      مرحبًا ، تعلم أن تقدر القيمة وبدلاً من الانتقاد ، صحح ، إذا كنت تتفاخر كثيرًا.

      1.    داندوتريتش قال

        آر بالضبط ، أجرى ماتياس بعض التعديلات الرائعة. بالتأكيد يمكن تحسين النص وهذا هو ما يدور حوله في عالم التعاون وهذا هو ما عبر عنه ماتياس. إنه لأمر مخز أن يتواجد الأفراد هنا لإفساد الأجواء الجيدة التي يجب أن تسود. هناك هم.

    3.    أبادون س قال

      هل تعتقد أن النقد الوقح مفيد وأنه لا يساهم بأي شيء في النص؟ من الأفضل ألا تكتب نصًا سخيفًا وتشاركه !!!!!!!

  3.   لا أدري قال

    هنا نسخة أخرى: https://gist.github.com/Itsuki4/5acc3d03f3650719b88d
    علق على الأخطاء التي لدي ، سأقوم بتصحيحها (الآن أنا في windows ولم أتمكن من اختبارها).

  4.   زيتاكا 01 قال

    حسنًا ، أنا أستخدم rsync مباشرةً مع برنامج نصي شل ، دون استخدام بايثون.
    أضع سطرًا لكل دليل مصدر ووجهة.
    لدي العديد من البرامج النصية اعتمادًا على الجهاز الذي أقوم بالنسخ عليه ، في حالتي بشكل تدريجي.
    على سبيل المثال ، لنسخ كتبي إلى USB سعة 128 ميجابايت يتم تثبيته افتراضيًا في
    / media / zetaka01 / Sandisk128 وضعت في البرنامج النصي LibrosAusb128.sh السطر التالي:

    rsync -av –delete / home / zetaka01 / كتب / وسائط / zetaka01 / Sandisk128 /

    إذا كان دليل الوجهة غير موجود ، فإنه يقوم بإنشائه لك ويحذف من الوجهة ما هو غير موجود في الأصل ، بشكل متكرر بالطبع.
    تحية.

  5.   زيتاكا 01 قال

    آه ، خطأ نسخ / لصق-حذف ، بشرطتين.

    تحيات

  6.   داندوتريتش قال

    هل تريد إنشاء واجهة رسومية؟ لقد رأيت إمكانيات Tkinter و Tix ولكن للتحكم في اختيار الدلائل ربما يكون Wx أفضل

  7.   زيتاكا 01 قال

    توجد بالفعل واجهة رسومية تعتمد على GTK ، وتسمى grsync.
    أترك الرابط إلى ويكيبيديا ، https://en.wikipedia.org/wiki/Grsync
    تحية.

  8.   فرناندو قال

    مرحبا جميعا. يمكن أن يكون السيناريو أعجوبة أو بساطة لا أعرفها أو أهتم بها ولكن يمكن قول الأشياء بألف طريقة وعندما يمكن قولها جيدًا ، فلماذا أقولها بشكل خاطئ؟ بعد قولي هذا ، يجب أن أقول إنني مستخدم Linux منذ عام 2008 وعلى الرغم من كل هذا الوقت فأنا بطيء في التعلم ومن الصعب جدًا بالنسبة لي فهم العديد من الأشياء ، بما في ذلك كيفية تنفيذ نص برمجي (سهل ، أعلم ، لكن المرء لا يعطي المزيد) تثبيت البرامج عن طريق تجميعها وما إلى ذلك. لهذا السبب عندما قرأت أن هناك إصدارًا بواجهة رسومية نظرت إليها ووجدت هذه الصفحة حيث يقدمون لك كل شيء حتى مضغًا. للأخرق كخادم أتركه هنا. تحياتي وشكرًا على مجهودك.
    http://www.opbyte.it/grsync/download.html

    1.    داندوتريتش قال

      fernando ، بدون أي حدة ، وإذا كنت لا تمانع في الإجابة ، فأنا فضولي لمعرفة سبب استخدامك لـ Gnu / Linux. شكرا مع اطيب التحيات

  9.   زيتاكا 01 قال

    حسنًا ، الواجهة الرسومية ودية للغاية ولكنها لا تمنحك الخيارات التي يوفرها لك الأمر الكامل.
    بالإضافة إلى ذلك ، ليست حالتي أنني أقوم بذلك للقياس ، فبرنامج نصي ، سواء أكان من نوع shell أو python أو أي شيء تريده ، يسمح لك ببرمجته للتشغيل وقتما تشاء.
    آه ، في توزيعة Linux الخاصة بك ، يجب أن يكون لديك rsync و grsync بدون مشاكل في المستودعات.
    تحية.

  10.   زيتاكا 01 قال

    آه فرناندو ، إذا كنت تستخدم نظام لينكس منذ عام 2008 ولا تعرف كيفية تشغيل نص ، فليس لدي كلمات.
    تحيات

  11.   غونزالو مارتينيز قال

    Pa هم جميع مهندسي النظام هنا الذين ينتقدون البرنامج النصي الذي يقوم به شخص ما للتعاون ، وإذا كان يجب استخدام وحدة التحكم / البرنامج النصي أو أي شيء آخر؟

    كم هراء لضرطة في سبيل الله.

    لقد كنت أدير خوادم Linux لمدة 10 سنوات ، والحقيقة هي أن الانتصاب الإلكتروني لفعل كل شيء مع البرامج النصية حدث لي منذ وقت طويل ، على سبيل المثال ، لإدارة Bacula ، أفضل استخدام الواجهة الرسومية بدلاً من shell للتظاهر أن تكون مهمًا ، وهو أمر إجرامي حقًا.

    يجب أن يكون المرء منتجًا ، إذا شعر شخص ما براحة أكبر في القيام بذلك من خلال الواجهة ، حسنًا بالنسبة له ، ما يهم هو النتيجة ، وليس كيف تفعل ذلك.

    في وظيفتي السابقة ، قمت بتوجيه قسم تكنولوجيا المعلومات في شركة ، وطلب منه المسؤولون القيام بشيء محدد ، كنت مهتمًا بالنتيجة ، ولم يقل «تكوين مضيف آخر في أباتشي ، باستخدام vi بدون لون في محطة 30 × 20 "، أنه يفعل ذلك لأنه أكثر راحة ، إذا فضل الرجل القيام بذلك على هذا النحو ، والتركيب بواسطة SFTP واستخدام مفكرة النوافذ ، أو الدعاء لأبينا ، لم أكن أهتم طالما أنه فعلها بشكل صحيح.

    dandutrech ، البرنامج النصي يحقق هدفه ، وهو الشيء المهم ، ما سأغيره الآن هو أنه بدلاً من استدعاء الأمر من الصدفة ، فإنه سيستخدم فجأة Python-librsync ، وهي مكتبة لاستخدام وظائف rsync داخل Python .

    مع ذلك يمكنك الحصول على إمكانية النقل ، يتم تشغيل البرنامج النصي في أي بيئة ، سواء كانت Linux أو Windows أو OS X.

  12.   دان دوتريتش قال

    شكرا جونزالو. أعتقد أن اقتراحك جيد جدًا وسأضعه في النص. تحيه