দূরবর্তী অনুলিপিটি "স্কিপ" এর মতো অনেক দূরবর্তী "এলএস" করার কি কোনও উপায় আছে?


55

স্ট্যান্ডার্ড লিনাক্স শেলটিতে দূরবর্তী অনুলিপিটি "স্কিপ" এর মতো অনেক দূরবর্তী "এলএস" করার কি কোনও উপায় আছে?


আমি এটি দেখতে ভাল লাগবে দেখতে পাচ্ছি, তবে কেন কেবল এসএসএইচ প্রবেশ করে এবং একটি এলএস না করে?
স্পেসম্যানস্পিফ

@ স্পেসিম্যানস্পিফ - যাতে আপনি এটি স্ক্রিপ্ট করতে পারেন। আমি এই পৃষ্ঠায় পেয়েছিলাম কিভাবে।
wobbily_col ২

উত্তর:


75

আপনি সর্বদা এটি করতে পারেন:

ssh user@host ls -l /some/directory

এটি হোস্টের কাছে এসএসএইচ করবে, এলএস চালাবে, আউটপুটটি আপনার কাছে ফিরিয়ে দেবে এবং ততক্ষণে সংযোগ বিচ্ছিন্ন হয়ে যাবে।


2
... যদি আপনার আসল শেল অ্যাক্সেস থাকে। কিছু সিস্টেমে একটি বিশেষ শেল থাকে যা কেবলমাত্র নির্দিষ্ট scpএবং rsyncকলগুলি গ্রহণ করবে , সম্ভবত sftpপাশাপাশি, এবং এটিই।
glglgl

"আরএলএস" বললে আপনি কীভাবে এটির নাম রাখবেন?
ওয়ালরাস বিড়াল

2
@ ওয়ালাস্টথগেট alias rls="ssh user@host ls -l"আপনার শেলটি পুনরায় চালু করুন এবং rls /some/directoryকাজ করা উচিত।
চিশকু

এটির সাথে একমাত্র সমস্যাটি হ'ল ফাইলটি খুঁজে পাওয়া যায় না এমন একটি ত্রুটি কোড দেয়, যখন আমার এটি করার কারণটি হ'ল আমি কেন এলএস করতে চাই।
স্টিভ কোহেন

অনুসরণ করছেন আপনি কি দূরবর্তী এলএস থেকে ত্রুটি কোডটি চান? যদি তাই হয়, তাই না? আপনি কমান্ডটি কার্যকর করার পরে এটি ধারণ করে। (যেমন আমি এটি [স্থানীয়ভাবে বা দূরবর্তীভাবে] কোনও ফাইল খুঁজে না পাই যা 2 টি পাওয়া যায়)
কোরি এস।

11

ডিরেক্টরিতে সমস্ত ফাইল তালিকাভুক্ত করতে:

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

ডিরেক্টরি / পথ-এলএল সন্ধানের মতো কোনও কিছুর জন্য

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

হোস্টে যদি আরএসসিএন ইনস্টল না করা থাকে তবে আপনি এর মতো কিছু পান bash: rsync: command not found। আমি অনুমান করি যে এটি ব্যাকগ্রাউন্ডে এসএসএইচ ব্যবহার করছে?
mwfearnley

ফর্ম্যাটটি অনুরূপ নোট করুন ls -l। আমার সিস্টেমে দেখে মনে হচ্ছে না যে কেবলমাত্র ফাইলগুলি তালিকাভুক্ত করার বিকল্প আছে।
জোনাথন

6

এই প্রশ্নের জন্য গুগলের মাধ্যমে সমস্তই আসছেন কারণ তারা দূরবর্তী ফাইলগুলি তালিকাভুক্ত করার উপায় খুঁজছেন তবে ssh (ব্যাকআপ সার্ভারগুলির জন্য সাধারণ ক্ষেত্রে) মাধ্যমে আপনি 'sftp' ব্যবহার করতে পারবেন রিমোট সার্ভারটি অ্যাক্সেস করতে পারবেন না।

উদাহরণ:

sftp username@hostname.xyz
ls
cd somedir
exit

একটি নির্দিষ্ট দূরবর্তী ডিরেক্টরিতে একটি ইন্টারেক্টিভ সেশন শুরু করুন:

sftp [user@]host[:dir]

3

হ্যাঁ. এসএসএইচ এবং একটি করুন ls:

ssh host ls /path

আপনি এটি আরও নমনীয় হতে সহজে স্ক্রিপ্ট করতে পারেন বা হোস্টটি ব্যবহার করতে পারেন: পাথ সিনট্যাক্স scpব্যবহার করে।


1

আমি এর সবচেয়ে ঘন ঘন ব্যবহারটি ls ফলাফল, সমস্ত অনুমতি এবং তারিখ এবং এগুলি ছাড়া ফাইলগুলির একটি সহজ তালিকা পেতে এবং এটি একটি স্থানীয় ফাইলে রাখা find

{ 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
২ য় কোড লাইনে, এগুলির { }দরকার নেই।
glglgl
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.