Ssh সেশনের মধ্যে scp ব্যবহার না করে কীভাবে একটি ফাইল অনুলিপি করবেন?


55

আমি ssh সহ একটি সিস্টেমে লগইন করেছি এবং উভয় সিস্টেমে কোনও স্ক্রিপ উপস্থিত নেই। Scp প্রোগ্রামটি ব্যবহার না করে কীভাবে কোনও ফাইল অনুলিপি করবেন।


নেটক্যাট (এনসি) উভয় সিস্টেমে উপস্থিত রয়েছে? যদি এটি হয় তবে টিসিপি পোর্টটি সুড়ঙ্গ করতে আপনার ssh সেশনটি ব্যবহার করুন এবং সেই বন্দরে এনসি ব্যবহার করুন।

তোমার কি আছে rsync?
slhck

3
আপনি এটিও করতে পারেন:ssh user@remotehost cat /path/to/remote/file > /path/to/local/file
এনএম

@ এনএম উদ্ধৃতি আবশ্যক (আমার জন্য উবুন্টু সার্ভার)
ইভান ব্ল্যাক

@nm আমার জন্য কাজ করে না - ফাইলটি কলুষিত হয়েছে (আমার ধারণা লগইন বার্তাটি এটি ভেঙে গেছে)।
monnef

উত্তর:


94

একটি ফাইল পাঠাতে:

cat file | ssh ajw@dogmatix "cat > remote"

বা:

ssh ajw@dogmatix "cat > remote" < file

একটি ফাইল প্রাপ্ত করতে:

ssh ajw@dogmatix "cat remote" > copy

20
@ggg এটি মোটেও সত্য নয়। cd /tmp; cat /bin/bash > test; chmod a+x test; diff test /bin/bash; ./testসব ঠিক আছে। বাইনারি ফাইলগুলি সম্পর্কে সহজাত "জাদু" কিছুই নেই। আমার উদাহরণের দুটি ফাইলই অভিন্নের সাথে তুলনা করে এবং একই চেকসাম রয়েছে। এটি সত্য যে টার্মিনাল উইন্ডো থেকে অনুলিপি এবং আটকানো নিয়ন্ত্রণ সিক্যুয়েন্স এবং অপ্রচলিত অক্ষরগুলির মতো জিনিসগুলির কারণে কাজ করবে না, তবে এই জাতীয় পাইপ ব্যবহার করে কখনই টার্মিনালের কাছে যায় না।
ফ্লেক্সো

@ ফ্লেক্সো আমার এর মতো কিছু দরকার, একমাত্র ব্যতিক্রম, আমার ফোল্ডার থেকে সমস্ত জেপিজিতে পাইপ লাগানো দরকার। কীভাবে / স্টোরেজ / এসডিকার্ড 1 / * জেপিজি এবং >একই নামের ফাইলগুলিতে পুনরাবৃত্তি হতে পারে ?
জর্জ প্রোফেনজা

2
@ জর্জিপ্রোফেনজায় আপনার মিশ্রণটি যুক্ত করতে হবে tartar cvf - /path/*.jpg | ssh foo@bar.com "tar xvf -"বা অনুরূপ কিছু কাজ করা উচিত।
ফ্লেক্সো

উপরে জিজিজি এবং ফ্লেক্সো যা বলেছে তার একটি নিদর্শন হ'ল আপনি ssh করতে "-t" বিকল্পটি ব্যবহার করতে পারবেন না।
mjg123

1
নিস! আপনি প্রথম বিড়ালের পরিবর্তে pv file | ssh ajw@dogmatix "cat > remote"
পিভিও


1

আপনি 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
"

আহ, আমার উত্তর স্পষ্টভাবে খুব l33t
অ্যারিক

-1

কোনও রিমোটে ফাইলটি পাইপ করা ছাড়াও cat, আপনি ফাইলগুলি স্থানান্তর করতে কিছু এসএফটিপি ক্লায়েন্ট ব্যবহার করতে সক্ষম হতে পারেন।


+1 তবে এটি লক্ষ করা উচিত যে ওপি স্কিপ এড়ানোর চেষ্টা করছে কারণ এটি সিস্টেমে নেই। এই সীমাবদ্ধতার প্রেক্ষিতে এটি সম্ভবত সম্ভাব্য যে কোনও এফটিপি সার্ভারের প্রাপ্তির শেষের দিকে উপস্থিত থাকা প্রয়োজন যা কপি করা প্রক্রিয়াটি সাধারণত ডিফল্টরূপে সেখানে থাকা সফ্টওয়্যারের উপর নির্ভর করে।
পল সাসিক 16'50 এ 5'15

-1

python3 -m http.serverপছন্দসই ফাইল সহ একই ডিরেক্টরিতে - এর পরে আপনি curlবা wgetআপনার ব্রাউজার দিয়ে একটি ফাইল ডাউনলোড করতে পারেন । মনে রাখবেন যে চলমান কমান্ডের সাথে বর্তমান ডিরেক্টরি থেকে আপনার সমস্ত ফাইল সর্বজনীনভাবে উপলভ্য হবে, যতক্ষণ না আপনি Ctrl+ টিপেন না C

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.