দুটি লিনাক্স কম্পিউটারের মধ্যে ল্যানের মাধ্যমে ফাইল স্থানান্তর করার সর্বোত্তম উপায়


77

আমি দুটি লিনাক্স কম্পিউটারের মধ্যে ফাইল (একটি সঙ্গীত ফোল্ডার) স্থানান্তর করতে চাই। এটি করার সর্বোত্তম উপায় অনুসন্ধান করার পরে, আমি দেখেছি যে এটি করার অনেকগুলি উপায় রয়েছে। আমি জানি এটি অনেক জায়গায় , সর্বত্র এবং সর্বদা জিজ্ঞাসা করা হয়েছিল । এর সাথে মুখ্য সমস্যাটি হ'ল লিনাক্স সূচনাপ্রাপ্তদের (এমনকি কিছু প্যারামিটারের উপর নির্ভর করে) 2011 এ এই কাজটি করার সর্বোত্তম উপায় সম্পর্কে কোনও পরিষ্কার, সাম্প্রতিক sensক্যমত্যও নেই।

সুতরাং স্ট্যাক এক্সচেঞ্জ ওয়েবসাইটগুলির অনুভূতিতে, আমি এটি আমার বিশেষ পরিস্থিতির সাথে সম্পর্কিত না হওয়ার জন্য চাই, তবে অন্যদের কাছে আরও একটি গাইড এবং স্থানীয় নেটওয়ার্কে দুটি লিনাক্স কম্পিউটারের মধ্যে কীভাবে ফাইল স্থানান্তর করতে হবে সে সম্পর্কে আরও একটি গাইড নির্দেশিকা। আমি মনে করি একটি উইকি অনেকের জন্য কার্যকর হবে।

আমি এখন পর্যন্ত যা পেয়েছি তা এখানে:

  • SSH
  • sshfs
  • scp কমান্ড
  • SFTP
  • NFS
  • সাম্বা
  • দাতা

সবচেয়ে সহজ কি? সবচেয়ে নমনীয়? সবচেয়ে সহজ? সবচেয়ে ভালো সমাধান? প্রতিটি আগপাছ কি হয়? অন্যান্য (আরও ভাল) বিকল্প আছে? সর্বোত্তম পদ্ধতি বাছাই করার প্যারামিটারগুলি কী কী (সমাধান ফাইলগুলির সংখ্যার উপর নির্ভর করে, ফাইলাইজ করা যায়, স্বাচ্ছন্দতা বনাম নমনীয়তা, ...)?


2
কেউ কি ব্যাখ্যা করতে পারে যে এই সমস্তগুলিতে আরএসসিএন খেলতে আসে?
কনারাক

জোনাল্লার্ড, দয়া করে প্রশ্নের উত্তরগুলি যুক্ত করবেন না ( এটি করার জন্য সত্যিকার অর্থে কোনও অর্থ নেই, তাই না?) - যদি আপনার কিছু উত্তরের অতিরিক্ত তথ্যের প্রয়োজন মনে হয় তবে আপনি সেগুলিতে সম্পাদনার পরামর্শ দিতে পারেন বা নিজের উত্তর তৈরি করতে পারেন যা সব কিছুর সংক্ষিপ্তসার!

উত্তর:


65

একটি লিনাক্স পরিবেশে, সুরক্ষা এবং ব্যবহারের সহজতা উভয়ের জন্য, ssh সবচেয়ে ভাল উপায়। আপনার তালিকা অনুসারে এসএসএইচ, এসএসএইচএফএস, এসসিপি, এবং এসএফটিপি হ'ল এসএসএইচ প্রোটোকলের শীর্ষে নির্মিত বিভিন্ন ভিন্ন পরিষেবা। এসসিপি ব্যবহার করা খুব সহজ, এটি সিপির মতোই কাজ করে তবে আপনি ব্যবহারকারীর এবং মেশিনের নাম সরবরাহ করতে পারেন। সুতরাং, আমরা একটি সিপি পছন্দ করতে পারি cp ~/music/ ~/newmusic/, তবে আমরা scp ~/music/ user@host:~/newmusicহোস্ট নামের কম্পিউটারে এটি প্রেরণে খুব সহজেই করতে পারি । এটাই - আমাদের কিছু সেট আপ করার দরকার নেই। আপনার কাছে শংসাপত্র বা অন্য কোনও প্রমাণীকরণ সেটআপ না থাকলে আপনাকে অবশ্যই অন্য মেশিনে অ্যাকাউন্টের পাসওয়ার্ডের জন্য অনুরোধ জানানো হবে (অবশ্যই স্ক্রিপগুলি সেটিংগুলি অবশ্যই এসএসএসের সাথে ভাগ করে দেয়)।

এসএফটিপি এমন একটি সরঞ্জাম যা দূরবর্তী ফাইল সিস্টেমে প্রচুর অপারেশন করা সহজ করে তোলে - এটি ঠিক এফটিপির মতোই কাজ করে তবে এটি এসএসএইচ এর মাধ্যমে চলে তাই এটি সুরক্ষিত এবং কেবল একটি এসএসএইচ সার্ভারের প্রয়োজন। man sftpকীভাবে এটি ব্যবহার করবেন সে সম্পর্কে আপনাকে সমস্ত কিছু বলবে। আমি কেবল দুটি মেশিনের মধ্যে ফোল্ডার সরাতে এসএফটিপি ব্যবহার করি না, যখন আপনার আরও অনেক অপারেশন করতে হয় তখন এটি আরও কার্যকর হয়, যেমন আপনি অন্য কম্পিউটারে ফাইলগুলি পুনরায় সাজিয়ে নিচ্ছেন।

এসএসএফএফস কেবল একটি ফাইল সিস্টেমে এসএফটিপি প্রসারিত করে: এটি আপনাকে আপনার ফাইল সিস্টেমে একটি ভার্চুয়াল হোস্ট মাউন্ট করার অনুমতি দেয়, যাতে নেটওয়ার্ক স্টাফগুলি সম্পূর্ণ স্বচ্ছভাবে ঘটে। এসএসএইচএফস কেবল এক-সময় ফাইল স্থানান্তর নয়, আধা-স্থায়ী সেটআপগুলির জন্য। সেট আপ পেতে আরও কিছু প্রচেষ্টা দরকার, যা আপনি প্রকল্পের ওয়েবসাইটে পড়তে পারেন ।

যদি আপনাকে মিশ্র-ওএস পরিবেশে কাজ করার দরকার হয় তবে সাম্বা আপনার পরবর্তী সেরা বাজি হয়ে উঠবে। উইন্ডোজ এবং ওএস এক্স সাম্বাকে সম্পূর্ণ স্বয়ংক্রিয়ভাবে সমর্থন করে এবং লিনাক্স পাশাপাশি করে তোলে যদিও এটি ব্যবহারের ক্ষেত্রে কখনও কখনও রুক্ষ হয়।


3
ঠিক ঠিক আমি যে ধরণের উত্তরটির জন্য চাইছিলাম: সম্পূর্ণ, সম্পূর্ণ, বিস্তারিত, বিন্দুতে।
জোনাল্লার্ড

2
যদিও একটি জিনিস, scpকাজ করার জন্য, আমাদের কি অন্য ধরণের এসএসএস সার্ভার, শ্রোতা বা কিছু আনলক করা দরকার? আমি "সংযোগ অস্বীকার" ত্রুটি পেয়েছি।
jonallard

2
scp ssh ব্যবহার করে, সুতরাং এসএসএইচ কাজ করলে এটি কাজ করবে। এর অর্থ অবশ্যই, আপনার একটি এসএসএইচ সার্ভার চলমান থাকা দরকার (প্রতিটি লিনাক্স ডিস্ট্রোতে আমি অবগত রয়েছি) এবং একটি সংযোগ অবশ্যই সম্ভব (ফায়ারওয়ালস, নাট, ইত্যাদি অবশ্যই উপযুক্ত ব্যতিক্রম থাকতে পারে)।
jcrawfordor

8
স্পষ্টতই openssh-serverউবুন্টু নাট্টিতে ইনস্টল করতে হবে।
জোনাল্লার্ড

3
নোট যে sshএনক্রিপশন ব্যবহার করে, যা কিছু অতিরিক্ত ওভারহেডের কারণ হবে। যদি জড়িত কম্পিউটারগুলির সিপিইউগুলি মোটামুটি ধীরে ধীরে থাকে তবে এটি একটি পার্থক্য করতে পারে। যে ক্ষেত্রে netcatবা অনুরূপ (Caspar এর উত্তর দেখুন) preferrable হতে পারে। অবশ্যই যদি আপনার প্রকৃতপক্ষে এনক্রিপশন প্রয়োজন না হয় (সুরক্ষিত ল্যানে)।

59

সুরক্ষার বিষয়টি নেটকাট + টর নয় এমন ক্ষেত্রে আমার ব্যক্তিগত পছন্দ :

ডিরেক্টরি পাঠানোর জন্য সিডি, ডিরেক্টরিটির ভিতরে যা আপনি কম্পিউটারে প্রেরণ করতে চান এবং কী করতে চান:

tar -cz . | nc -q 10 -l -p 45454

কম্পিউটারে সামগ্রীগুলি প্রাপ্ত করার জন্য, সিডি আপনি যেখানে সামগ্রীগুলি প্রদর্শিত হতে চান এবং করতে চান:

nc -w 10 $REMOTE_HOST 45454 | tar -xz

$REMOTE_HOSTকম্পিউটার পাঠানোর জন্য আইপি / হোস্টনাম দিয়ে প্রতিস্থাপন করুন । পরিবর্তে আপনি একটি ভিন্ন বন্দর ব্যবহার করতে পারেন 45454

এখানে আসলে যা ঘটছে তা হ'ল 'প্রাপ্তি' কম্পিউটারটি 45454 বন্দরটিতে প্রেরণকারী কম্পিউটারের সাথে সংযোগ স্থাপন করছে এবং ডিরেক্টরিটির ট্যার্ড এবং জিজিপ'ড বিষয়বস্তু গ্রহণ করছে এবং এটিকে বের করার জন্য এটি সরাসরি টার (এবং জিজিপ) এ চলে যাচ্ছে বর্তমান ডিরেক্টরি

দ্রুত উদাহরণ (দূরবর্তী হোস্ট হিসাবে লোকালহোস্ট ব্যবহার করে)

কম্পিউটার ঘ

caspar@jumpy:~/nctest/a/mydir$ ls
file_a.txt  file_b.log
caspar@jumpy:~/nctest/a/mydir$ tar -cz . | nc -q 10 -l -p 45454

কম্পিউটার 2

caspar@jumpy:~/nctest/b$ ls
caspar@jumpy:~/nctest/b$ nc -w 10 localhost 45454 | tar -xz
caspar@jumpy:~/nctest/b$ ls
file_a.txt  file_b.log

কিন্ডা আমাকে পুরানো দিনের উপন্যাসের আইপিক্স পরিষেবাগুলি থেকে সেননেট এবং পুনর্নির্মাণের স্মরণ করিয়ে দেয় ...
Sum1stolemyname

4
## নেটক্যাট + বিজিপ 2 ধীর সংযোগে কিছুটা দ্রুত হতে পারে ## সার্ভার প্রেরণ করা হচ্ছে # ক্যাট ফাইল.টেক্সট | bzip2 -c | এনসি-এল 1234 ## সার্ভার প্রাপ্ত হচ্ছে # এনসি $ প্রেরণ_আইপ 1234 | Bzip2 -cd> file.txt যাও
shantanuo

@ ক্যাস্পার: bzip2 বা lzma সংক্ষেপণের পরামর্শ দেওয়ার জন্য এই উত্তরটি সম্পাদনা সম্পর্কে কীভাবে?
einpoklum

4
-qবিকল্প ইঙ্গিত করে যে আপনি ব্যবহার করছেন openbsd-netcat , যখন GNU-netcat এছাড়াও খুবই সাধারণ (ইন ডিফল্ট আর্চ লিনাক্স )। Gnu-netcat এর বাক্যবিন্যাস অন্তর্ভুক্ত করার জন্য আপনি নিজের উত্তরটি বাড়িয়ে দিতে পারেন ?
সেবাস্তিয়ান

1
বর্তমান এনসি ম্যান -l বিকল্প সম্পর্কে বলেছেন: "-p, -s, অথবা -z বিকল্পের সাথে একযোগে এই বিকল্পটি ব্যবহার করা একটি ত্রুটি", তবে আশ্চর্যের বিষয় এটি ব্যবহার করার সময় এটি ত্রুটি ছুঁড়ে না। আমি মনে করি 'এনসি-এল 45454' ব্যবহার করা ঠিক তেমনি কাজ করা উচিত।
ক্লাদিউ

19

এক সময় চলার জন্য, স্কিপি সুপারিশ করা হয়।

তবে আপনি যদি দেখতে পান যে এই দিরটি কাজ করতে পারে এবং অন্য অবস্থানটি আপডেট রাখতে আপনাকে এটি অনেক বার সরিয়ে নেওয়া দরকার তবে আপনি আরএসসিএনসি (এসএসএস সহ) ব্যবহার করতে পারেন।

যেহেতু আরএসআইএনসি-তে প্রচুর যুক্তি রয়েছে আমি সাধারণত এটি একটি ছোট শেলের মধ্যে রাখি তাই আমি এটি সঠিকভাবে পাই (প্রতিবার)। ধারণাটি কেবলমাত্র এমন জিনিসগুলি প্রেরণ করা হয় যেগুলি গতবার দৌড়ানোর পরে পরিবর্তিত হয়েছে।

#!/bin/bash

user="nisse"
host="192.168.0.33"

echo "Sync: /home/media/music/"
rsync --archive --delete -v --progress -e "ssh -l $user " /home/media/music/ $host:/home/media/music/

এটি স্থানীয় "কম্পিউটার" থেকে 192.168.0.33 নামক পিসিতে "/ হোম / মিডিয়া / মিউজিক /" নামক একটি দিরকে সরানো হবে, ব্যবহারকারী "নিস" ব্যবহার করে। এবং টার্গেটে এমন কোনও কিছু মুছুন যা স্থানীয় পিসিতে নেই।


1
+ আরএসআইএনসি-র জন্য, এটি একটি তাত্পর্যপূর্ণ দ্রুত বলে মনে হয় এবং আপনার যদি ডিরেক্টরিটি পরে সিঙ্ক করতে হয় তবে খুব ভাল
Wiesław Herr

এটি খুব প্রতিশ্রুতিবদ্ধ (এবং সহজেই পুনঃব্যবহারযোগ্য) বলে মনে হচ্ছে তবে আমি ফাঁকা জায়গাগুলির সাথে ডায়ার এবং ফাইল পেয়েছি এবং আমি আরএসসিএন ত্রুটি পেয়েছি : সিনট্যাক্স বা ব্যবহারের ত্রুটি (কোড 1) মেইন সিআর-এ (1348) [প্রেরক = 3.1.1] - - কোনও পরামর্শ?
টরবেন গুন্ডটোফেট-ব্রুন

8

আমি আপনার নিজের ল্যানের ভিতরে ফাইলগুলি সরানোর জন্য এসএসএইচের সাথে সরাসরি পরিবর্তে বিকল্পগুলির চেষ্টা করার পরামর্শ দিচ্ছি কারণ ওভারহেডটি প্রতিরোধক। আমি যদি ক্যাস্পারের সমাধান নিয়ে যাই তবে যদি এটি কোনও কারণেই আপনার পক্ষে কাজ না করে:

উত্সে:

$ python3 -m http.server {PICK_YOUR_PORT}

গন্তব্যস্থলে:

$ wget -r {ip / hostname}:{port}/{File / Directory}

এটি কেবল এসএসএইচ ব্যবহারের চেয়ে হালকা হবে না তবে স্ট্যান্ডার্ড সিএটি 6 ইউটিপিতে 45 ​​~ 65MiB এর গতিবেগের সাথে আরও দ্রুত হবে।
আপনি কি সত্যিই আলিঙ্গন করতে চান, সংযোগ থেকে সবচেয়ে বেশি প্রতিস্থাপন চেষ্টা wgetসঙ্গে lftpএবং ব্যবহার pget -n20এবং mirror -rকমান্ড।


7

দ্রুততম সম্ভবত netcat(যেমন ক্যাস্পার বর্ণিত)।

আমি tar& এর সংমিশ্রণটি পছন্দ করি sshযা নিরাপদ এবং এখনও দ্রুত:

উত্স উপর

tar -cf - . | ( ssh user@target && cd /target/path && tar -xf - )

রুট হিসাবে এটি করা, এটি ফাইল অনুমতি সংরক্ষণ করে। বা -pউভয় পক্ষের ব্যবহার । এছাড়াও -Sআপনি sparse ফাইল আছে যদি বিবেচনা করা যেতে পারে।

sshআপনি যদি arcfourওপেনএসএসএইচ সহ কাজ করে এমন সাইফার হিসাবে ব্যবহার করেন তবে এর এনক্রিপশন ওভারহেড হ্রাস করা সম্ভব :

tar -cpSf - . | ( ssh -c arcfour user@targethost && cd /target/path && tar -xpSf - )

দূরবর্তী পাথ আপডেট করতে, rsyncনিখুঁত:

rsync -av --sparse --delete -e "ssh -c arcfour" . root@targethost:/target/path

1
এফডব্লিউআইডাব্লু, আমি সম্প্রতি আরসিফোর বিকল্প এবং কোনও নির্দিষ্ট-তর্ক যুক্তি দিয়ে আরএসসিএনসি ব্যবহার করে দুটি সরাসরি সংযুক্ত আধুনিক ল্যাপটপের মধ্যে স্থানান্তর পরীক্ষা করেছি। আমি গতিতে কোন পার্থক্য লক্ষ্য করেছি।
র‌্যান্ডি সিরিং 16

4

এটি যদি পুরোপুরি ল্যানের মধ্যে দিয়ে শেষ করতে হয় তবে আমি ব্যবহার করব rsync, কারণ এটি ব্যাহত হলে এটি কোথায় ছেড়েছিল pick এতে স্থানান্তরিত হওয়া ডেটার পরিমাণ হ্রাস করার জন্য আরও কয়েকটি কৌশল রয়েছে, যদিও আমি সন্দেহ করি যে তাদের / অনেকেই কোনও ভার্জিন স্থানে একটি সংগীত গ্রন্থাগারের অনুলিপি করার ক্ষেত্রে প্রাসঙ্গিক হতে পারেন। সুরক্ষা যদি উদ্বেগের বিষয় থাকে তবে RSYNC_RSH=sshপ্রথমে সেট করুন এবং ডেটাটি এসএসএসের মাধ্যমে সুরক্ষিত করা হবে।

আমি যদি আসলে এটি করছিলাম তবে আমি সম্ভবত ল্যানটি মোটেই ব্যবহার করব না। আমি একটি USB হার্ড ড্রাইভে ফাইলগুলি অনুলিপি করতাম। আমার অভিজ্ঞতা হিসাবে, এটি সহজেই ল্যানের ওপরে যাওয়ার চেয়ে দ্রুততার একাধিক আদেশ হতে পারে, দুবার ফাইলগুলি অনুলিপি করা সত্ত্বেও - ইউএসবি ২.০ 480 এমবিপিএসের জন্য নির্ধারণ করা হয়, যা গিগাবিট ইথারনেটের সংক্ষিপ্ত যে কোনও চেয়ে দ্রুততর, এবং এটি অবস্থার প্রতি কম সংবেদনশীল যা ল্যানের পারফরম্যান্সকে হ্রাস করবে। এটি সম্পূর্ণ ওএস-ইন্ডিপেন্ডেন্ট, আপনি যদি এমন কোনও ফাইল সিস্টেম ব্যবহার করেন যা সমস্ত জড়িত মেশিনগুলি পরিচালনা করতে পারে - আমি ভিএফএটি / এফএটি 32 এর পরামর্শ দেব, যেহেতু এটি বেশ সার্বজনীন।


1
আমিও (তথাকথিত) স্নিকার্নেটের একজন ভক্ত, তবে এটি উল্লেখ করার মতো যে ইউএসবি 2 যখন 480 এমবিপিএস পেতে সক্ষম হবে তবে আমি কেবল কখনও এটি 30 এমবি / এস (প্রায় 240 এমবিপিএস) পেতে দেখেছি। সম্ভবত আমার কাছে সস্তা ইউএসবি রয়েছে <-> সটা হার্ডওয়্যার;) এছাড়াও, FAT32 বেশ সার্বজনীন তবে 4 জিবি ফাইলাইজ সীমাবদ্ধতার কারণে ডিভিডি চিত্রের মতো জিনিসগুলি অনুলিপি করার উপায় নয়; এটি উল্লেখ করার মতো, যাতে উইন্ডোজ (কমপক্ষে) প্রদত্ত "আউট অফ স্পেস" ত্রুটি বার্তাটি দিয়ে লোকেরা খুব হতাশ না হয়।
ক্যাস্পার

@ ক্যাস্পার: ভাল সতর্কতা! তাদের উল্লেখ করার জন্য ধন্যবাদ; আমি সর্বদা FAT32 ফাইলের আকারের সীমাটি ভুলে যাই ...
ডেভ শেরোহমান

2

আমি আরএসসিএনকে পরামর্শ দেব কারণ এটি ফাইলগুলি বর্ধিতভাবে অনুলিপি করবে। আপনি প্রাথমিক আপডেটটি সম্পন্ন করার পরে এটি কেবলমাত্র পরিবর্তিত বা নতুন ফাইলগুলি অনুলিপি করতে সেট আপ করতে পারেন। আপনি চাইলে পরিবহন স্তর হিসাবে এসএসএস ব্যবহার করতে পারেন।


1

আমি ইউনিসন ব্যবহার করি যা বিভিন্ন বিভিন্ন প্রোটোকলের চেয়ে দুর্দান্ত ফাইল সিঙ্ক্রোনাইজার। ব্যবহার করার জন্য আপনি কনফিগার করতে পারেন scp, rcp, ftpদুই ফোল্ডার মধ্যে ফাইলসিস্টেম-এর বা এমনকি স্থানীয়ভাবে। আমি এটি আমার সঙ্গীত লাইব্রেরির সিঙ্ক্রোনাইজ করতে ব্যবহার করি কারণ এটি একসাথে একাধিক ফাইল নেটওয়ার্কের মাধ্যমে স্থানান্তর করতে পারে এবং এর কনফিগারেশনে সত্যিই টিউনযোগ্য। আমি আমার সংগীত সংগ্রহটি ব্যাক আপ করে রাখি এবং ২-৩ টি কম্পিউটারের সাথে সিঙ্কে রাখি। এটি কেবল পরিবর্তিত ফাইলগুলি অনুলিপি করবে এবং তা স্থানান্তরের উভয় প্রান্তে একটি সূচক রেখে এমনটি করবে যাতে কোনও ক্লায়েন্ট কখন ফাইল পরিবর্তন করেছে বা সার্ভার ফাইলটি পরিবর্তিত হয়েছে তা বলতে সক্ষম হবে।

আপনার মাইলেজটি বিভিন্ন রকম হতে পারে তবে scpআপনি যখনই কোনও নতুন গান যুক্ত করবেন ততবারে আপনার পুরো সংগীত সংগ্রহের তুলনায় এটি অবশ্যই অনেক ভাল :)


0

আমি passwordless লগ ইনের জন্য SSH প্রক্রিয়া অনুসৃত প্রথম http://www.tecmint.com/ssh-passwordless-login-using-ssh-keygen-in-5-easy-steps/

স্ক্রিপ্ট এবং পাঠ্য ফাইলের জন্য নিম্নলিখিতগুলি আমার জন্য ঠিক কাজ করে

স্থানীয় হোস্ট থেকে দূরবর্তী হোস্টে ডেটা স্থানান্তর করতে। cat localfile | ssh <user>@<ip> "cat > <path>/<remotefile>"

দূরবর্তী হোস্ট থেকে স্থানীয় হোস্টে ডেটা স্থানান্তর করতে। ssh <user>@<ip> "cat > <path>/<remotefile>" | cat > localfile

এটি এম্বেড থাকা সিস্টেমে ফাইল স্থানান্তর করতে আমার পক্ষে কাজ করে যার মধ্যে এসএসএস ক্লায়েন্ট বা স্কিপ অন্তর্নির্মিত নেই।

কোনও স্ক্রিপ নেই - কেবল এসএসএস।

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