Rsync के साथ स्थानीय बैकअप के लिए पायथन स्क्रिप्ट

ग्नू / लिनक्स में बैकअप को अंजाम देने के लिए अलग-अलग कार्यक्रम होते हैं, लेकिन व्यक्तिगत रूप से मुझे सरल चीजें पसंद हैं, ग्राफिकल इंटरफेस से दूर (जिसमें कुछ भी गलत नहीं है, निश्चित रूप से, लेकिन अगर मैं इसका उपयोग करने से बच सकता हूं, तो मैं बचता हूं)।
Rsync कमांड में बैकअप का एक दुर्जेय सहयोगी होता है जिसे हम अक्सर करना भूल जाते हैं। इसके पास सभी आवश्यक आवश्यकताओं के साथ एक प्रतिलिपि बनाने के लिए पर्याप्त विकल्प हैं। कंप्यूटर 767784_640

निम्नलिखित अजगर स्क्रिप्ट इस उद्देश्य के लिए बैकअप प्रतियां बनाती है। आप देखेंगे कि यह अत्यंत सरल है और यहां तक ​​कि उन लोगों के लिए जिन्हें इस भाषा का बिल्कुल भी अंदाजा नहीं है, एक नई निर्देशिका को सिंक्रनाइज़ करने के लिए स्क्रिप्ट के लिए एक पंक्ति जोड़ना तत्काल है।
मेरी मशीन में मैं एक बाहरी हार्ड डिस्क का उपयोग करता हूं जिसे मैंने IOmega_HDD कहा है, आपके मामले में आप इसे अपने मामले के अनुसार स्क्रिप्ट में नाम बदल सकते हैं।
एक और बात यह है कि कॉपी से निर्देशिकाओं को जोड़ना या निकालना है। कमेंट लाइन के समान स्क्रिप्ट में यह समझाया जाता है कि यह कैसे करना है।
कार्य को स्वचालित करने के लिए आप अजगर को दुभाषिया और पथ में एक पंक्ति जोड़ सकते हैं जहां आप स्क्रिप्ट रखना चाहते हैं। मुझे आशा है कि यह आपके लिए उपयोगी है।

चेतावनी: वर्डप्रेस संपादक लाइन की शुरुआत में एक रिक्ति की अनुमति नहीं देता है, इस प्रकार स्क्रिप्ट में आवश्यक इंडेंटेशन खो गया है, इसलिए मैंने रिक्त स्थान को अवधि (।) के साथ बदल दिया है जिसे आपको एक संपादक के साथ समाप्त करना होगा और रिक्त स्थान के साथ बदलना होगा। ।

-------------------------------
# -*- 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. डेटा के लिए जिम्मेदार: मिगुएल elngel Gatón
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।

  1.   Matias कहा

    नमस्ते आप कैसे हैं?
    मुझे स्क्रिप्ट बहुत पसंद आई।
    कोई अपराध नहीं, मैंने इसे सरल और अधिक पठनीय बनाने के लिए कुछ संशोधन किए, साथ ही पायथन 2 और 3 का समर्थन किया (वर्तमान में इसे केवल पायथन 2 में चलाया जा सकता है)

    यदि आप रुचि रखते हैं, तो मैं आपको 2 संस्करणों के साथ लिंक छोड़ देता हूं।
    http://linkode.org/1np9l2bi8IiD5oEkPIUQb5/Yfa4900cA76BpcTpcf4nG1

    1.    डंडुत्रेच कहा

      महान mods और मुझे खुशी है कि आप स्क्रिप्ट पसंद करेंगे

  2.   निफ़ोसियो कहा

    इरादे की सराहना की जाती है, लेकिन परिणाम कठिन और सॉसेज है।
    मेरी 4 साल की भतीजी आपके द्वारा डाले गए इस आलू की तुलना में अधिक बुद्धिमान और विन्यास योग्य स्क्रिप्ट बनाने में सक्षम है।

    वैसे, कोड का इंडेंटेशन गलत है, अपने छोरों की जांच करें और मेरा मतलब बाल वाले नहीं हैं

    1.    डंडुत्रेच कहा

      स्क्रिप्ट पूरी तरह से काम करती है, मैं इसे लंबे समय से उपयोग कर रहा हूं और वास्तव में, इसे साझा करने वाले लोगों की संख्या के कारण, यह उतना भद्दा नहीं होना चाहिए जितना आप कहते हैं। हो सकता है कि आपको अपनी भतीजी को यह देखने के लिए कॉल करना चाहिए कि क्या आपने सब कुछ सही तरीके से रखा है

    2.    tr कहा

      अरे, मूल्य के बजाय और आलोचना करना सीखो, सही है, अगर आप बहुत ज्यादा डींग मारते हैं।

      1.    डंडुत्रेच कहा

        वास्तव में, माटी ने कुछ बेहतरीन संशोधन किए हैं। निश्चित रूप से स्क्रिप्ट में सुधार किया जा सकता है और यही वह सहयोग की दुनिया के बारे में है और यही बात मतिस ने व्यक्त की है। यह एक अफ़सोस की बात है कि व्यक्तियों को अच्छे माहौल में खटास पैदा करनी चाहिए। वहाँ वे।

    3.    एबडॉन सी कहा

      क्या आपको लगता है कि एक असभ्य आलोचना उपयोगी है और यह कुछ भी जोड़ नहीं है! कुछ भी गलत नहीं है, आप एक रोमांचक स्क्रैप और इसे साझा करें !!!!!!!

  3.   मुझे नही पता कहा

    यहाँ एक और संस्करण है: https://gist.github.com/Itsuki4/5acc3d03f3650719b88d
    मेरे पास जो त्रुटियां हैं, उन्हें टिप्पणी करें, मैं इसे ठीक कर दूंगा (अब मैं खिड़कियों में हूं और मैं इसका परीक्षण नहीं कर सका)।

  4.   zetaka01 कहा

    अच्छी तरह से मैं अजगर का उपयोग किए बिना सीधे शेल स्क्रिप्ट के साथ rsync का उपयोग करता हूं।
    मैंने प्रत्येक स्रोत और गंतव्य निर्देशिका के लिए एक पंक्ति रखी।
    मेरे पास डिवाइस के आधार पर कई स्क्रिप्ट हैं, जिस पर मैं अपने मामले को बढ़ाता हूं।
    उदाहरण के लिए, मेरी पुस्तकों को 128MB usb पर कॉपी करने के लिए जो डिफ़ॉल्ट रूप से स्थापित है
    / media / zetaka01 / Sandisk128 मैंने लिब्रोसएस्बस128 में लिखी है। निम्नलिखित पंक्ति:

    rsync -av –delete / home / zetaka01 / पुस्तकें / मीडिया / zetaka01 / Sandisk128 /

    यदि गंतव्य निर्देशिका मौजूद नहीं है, तो यह आपके लिए बनाता है और गंतव्य से हटता है जो मूल में नहीं है, बेशक।
    एक ग्रीटिंग.

  5.   zetaka01 कहा

    आह, दो हाइफ़न के साथ एक कॉपी / पेस्ट-डिलीट त्रुटि।

    एक ग्रीटिंग

  6.   डंडुत्रेच कहा

    क्या आप ग्राफ़िकल इंटरफ़ेस बनाना चाहते हैं? मैंने टिंकर और टीएक्स की संभावनाओं को देखा है लेकिन निर्देशिकाओं के चुनाव के नियंत्रण के लिए शायद डब्ल्यूएक्स बेहतर है

  7.   zetaka01 कहा

    जीटीके पर आधारित पहले से ही एक ग्राफिकल इंटरफ़ेस है, इसे ग्रस्यून्क कहा जाता है।
    मैं विकिपीडिया का लिंक छोड़ता हूँ, https://en.wikipedia.org/wiki/Grsync
    एक ग्रीटिंग.

  8.   फर्नांडो कहा

    सभी को नमस्कार। पटकथा एक चमत्कार या एक सरलता हो सकती है, मुझे नहीं पता या परवाह नहीं है, लेकिन चीजों को एक हजार तरीके से कहा जा सकता है और जब उन्हें अच्छी तरह से कहा जा सकता है, तो उन्हें गलत क्यों कहें? उन्होंने कहा, मुझे कहना है कि मैं 2008 से लिनक्स उपयोगकर्ता रहा हूं और इस सब के बावजूद मैं सीखना धीमा कर रहा हूं और मेरे लिए कई चीजों को समझना बहुत मुश्किल है, जिनमें स्क्रिप्ट को निष्पादित करना आसान है (मुझे पता है, लेकिन एक अधिक नहीं देता है)। आदि को संकलित करके कार्यक्रम स्थापित करें। इसीलिए जब मैंने पढ़ा कि चित्रमय इंटरफ़ेस वाला एक संस्करण है, तो मैंने इस पृष्ठ को खोजा और पाया जहाँ वे आपको सब कुछ चबा कर देते थे। एक सर्वर के रूप में अनाड़ी के लिए मैं इसे यहाँ छोड़ देता हूँ आपके प्रयास के लिए बधाई और धन्यवाद।
    http://www.opbyte.it/grsync/download.html

    1.    डंडुत्रेच कहा

      फ़र्नान्डो, बिना किसी तीखेपन के और अगर आपको जवाब देने में कोई आपत्ति नहीं है, तो मैं उत्सुक हूं कि आप ग्नू / लिनक्स का उपयोग क्यों करते हैं धन्यवाद एवं शुभकामनाएँ

  9.   zetaka01 कहा

    ठीक है, एक ग्राफिकल इंटरफ़ेस बहुत अनुकूल है, लेकिन यह आपको विकल्प नहीं देता है जो एक पूर्ण कमांड आपको देता है।
    इसके अलावा, यह मेरा मामला नहीं है कि मैं इसे मापने के लिए करता हूं, एक स्क्रिप्ट, यह शेल या अजगर हो या आप जो भी चाहते हैं, आप जब चाहें इसे चलाने के लिए इसे प्रोग्राम कर सकते हैं।
    आह, आपके linux distro में आपको रिपॉजिटरी में समस्याओं के बिना rsync और grsync होना चाहिए।
    एक ग्रीटिंग.

  10.   zetaka01 कहा

    आह फर्नांडो, अगर आप 2008 से लिनक्स का उपयोग कर रहे हैं और आप नहीं जानते कि स्क्रिप्ट कैसे चलाना है, तो मेरे पास कोई शब्द नहीं है।
    एक ग्रीटिंग

  11.   गोंजालो मार्टिनेज कहा

    पा यहाँ सभी सिस्टम इंजीनियर हैं जो उस स्क्रिप्ट की आलोचना करते हैं जो कोई व्यक्ति सहयोग करने के लिए करता है, और यदि कंसोल / स्क्रिप्ट या जो भी उपयोग करना हो?

    भगवान के लिए फार्ट करने में कितना शर्म आती है।

    मैं 10 साल से लिनक्स सर्वर का प्रबंधन कर रहा हूं, और सच्चाई यह है कि स्क्रिप्ट के साथ सब कुछ करने का इलेक्ट्रॉनिक निर्माण मुझे थोड़ी देर पहले पारित किया गया था, उदाहरण के लिए, बकुला को प्रशासित करने के लिए, मैं होने का नाटक करने के लिए शेल की तुलना में ग्राफिकल इंटरफ़ेस का उपयोग करना पसंद करता हूं महत्वपूर्ण, जो वास्तव में एक आपराधिक साधन है।

    किसी को उत्पादक होना पड़ता है, अगर कोई व्यक्ति इंटरफ़ेस के माध्यम से इसे करने में अधिक सहज महसूस करता है, तो उसके लिए, क्या मायने रखता है, न कि आप इसे कैसे करते हैं।

    अपनी पिछली नौकरी में मैंने एक कंपनी के आईटी क्षेत्र को निर्देशित किया, और प्रभारी लोगों ने उसे कुछ विशिष्ट करने के लिए कहा, मुझे परिणाम में दिलचस्पी थी, उसने कहा नहीं «अपाचे में एक और vhost कॉन्फ़िगर करें, बिना रंग के vi का उपयोग एक टर्मिनल 30 × 20 ”में, कि वह ऐसा करता है क्योंकि वह सबसे अधिक आरामदायक है, अगर वह आदमी ऐसा करना पसंद करता है, एसएफटीपी द्वारा बढ़ते हुए और विंडोज़ नोटपैड का उपयोग करते हुए, या हमारे पिता से प्रार्थना करते हुए, जब तक मैं उसकी परवाह नहीं करता। सही किया

    dandutrech, स्क्रिप्ट अपने उद्देश्य को पूरा करती है, जो महत्वपूर्ण बात है, अब जो मैं बदलूंगा वह यह है कि शेल से कमांड को इनवॉइस करने के बजाय, यह अचानक Python-librsync का उपयोग करेगा, जो कि Python के भीतर rsync फ़ंक्शन का उपयोग करने के लिए एक लाइब्रेरी है ।

    इसके साथ आप पोर्टेबिलिटी प्राप्त करते हैं, स्क्रिप्ट किसी भी वातावरण में चलती है, चाहे वह लिनक्स, विंडोज या ओएस एक्स हो।

  12.   दानदत्रेच कहा

    धन्यवाद, गोंजालो। आपका सुझाव मुझे बहुत अच्छा लगा और मैं इसे स्क्रिप्ट में डालने जा रहा हूं। अभिनंदन