हालंकि लिनक्स की गिनती सुरक्षिततम् प्रचालन प्रणालियों में होती है, और निरंतर काम करने के ध्येय से इसकी संरचना की गई है, पर फिर भी मसला खो सकता है. प्रायः प्रयोगकर्ता की त्रुटी और कभी-कभार यंत्र में खराबी जैसे कि विद्युत अवरोध के कारण मसला खो सकता है. अतः अपने संवेदनशील व आवश्यक मसले की प्रतिलिपि बना लेने में हमेशा समझदारी है.
प्रायः हम मसले को एकत्र कर एक ही पुरालेखित फ़ाइल में बॅकप लेंगे जिसे हम तत्पश्चात संक्षेपीकरण करेंगे. यह पुरालेखन की प्रक्रिया फ़ाइलों को जोड़ कर उनके बीच में स्थित रिक्त स्थानों को निकाल लेती है. लिनक्स में सामान्यतः tar निर्देश द्वारा किया जाता है. tar की संरचना मूल रूप से टेप पर बॅकप के लिए की गई थी परंतु इसका प्रयोग पुरालेखनों के निर्माण के लिए भी किया जा सकता है जिन्हें हम टारबॉल कहते हैं.
tar के कईं विकल्पों में अवश्यक निम्नलिखित हैं:
-v: विस्तृत जानकारी के लिए
-t: टारबॉल के अवयवों का निरीक्षण
-x: मूल फ़ाइलों की पुनर्स्थापना
-c: पुरालेखन का निर्माण
-f पुरालेखन-उपकरण : पुरालेखन-उपकरण को टारबॉल का स्रोत/गंतव्य बनाएं, अन्यथा मूल स्थितिवश, पाया जाने वाला प्रथम टेप उपकरण पुरालेखन-उपकरण हो जाता है (समान्यतः /dev/st0 अथवा इसी तरह का)
-j: संक्षेपीकरण के लिए bzip2 निर्देश का उपयोग, देखिये भाग 9.1.1.2
प्रायः "-" को tar के विकल्पों का उपयोग करते समय छोड़ दिया जाता है, जैसा कि आप निम्न उदाहरणों में देखेंगे.
![]() | तालमेल रखने के लिए ग्नू tar का प्रयोग करें. |
|---|---|
ऐसा संभव है कि अन्य, मालिकाना tarनिर्देश द्वारा किसी एक यंत्र पर निर्मित पुरालेखन का तालमेल किसी दूसरे, मालिकाना यंत्र वाले tarनिर्देश से न हो. इस से अनेक दिक्कतें पेश आ सकती हैं जैसे कि उस पुरालेखन कि पुनर्स्थापना के लिए वह यंत्र आवश्यक हो जिसका अस्तित्व ही न हो. प्रत्येक यंत्र पर ग्नू tar का उपयोग आपके यंत्र संचालक को इन समस्याओं से बचायेगा. लिनक्स हमेशा ग्नू tar प्रयोग करता है. अन्य यन्त्रों का उपयोग करते समय, tar का उद्धहरण जानने के लिए यह निर्देश जारी करें: tar --helpयदि आपको कहीं GNU शब्द न दिखे तो अपने यंत्र संचालक से सम्पर्क करें. |
निम्न उदाहरण में एक पुरालेखन का निर्माण तथा उसकी पुनर्स्थापना की जाती है.
gaby:~>ls images/ me+tux.jpg nimf.jpg gaby:~>tar cvf images-in-a-dir.tar images/ images/ images/nimf.jpg images/me+tux.jpg gaby:~>cd images gaby:~/images>tar cvf images-without-a-dir.tar *.jpg me+tux.jpg nimf.jpg gaby:~/images>cd gaby:~>ls */*.tar images/images-without-a-dir.tar gaby:~>ls *.tar images-in-a-dir.tar gaby:~>tar xvf images-in-a-dir.tar images/ images/nimf.jpg images/me+tux.jpg gaby:~>tar tvf images/images-without-dir.tar -rw-r--r-- gaby/gaby 42888 1999-06-30 20:52:25 me+tux.jpg -rw-r--r-- gaby/gaby 7578 2000-01-26 12:58:46 nimf.jpg gaby:~>tar xvf images/images-without-a-dir.tar me+tux.jpg nimf.jpg gaby:~>ls *.jpg me+tux.jpg nimf.jpg |
इस उदाहरण में पुरालेखित निर्देशिकाओं तथा पुरालेखित फ़ाइलों में अंतर को प्रदर्शित किया गया है. मेरी राय में आप केवल निर्देशिकाओं को ही पुरालेखित करें ताकि पुरालेख को पुनर्स्थापित करते समय फ़ाइलें बिखरें नहीं (जो कि किसी अन्य यंत्र पर हो सकता है, जहां आपको ज्ञात न हो कौन सी फ़ाइलें पहले से ही वहां थीं और कौन सी पुरालेखन से पुनर्स्थापित की गईं).
जब टेप ड्राईव को आपके यंत्र से जोड़ कर आपके यंत्र संचालक द्वार स्थापित किया जाता है, तब जिन फ़ाइलों के अंत में .tarहो उन्हें पुरालेखन-उपकरण के द्वारा बदल दिया जाता है, उदाहरण के लिए:
tar cvf /dev/tape mail/
mailनामक् निर्देशिका तथा उसकी अवयव फ़ाइलों को एक फ़ाइल में संक्षेपीकृत कर उसे उसी क्षण टेप पर लिख दिया जाता है. साथ ही अवयव सूची प्रदर्शित की जाती है क्योंकि हमने विस्तृत जानकारी के लिए -v विकल्प का प्रयोग किया.
tar निर्देश द्वारा वृद्धियात्मक बॅकप (केवल परिवर्तित मसले का बॅकप) लिया जा सकता है. विकल्प -N के उपयोग से. इस विकल्प द्वारा, एक समय नियित किया जा सकता है, जिसे tarप्रत्येक नियित फ़ाइल के परिवर्तन के समय के साथ मिलाता है. यदि फ़ाइल का परिवर्तन समय उपरोक्त समय के उपरांत है, तो उसे बॅकप में सम्मिलित किया जायेगा. निम्न उदाहरण पिछ्ले पुरालेखन पर अंकित समय का उपयोग करता है. पहले प्राथमिक पुरालेखन का निर्माण किया जाता है और उस पर अंकित समय दिखाया जाता है. फिर, एक नई फ़ाइल बनाई जाती है, जिसका बॅकप लिया जाता है, जिसमे केवल यह नई फ़ाइल सम्मिलित होती है:
jimmy:~> tar cvpf /var/tmp/javaproggies.tar java/*.java java/btw.java java/error.java java/hello.java java/income2.java java/income.java java/inputdevice.java java/input.java java/master.java java/method1.java java/mood.java java/moodywaitress.java java/test3.java java/TestOne.java java/TestTwo.java java/Vehicle.java jimmy:~> ls -l /var/tmp/javaproggies.tar -rw-rw-r-- 1 jimmy jimmy 10240 Jan 21 11:58 /var/tmp/javaproggies.tar jimmy:~> touch java/newprog.java jimmy:~> tar -N /var/tmp/javaproggies.tar \ -cvp /var/tmp/incremental1-javaproggies.tar java/*.java 2> /dev/null java/newprog.java jimmy:~> cd /var/tmp/ jimmy:~> tar xvf incremental1-javaproggies.tar java/newprog.java |
मानक त्रुटियों का पुनर्निर्देशन /dev/null की ओर किया जाता है. ऐसा न किया जाये तो tar प्रत्येक अपरिवर्तित फ़ाइल के लिये संदेश देता है, कि वह फ़ाइल नहीं सम्मिलित की जा रही है.
इस कार्यप्रणाली में हानि यह है कि फ़ाइलों पर अंकित समय को देखा जाता है. मान लीजिये आप पिछ्ले पुरालेख को आपकि बॅकप निर्देशिका में अधिभारित करें, और उस पुरालेखन में आपकी दो साल पुरानि फ़ाइलें सम्मिलित हों. फ़ाइलों पर अंकित समय को पिछ्ले पुरालेख से मिलाते समय, आपकी नई फ़ाइलें tarको पुरानी प्रतीत होंगी, और -Nविकल्प द्वारा निर्मित वृद्धियात्मक बॅकप में सम्मिलित नहीं की जायेंगी.
एक बेहतर चुनाव होगा -gविकल्प, जो बॅकप में सम्मिलित फ़ाइलों की सूची बनाता है. वृद्धियात्मक बॅकप लेते समय, फ़ाइलों को इस सूची से मिलाया जाता है. यह इस तरह काम करता है:
jimmy:~> tar cvpf work-20030121.tar -g snapshot-20030121 work/ work/ work/file1 work/file2 work/file3 jimmy:~> file snapshot-20030121 snapshot-20030121: ASCII text |
अगले दिन, jimmy नामक् प्रयोगकर्ता file3 नामक् फ़ाइल पर और कुछ काम करता है और file4 नामक् फ़ाइल बनाता है. दिन ढलने पर, एक नया बॅकप बनाता है:
jimmy:~> tar cvpf work-20030122.tar -g snapshot-20030121 work/ work/ work/file3 work/file4 |
यह थे कुछ सहज उदाहरण, पर आप इनका उपयोग cronमें भी कर सकते हैं (देखें विभाग 4.4.4), जो उदाहरण के लिए, एक साप्ताहिक और एक दैनिक स्नॅपशॉट फ़ाइल का विनिर्देशन करता है. इन स्नॅपशॉट फ़ाइलों को संपूर्ण बॅकप लेते समय बदल लेना चाहिये.
अधिक जानकारी प्राप्त हो सकती है tarके प्रलेखन में.
zip औज़ारों से मसला, टारबॉल भी, संक्षेपीकृत किया जा सकता है. gzip निर्देश फ़ाइल के नाम के आगे .gz लगा देता है और मूल फ़ाइल को हटा देता है.
jimmy:~>ls -la | grep tar -rw-rw-r-- 1 jimmy jimmy 61440 Jun 6 14:08 images-without-dir.tar jimmy:~>gzip images-without-dir.tar jimmy:~>ls -la images-without-dir.tar.gz -rw-rw-r-- 1 jimmy jimmy 50562 Jun 6 14:08 images-without-dir.tar.gz |
gzip की गई फ़ाइलों को पुनर्स्थापित करने के लिए -d विकल्प क प्रयोग करें.
bzip2 भी इसी प्रकार काम करता है, परंतु बेहतर संक्षेपीकरण तकनीक क उपयोग करता है, अतः तुलना में लघु फ़ाइलें बनाता है. अधिक जानकारी के लिये देखिये bzip2 info पृष्ठ.
लिनक्स तंत्र प्रयः gzipकी गई टारबाॅल के रूप में वित्रित किए जाते हैं. इन्हें पुनर्स्थापित करने के बाद आप README नामक् फ़ाइल को खोजें और पढ़ लें. सामान्यतः, इसमें तंत्र को प्रस्थापित करने के लिए निर्देश होंगे.
ग्नू tarनिर्देश gzipकी गई फ़ाइलों को पहचानता है. निर्देश
tar zxvf file.tar.gzका उपयोग करें.
.tar.gzअथवा .tgz फ़ाइलों को पुनर्स्थापित करने के लिए.
tar jxvf file.tar.bz2
निर्देश का उपयोग करें उन tar पुरालेखनों को पुनर्स्थापित करने के लिए जिन्हें bzip2निर्देश द्वारा संक्षेपीकृत किया गया हो.
ग्नू परियोजना ने हमें प्रदान किया है jarऔज़ार, जावा पुरालेखों के निर्माण के लिए. यह एक जावा ऐप्लिकेशन है जो अनेक फ़ाइलों को एकत्र कर एक JAR पुरालेख बनाता है. एक सामान्य उपयोग का पुरालेखन तंत्र, जो कि ZLIB तथा ZLIB संक्षेपीकरण प्रणाली पर आधारित है, होने के अलाव यह प्राथमिक रूप से jar जावा कूट, ऐप्लेट और ऐप्लिकेशनों को एक ही फ़ाइल में सम्मिलित करने के ध्येय से संरचित किया गया है. जब एक जावा ऐप्लिकेशन के अवयवों को एक ही पुरालेख में एकत्र किया जाये तो उसे शीघ्रता से अधिभारित किया जा सकता है.
tar निर्देश के विपरीत, jar निर्देश मूल स्थितिवश, संक्षेपीकरण करता है, अन्य औज़ारों से स्वतंत्र - क्योंकि मूल रूप से यह zipनिर्देश का जावा अवतार है. साथ ही, यह पुरालेख के अन्य अवयवों को पुरालेखक के द्वारा हस्ताक्षरित भी करने देता है, जिससे पुरालेख के मूल को प्रमाणित किया जा सके.
इसका उपयोग tar निर्देश से मिलता जुलता है, अन्य अंतरों के लिये देखें info jar.
![]() | tar, jar व कड़ीबद्ध फ़ाइलें |
|---|---|
ध्यान देने की एक बात जो दस्तावेज़ों से नहीं प्रकट होती, है कि jar कड़ीबद्ध फ़ाइलों का अनुसरण करता है. कड़ीबद्ध फ़ाइलें जिन असल फ़ाइलों की ओर इशारा करती हैं, वे फ़ाइलें भी पुरालेख में सम्मिलित कर दी जाती हैं. पर tar में मूल स्थितिवश, केवल कड़ीबद्ध फ़ाइल को ही बॅकप किया जाता है, असल फ़ाइल को नहीं. अगर विपरीत बर्ताव चाहें तो -h नामक् tarविकल्प का प्रयोग करें. |
अपने मसले का स्थानांतरण अन्य यंत्र पर करना बॅकप का एक सरल व सटीक उपाय है. scp, ftp व कईं अन्य पर अधिक जानकारी के लिए देखें अध्याय 10, संचार.
अगले विभाग में हम स्थानीय बॅकप उपकरणों पर चर्चा करेंगे.