7zip के साथ वृद्धिशील बैकअप


17

मैंने गुगली की है और खोज की है, लेकिन क्रमिक बैकअप बनाने के लिए 7zip कमांड लाइन उपयोगिता का उपयोग करने वाली कमांड नहीं मिल सकती है। तो क्या कोई कृपया कमांड साझा कर सकता है?

धन्यवाद

btw मुझे यह लिंक मिला: http://wmug.co.uk/wmug/b/sean/archive/2009/03/20/powershell-amp-7zip-incremental-backup-solution.aspx । लेकिन यह अंतर बैकअप के लिए प्रतीत होता है, भले ही इसे वृद्धिशील कहते हैं।

जवाबों:


11

सरल होना चाहिए, इसका उपयोग आर्काइव बनाने और बढ़ाने के लिए करें:

7zr u -up0q3r2x2y2z1w2 {archive}.7z {path}

यह पृष्ठ अद्यतन विकल्पों के लिए एक संदर्भ प्रदान करता है।

वे इस प्रकार अनुवादित हैं:

  • p0 - यदि "फ़ाइल संग्रह में मौजूद है, लेकिन वाइल्डकार्ड के साथ मेल नहीं खाता है" तो संग्रह से फ़ाइल को हटा दें।
  • q3- अगर "फाइल आर्काइव में मौजूद है, लेकिन डिस्क पर मौजूद नहीं है" तो फाइल को आर्काइव से हटा दें और फाइल सिस्टम से निकालने पर हटा दें
  • r2 - अगर "फ़ाइल संग्रह में मौजूद नहीं है, लेकिन डिस्क पर मौजूद है" तो फ़ाइल को संग्रह में पैक करें।
  • x2 - यदि "संग्रह में फ़ाइल डिस्क पर फ़ाइल की तुलना में नया है" तो पुरानी फ़ाइल को संग्रह में पैक करें।
  • y2 - यदि "संग्रह में फ़ाइल डिस्क पर फ़ाइल से पुरानी है" तो संग्रह में नई फ़ाइल को पैक करें।
  • z1 - यदि "फाइल इन आर्काइव डिस्क पर फाइल के समान है" तो फाइल के पैक्ड वर्जन का फिर से उपयोग करें।
  • w2 - यदि फ़ाइल का आकार अलग है, तो संग्रहित फ़ाइल को संग्रह में पैक करें।

हैलो, उन कई विकल्पों का क्या मतलब है?
झियानक

यह एक फ़ाइल स्थिति से एक कार्रवाई के लिए एक नक्शा है। सात संभावित राज्य हैं।
ArtemGr

3
यह एक वृद्धिशील बैकअप नहीं है। यह कमांड एक अंतर बैकअप बनाता है और अंतिम पूर्ण बैकअप के बाद से परिवर्तन के साथ नए संग्रह बनाता है। वृद्धिशील बैकअप पटरियों पिछले वृद्धिशील बैकअप (अंतर का अंतर) के बाद से बदलता है।
stil

मुझे लगता है कि यह स्पष्ट रूप से गलत है, यह सिर्फ आर्काइव को अद्यतन करता है ।z लगभग एक नया संग्रह बनाने के समान ही है, लेकिन यह पुन: उपयोग में थोड़ा तेज होगा। जेवियर का जवाब नीचे दिया गया एक अंतर है।
Tuntable

जब संग्रह बड़ा होता है और वृद्धि छोटी होती है तो " बिट क्विकर " काफी पर्याप्त होता है। पूरे संग्रह को दोबारा नहीं करना वृद्धिशील बैकअप के बिंदुओं में से एक है। इसके अलावा, यह एक अंतर बैकअप नहीं है: हम मुख्य संग्रह को अपडेट कर रहे हैं और एक अलग संग्रह में अंतर को संग्रहीत नहीं कर रहे हैं। यदि आप अन्य समाधानों को अधिक पसंद करते हैं, तो उन्हें उखाड़ने के लिए स्वतंत्र महसूस करें, एक बिल्ली की त्वचा के लिए एक से अधिक तरीके हैं।
आर्टेमग्र

8

यदि आप एक वृद्धिशील बैकअप करने के लिए थे , तो आपको संशोधित (साथ -i@fileList) फ़ाइलों की सूची के साथ 7-ज़िप प्रदान करने की आवश्यकता होगी , और आपको किसी तरह ऐसी सूची को विस्तृत करने की आवश्यकता होगी। हटाए गए प्रश्न के आर्काइव.ऑर्ग मिरर में अंगूठे के माध्यम से ऑफलाइन इनकर्मेंटल बैकअप आप फ़ाइललॉस्ट बनाने के लिए md5 हस्ताक्षर का उपयोग करके एक यूनिक्स कमांड लाइन पा सकते हैं।

7-ज़िप अपडेट ऑपरेशन आधार / प्राथमिक संग्रह के बाद होने वाले अंतर (हटाए गए फ़ाइलों सहित) के साथ एक माध्यमिक संग्रह बनाने की अनुमति देता है। इसे ठीक से एक अंतर बैकअप नाम दिया गया है (जैसा कि प्रश्न में कहा गया है)।

मुझे इस विषय पर WPCTips "7-ज़िप के साथ डिफरेंशियल बैकअप" (संग्रहीत) में एक उत्कृष्ट लेख मिला है । वे या तो GUI प्रोग्राम (Toucan) का उपयोग करने की सलाह देते हैं, या कमांड लाइन के लिए इस रेसिपी का उपयोग करते हैं:

7z u {base archive.7z} -u- -"up0q3r2x2y2z0w2!{differential.7z}" {folder to archive}

यह 7zr u -up0q3r2x2y2z1w2 {archive}.7z {path}ArtemGr द्वारा प्रस्तावित से थोड़ा अलग है :

  • -u- बताता है कि मुख्य संग्रह को संशोधित नहीं किया जाना चाहिए
  • "-up0q3r2x2y2z0w2!{differential.7z}"लक्ष्य अंतर संग्रह को निर्दिष्ट करता है, और प्रत्येक स्थिति / स्थिति के लिए प्रत्येक फ़ाइल के लिए क्या कार्रवाई करनी है: फ़ाइलें जोड़ें जो फ़ाइल सिस्टम में नई या संशोधित हैं, केवल 7zip संग्रह में मौजूद फ़ाइलों को हटा दें, बाकी को अनदेखा करें।
    ध्यान दें कि "!" bashजब तक यह उद्धृत नहीं किया जाता है तब तक चरित्र को रोक दिया जाएगा ।

बस उस मामले में आप उस गूढ़ व्यक्ति की बारीकियों के बारे में उत्सुक हैं p0q3r2x2y2z0w2

<state> | State condition
p | File exists in archive, but is not matched with wildcard.   Exists, but is   not matched 
q | File exists in archive, but doesn't exist on disk.
r | File doesn't exist in archive, but exists on disk.
x | File in archive is newer than the file on disk.
y | File in archive is older than the file on disk.
z | File in archive is same as the file on disk
w | Can not be detected what file is newer (times are the same, sizes are different)

<action> | Description 
0 | Ignore file (don't create item in new archive for this file) 
1 | Copy file (copy from old archive to new) 
2 | Compress (compress file from disk to new archive) 
3 | Create Anti-item (item that will delete file or directory during extracting). This feature is supported only in 7z format. 

2
उत्तर जेवियर के लिए धन्यवाद, और सुपर उपयोगकर्ता में आपका स्वागत है। गायब होने की स्थिति में लिंक को सारांशित करने के लिए यहां एक नीति है- क्या आप बता सकते हैं कि कमांड वृद्धिशील बैकअप कैसे प्राप्त करता है? (विशेष रूप से up0q3r2x2y2z0w2हिस्सा!) धन्यवाद :-)
bertieb

1
@bertieb सलाह के लिए धन्यवाद। मुझे उम्मीद है कि यह अब और स्पष्ट है।
जेवियर

1
@DanielSokolowski यकीन नहीं अगर यह आपके सवाल का जवाब देता है। यदि आपने एक वृद्धिशील बैकअप (A + b + c + d) किया है, तो आपको उन्हें बनाए गए क्रम में प्रत्येक संग्रह से निकालना होगा। यदि आपने एक अंतर बैकअप (ए + (बी + सी + डी)) किया था। यह 2 अभिलेखागार है जिसे आपको निकालना है। यह अच्छा होगा कि पिछले संग्रह में पिछले अभिलेखागार और निष्कर्षण के क्रम के बारे में जानकारी थी, इसलिए निष्कर्षण एक ही आदेश के साथ किया जा सकता था। लेकिन मुझे इस तरह के फीचर की जानकारी नहीं है।
जेवियर

1
आपके द्वारा साझा किया गया लेख @Javier
alper

1
साभार @alper Archive.org के पास web.archive.org/web/2016082211111118/http://www.wpctips.com:80/… पर extint WPC Tips लेख के कुछ स्नैपशॉट हैं । मुझे लगता है कि मुझे प्रतिक्रिया में संशोधन करना होगा।
जेवियर

4

आप समय में दिशा बदलने के माध्यम से एक वृद्धिशील बैकअप आसानी से कर सकते हैं। यानी आप हमेशा नवीनतम बैकअप को एक पूर्ण प्रति के रूप में रखते हैं और अंतर फाइलों को अतीत में रखते हैं।

# create the difference step into the past
7z u {base archive.7z} {folder to archive} -mx=9 -u- -up1q1r3x1y1z0w1!{decrement.7z}

# update the Archive to the latest files
7z u {base archive.7z} {folder to archive} -mx=9 -up0q0x2

बेस आर्काइव में हमेशा नवीनतम संस्करण होता है और "डिक्रीमेंट्स" चरण को लागू करने के माध्यम से आप पुराने संस्करणों को फिर से बना सकते हैं। थोड़ी स्क्रिप्टिंग के साथ आप डिक्रिमेंटल फाइलों में सही नंबरिंग लागू कर सकते हैं।


क्या आप इस बारे में विस्तार से बता सकते हैं? मुझे 2 दिन पहले बैकअप, वर्तमान बैकअप, बैकअप बनाने का उदाहरण देखना पसंद है। और फिर '2 दिन पहले' बैकअप बहाल करने का एक उदाहरण।
डैनियल सोकोलोव्स्की

0

एक बैच फ़ाइल में, enableelayedexpansion के साथ, आपको "उद्धृत करने की आवश्यकता है!" दो ^ ^ के साथ इस तरह

7z u {existing archive.7z} -u- -up0q3r2x2y2z0w2^^!{new differential.7z} {folder or files to archive}

मुझे उस एक को देखने के लिए कुछ समय लगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.