गज़िप - पुनर्निर्देशन या पाइपिंग?


10

मैं dd का उपयोग करके एक बाहरी USB डिस्क में एक बड़ी (750GB) डिस्क का बैकअप ले लूंगा।
क्या मुझे पुनर्निर्देशन या पाइपिंग का उपयोग करना चाहिए? कौन सा अधिक कुशल है? या अंतर है?

इसके अलावा, सबसे अच्छा ब्लॉक आकार क्या है? USB यहाँ अड़चन होने की संभावना है।

dd if=/dev/sda bs=1M | gzip -c > /mnt/sdb1/backups/disk.img.gz

gzip -dc /mnt/sdb1/backups/disk.img.gz | dd of=/dev/sda bs=1M

बनाम

dd if=/dev/sda bs=1M | gzip -c | dd of=/mnt/sdb1/backups/disk.img.gz

dd if=/mnt/sdb1/backups/disk.img.gz | gzip -dc | dd of=/dev/sda bs=1M

धन्यवाद।


2
मैं फ़ाइल सिस्टम का बैकअप लेने की कोशिश करूंगा, न कि कच्ची डिस्क छवियों की। और मापदंडों को ट्यून करने के लिए, आपको बेंचमार्क करना होगा।

ddपुरातन है (किसी भी अन्य उपकरण धन्यवाद के साथ दूर करता है bs=और count=, जैसे ddrescue), और आपके मामले में भी बहुत अधिक व्यर्थ है। बस इसे पाइप में gzip -c </dev/sda >disk.img.gz& gzip -cd disk.img.gz >/dev/sda

या rsync के साथ करते हैं। बस मापदंडों के साथ कमांड का निर्माण करें, और यह आपको सबसे कुशल तरीके से सब कुछ करेगा जो यह सोचता है।
वकुफो

दूसरी लिस्टिंग के दूसरे कमांड में, क्या dd if=.../disk.img.gz |करना है? जहाँ तक मैं समझता हूँ, gzip -dc(= zcat) stdinफ़ाइल तर्क होने पर इसका ध्यान नहीं रखता ।
sr_

मुझे नहीं लगता कि लिनक्स केवल फ़ाइल संरचना की प्रतिलिपि बनाकर विंडोज प्रतिष्ठानों को मज़बूती से पुन: पेश कर सकता है। इसलिए, जैसे बिट-लिपि की आवश्यकता है ddddrescueअधिक मजबूत लग रहा है तो सादे dd। आप GNU का उपयोग करेंगे ddrescueया dd_rescue? डाउनलोड करने के लिए एक अच्छी लाइव सीडी क्या है?
mcu

जवाबों:


3

पाइपिंग में एक और प्रक्रिया और एक अधिक उपयोगकर्ता-भूमि की प्रतिलिपि शामिल है, इसलिए इसे पुनर्निर्देशन का उपयोग करने के लिए अधिक कुशल होना चाहिए

लेकिन मुझे लगता है कि आजकल के हार्डवेयर और सॉफ्टवेयर कैशिंग प्रणाली में, इससे कोई वास्तविक अंतर नहीं होना चाहिए। हो सकता है कि आपके पास बेहतर परिणाम हो bs=4kया उपयोग कर रहे हों bs=64k, क्योंकि यह linux के तहत पाइप की सीमा है । विभिन्न बी एस मापदंडों के बारे में अधिक विस्तार के लिए इस प्रश्न को देखें ।


9

आपको उपयोग करने ddया पाइप करने की आवश्यकता नहीं है ।

</dev/sda gzip >/mnt/sdb1/backups/disk.img.gz
</mnt/sdb1/backups/disk.img.gz gunzip >/dev/sda

मैंने एक बार एक बेंचमार्क बनाया और अलग-अलग डिस्क के बीच एक सीधी कॉपी के ddमुकाबले धीमी गति से उपयोग किया cat। मुझे उम्मीद है कि पाइप ddइस मामले में भी किसी भी समाधान को धीमा कर देगा।


यही कारण है कि है पुनर्निर्देशन उपयोग का एक उदाहरण।
Psusi

@ अपुसी गाह! मेरा मतलब था "dd या पाइपिंग" लिखना। धन्यवाद।
गिल्स एसओ- बुराई को रोकना '

क्या pvइन आदेशों में गठबंधन करने का कोई तरीका है ?
यार्न

2
@ यारों ज़रूर: gzipद्वारा प्रतिस्थापित pv | gzipऔर gzip -dद्वाराgzip -d | gv
गाइल्स '

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