मैंने ssh के साथ एक सिस्टम पर लॉग इन किया है और दोनों सिस्टम पर कोई scp मौजूद नहीं है। Scp प्रोग्राम का उपयोग किए बिना किसी फाइल को कॉपी कैसे करें।
rsync
?
ssh user@remotehost cat /path/to/remote/file > /path/to/local/file
मैंने ssh के साथ एक सिस्टम पर लॉग इन किया है और दोनों सिस्टम पर कोई scp मौजूद नहीं है। Scp प्रोग्राम का उपयोग किए बिना किसी फाइल को कॉपी कैसे करें।
rsync
?
ssh user@remotehost cat /path/to/remote/file > /path/to/local/file
जवाबों:
एक फ़ाइल भेजने के लिए:
cat file | ssh ajw@dogmatix "cat > remote"
या:
ssh ajw@dogmatix "cat > remote" < file
एक फ़ाइल प्राप्त करने के लिए:
ssh ajw@dogmatix "cat remote" > copy
cd /tmp; cat /bin/bash > test; chmod a+x test; diff test /bin/bash; ./test
सब ठीक काम करता है। बाइनरी फ़ाइलों के बारे में स्वाभाविक रूप से "जादू" कुछ भी नहीं है। मेरे उदाहरण में दोनों फाइलों की तुलना समान है और एक ही चेकसम है। यह सच है कि टर्मिनल विंडो से कॉपी और पेस्ट करना कंट्रोल सीक्वेंस और अनरिजर्व्ड कैरेक्टर जैसी चीजों के कारण काम नहीं करेगा, लेकिन इस तरह से पाइप का इस्तेमाल करना कभी टर्मिनल के पास नहीं जाता।
>
एक ही नाम के साथ फाइल करने के लिए?
tar
मिश्रण में जोड़ना होगा । tar cvf - /path/*.jpg | ssh foo@bar.com "tar xvf -"
या कुछ इसी तरह काम करना चाहिए।
pv file | ssh ajw@dogmatix "cat > remote"
आप xxd
कई फ़ाइलों पर कॉपी करने के साथ-साथ उन पर कमांड चलाने और उन्हें निष्पादित करने के लिए कुछ बदसूरत उद्धरण का उपयोग कर सकते हैं:
ssh -t foo@bar.com "
echo $'"$(cat somefile | xxd -ps)"' | xxd -ps -r > "'somefile'"
chmod +x somefile
echo $'"$(cat someotherfile | xxd -ps)"' | xxd -ps -r > "'someotherfile'"
chmod +x someotherfile
./somefile
./someotherfile
"
फ़ाइल को रिमोट से पाइप करने के अलावा cat
, आप फ़ाइलों को स्थानांतरित करने के लिए कुछ SFTP क्लाइंट का उपयोग करने में भी सक्षम हो सकते हैं।
python3 -m http.server
वांछित फ़ाइल के साथ एक ही निर्देशिका में - उसके बाद आप अपने ब्राउज़र के साथ एक फ़ाइल डाउनलोड curl
या कर सकते हैं wget
। ध्यान दें कि उस रनिंग कमांड के साथ वर्तमान निर्देशिका से आपकी सभी फाइलें सार्वजनिक रूप से उपलब्ध रहेंगी, जब तक कि आप Ctrl+ दबाएं C।