2011-12-21 12 views
8

क्या मैं दो अलग-अलग सर्वरों पर फ़ाइलों की तुलना करने के लिए diff कमांड का उपयोग कर सकता हूं? यदि नहीं, तो क्या कोई अन्य विकल्प है?डिफ कमांड - यूनिक्स

उत्तर

16

आप अन्य सर्वर से फ़ाइल कॉपी कर सकते हैं और फिर diff का उपयोग: आप कुछ इस तरह कर सकते हैं।

या ssh दूरस्थ होस्ट से और diff इस तरह एक भी आदेश का उपयोग:

ssh [email protected] "cat /path/to/remote/file" | diff - /path/to/local/file 
4

"-" एसटीडीआईएन के खिलाफ अंतर। scp का उपयोग कर

ssh server 'cat file_to_diff' | diff -u localfile - 
8

यदि आपके एक से अधिक फ़ाइलों की तुलना करें, तो rsync और rdiff है, जो आप सभी फाइलों को कॉपी करने की बैंडविड्थ को बचा देखो।

बीटीडब्ल्यू, यदि आपकी फाइलें बहुत बड़ी हैं, तो कृपया उस जानकारी के साथ अपना प्रश्न अपडेट करें।

0

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

1

मुझे पता है कि यह देर से उत्तर है, लेकिन मैं सचमुच सवाल उठाता हूं, कोई स्थानीय फ़ाइल नहीं और दो दूरस्थ फाइल
bash में (और न केवल) यह प्रक्रिया प्रतिस्थापन[, 2]<(...) उपयोग करना संभव है:

diff <(ssh Server1 'cat /path/to/file1') <(ssh Server2 'cat /path/to/file2') 

प्रक्रिया <(list) एसिंक्रोनस रूप से चलाया जाता है, और इसके इनपुट या आउटपुट के रूप में प्रकट होता है एक फ़ाइल नाम

नोट

  • बेशक अगर आप आप स्थानीय फ़ाइल के बजाय <(...) में से एक डाल सकते हैं केवल एक रिमोट फाइल की जरूरत है।
  • यदि आप इससे आसान

    ssh Server1 'diff /path/to/file1 /path/to/file2' 
    
उपयोग कर सकते हैं दोनों फ़ाइलों को एक ही सर्वर पर कर रहे हैं
संबंधित मुद्दे