सवाल क्या दूरस्थ "एलएस" करने का कोई तरीका है "एसपीपी" रिमोट कॉपी करता है?


क्या रिमोट "एलएस" करने का कोई तरीका है "एसपीपी" मानक लिनक्स शैल में रिमोट कॉपी करता है?


42
2018-03-02 12:50


मूल


मैं देख सकता हूं कि ऐसा करना अच्छा लगेगा, लेकिन क्यों न केवल एसएसएच और एलएस करते हैं? - SpacemanSpiff
@SpacemanSpiff - तो आप इसे स्क्रिप्ट कर सकते हैं। इस तरह मैं इस पेज पर पहुंचा। - wobbily_col


जवाब:


आप हमेशा ऐसा कर सकते हैं:

ssh user@host ls -l /some/directory

वह होस्ट को एसएसएच करेगा, एलएस चलाएगा, आउटपुट को वापस डंप करेगा और तुरंत डिस्कनेक्ट करेगा।


59
2018-03-02 12:55



... यदि आपके पास असली खोल पहुंच है। कुछ प्रणालियों में एक विशेष खोल होता है जो केवल कुछ स्वीकार करेगा scp तथा rsync कॉल, शायद sftp साथ ही, और यही वह है। - glglgl
आप इसे "आरएलएस" कहने के लिए कैसे उपनाम करेंगे? - Walrus the Cat
@WalrustheCat alias rls="ssh user@host ls -l" अपने खोल को पुनरारंभ करें और rls /some/directory कार्य करना चाहिए। - chishaku
इसके साथ एकमात्र समस्या यह है कि फ़ाइल नहीं मिली एक त्रुटि कोड देता है, जब ऐसा करने का मेरा कारण ठीक है तो मैं ls को कॉल करना चाहता हूं। - Steve Cohen
@SteveCohen का पालन नहीं कर रहा है। क्या आप दूरस्थ एलएस से त्रुटि कोड चाहते हैं? यदि हां, तो $? आदेश को निष्पादित करने के बाद यह सही है। (उदाहरण के लिए यह 2 लौटाता है यदि मैं इसे फ़ाइल पर स्थानीय रूप से या दूरस्थ रूप से चलाता हूं जो नहीं मिला है) - Corey S.


निर्देशिका में सभी फाइलों को सूचीबद्ध करने के लिए:

rsync host.name.com:directory/path/'*'

निर्देशिका / पथ-एसएल जैसे कुछ के लिए

rsync -r host.name.com:directory/path

10
2018-03-04 17:40



यदि मेजबान पर rsync स्थापित नहीं है, तो आपको कुछ मिलता है bash: rsync: command not found। मुझे लगता है कि इसका मतलब है कि यह पृष्ठभूमि में एसएसएच का उपयोग कर रहा है? - mwfearnley
ध्यान दें कि प्रारूप समान है ls -l। मेरे सिस्टम पर, ऐसा लगता है कि फ़ाइलों को सूचीबद्ध करने का विकल्प नहीं है। - Jonathan


हाँ। एसएसएच और एक करो ls:

ssh host ls /path

आप इसे अधिक लचीला होने के लिए आसानी से स्क्रिप्ट कर सकते हैं, या होस्ट का उपयोग कर सकते हैं: पथ वाक्यविन्यास scp का उपयोग करता है।


3
2018-03-02 12:54





मुझे लगता है कि इसका सबसे लगातार उपयोग एलएस परिणाम प्राप्त करने के लिए है, सभी अनुमतियों और तिथियों के बिना फ़ाइलों की एक साधारण सूची और इस तरह, और इसे स्थानीय फ़ाइल में रखें।

{ ssh me@host.com "cd /dir/of/interest; ls -1f *.txt;" } > /home/me/listoffiles.txt

आप उद्धरण के भीतर जो कुछ भी चाहते हैं उसे चला सकते हैं। सभी आउटपुट आपकी स्थानीय टेक्स्ट फ़ाइल में समाप्त होते हैं। या यदि आप सर्वर पर एक बड़ी गंदा स्क्रिप्ट चलाने और इसके सभी आउटपुट को कैप्चर करना चाहते हैं, यहां तक ​​कि त्रुटियां भी:

{ ssh me@host.com <script.remote.sh } > /home/me/output.log 2>/home/me/output.err

1
2018-06-06 20:21



दूसरी कोड लाइन में, { } जरूरत नहीं है - glglgl


Google के माध्यम से इस प्रश्न पर आने के लिए क्योंकि वे दूरस्थ फ़ाइलों को सूचीबद्ध करने का एक तरीका ढूंढ रहे हैं लेकिन एसएसएच (बैकअप सर्वर के लिए सामान्य मामला) के माध्यम से रिमोट सर्वर तक नहीं पहुंच सकते हैं, तो आप 'sftp' का उपयोग कर सकते हैं।

उदाहरण:

sftp username@hostname.xyz
ls
cd somedir
exit

एक विशिष्ट दूरस्थ निर्देशिका में एक इंटरैक्टिव सत्र शुरू करें:

sftp [user@]host[:dir]

1
2018-06-02 21:44