Ssh এর মাধ্যমে বড় (8 জিবি) ফাইল স্থানান্তর করা হচ্ছে


27

আমি এটি এসসিপি দিয়ে চেষ্টা করেছি, তবে এটি "নেতিবাচক ফাইলের আকার" বলে।

>scp matlab.iso xxx@xxx:/matlab.iso
matlab.iso: Negative file size

এসএফটিপি ব্যবহারের চেষ্টাও করেছেন, 2 জিবি ফাইল স্থানান্তর না হওয়া পর্যন্ত সূক্ষ্মভাবে কাজ করেছেন, তারপরে বন্ধ করুন:

sftp> put matlab.iso
Uploading matlab.iso to /home/x/matlab.iso
matlab.iso                                           -298% 2021MB -16651.-8KB/s   00:5d
o_upload: offset < 0

ভুল হতে পারে কি কোন ধারণা? এসসিপি এবং এসএফটিপি 2 জিবি-র চেয়ে বড় ফাইলগুলিকে সমর্থন করে না? যদি তা হয় তবে আমি কীভাবে আরও বড় ফাইলগুলি এসএসএইচের মাধ্যমে স্থানান্তর করতে পারি?

গন্তব্য ফাইল সিস্টেমটি ext4। লিনাক্স বিতরণ সেন্টোস 6.5। ফাইল সিস্টেমে বর্তমানে এটিতে (অ্যাক্সেসযোগ্য) বড় ফাইল রয়েছে (100 গিগাবাইট পর্যন্ত)।


5
আকারের পরিবর্তনশীল ওভাররনের মতো মনে হচ্ছে। তবে এএফআইএইচসি স্কিপ / এসএফপিটির কোনও আকারের সীমা নেই। গন্তব্য ফাইল সিস্টেম কি? এটি LARGEFILES সমর্থন করে?
মিলিন্দ ডুম্বারে

1
অ্যাপ্লিকেশনগুলি sftp এবং scp সম্পর্কে কী বলা যায়? আপনি তাদের বাইনারিগুলির বিরুদ্ধে ফাইল কমান্ড ব্যবহার করে এটি খুঁজে পেতে পারেন।
এমডিপিসি

1
@ শেফার্ড - হ্যাঁ
এমডিপিসি

2
32-বিট অ্যাপ্লিকেশনগুলি বড় ফাইলগুলি সংকলন করা থাকলে অ্যাক্সেস করতে পারে -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64। তবে আপনি যদি 64৪-বিট .5.৫ সিস্টেম চালাচ্ছেন তবে অ্যাডমিনদের ইনস্টল করা openssh-5.3p1-94.el6_6.1.x86_64এবং openssh-server-5.3p1-94.el6_6.1.x86_64স্ট্যান্ডার্ড রেপোগুলি থেকে পাওয়া সহজ হবে ।
মার্ক প্লটনিক

1
ফাইল আকারের জন্য স্বাক্ষরিত পূর্ণসংখ্যার ব্যবহার করে সফটওয়্যারটিতে লোল
মনিকা

উত্তর:


9

মূল সমস্যা (ওপি প্রশ্নের সমস্ত মন্তব্য পড়ার উপর ভিত্তি করে) ছিল যে scp64৪-বিট সিস্টেমে এক্সিকিউটেবলটি ছিল একটি 32-বিট অ্যাপ্লিকেশন। একটি "32-বিট অ্যাপ্লিকেশন যা " বড়-ফাইল সমর্থন " দিয়ে সংকলিত নয় সীমাবদ্ধ সন্ধান পয়েন্টারগুলির সাথে শেষ হয় 2^32 =~ 4GB

কমান্ডটি scpব্যবহার করে আপনি 32-বিট কিনা তা বলতে পারেন file:

file `which scp`

বেশিরভাগ আধুনিক সিস্টেমে এটি 64৪-বিট হবে, সুতরাং কোনও ফাইল কেটে ফেলা হবে না:

$ file `which scp`
/usr/bin/scp: ELF 64-bit LSB  shared object, x86-64 ...

একটি 32-অ্যাপ্লিকেশনটি এখনও "বড় ফাইলগুলি" সমর্থন করতে সক্ষম হওয়া উচিত তবে এটি বৃহত-ফাইল সমর্থন সহ উত্স থেকে সংকলন করতে হবে যা সম্ভবত এই ক্ষেত্রে ছিল না।

প্রস্তাবিত সমাধানটি সম্ভবত একটি সম্পূর্ণ স্ট্যান্ডার্ড -৪-বিট বিতরণ ব্যবহার করা হয় যেখানে অ্যাপ্লিকেশনগুলি ডিফল্টরূপে -৪-বিট হিসাবে সংকলিত হয়।


33

Ssh এর চেয়ে বড় ফাইলগুলি স্থানান্তর করার জন্য Rsync খুব উপযুক্ত suited কারণ এটি কোনও কারণে বাধাগ্রস্ত স্থানান্তরগুলি চালিয়ে যেতে সক্ষম। যেহেতু এটি সমান ফাইল ব্লকগুলি সনাক্ত করতে হ্যাশ ফাংশন ব্যবহার করে চালিয়ে যাওয়া বৈশিষ্ট্যটি বেশ শক্ত।

এটি অবাক করে দেওয়ার মতো যে আপনার sftp/ scpসংস্করণগুলি বড় ফাইলগুলি সমর্থন করে না - এমনকি 32 বিট বাইনারি সহ , আজকাল , এলএফএস সমর্থনটি বেশ মানসম্পন্ন হওয়া উচিত।


4
ফাইলের একটি বড় অংশ ইতিমধ্যে স্থানান্তরিত হয়েছে rsyncতা দেওয়া এখনই ভাল ধারণা। -Pউভয়ই অগ্রগতির ইঙ্গিত পেতে বিকল্পটি ব্যবহার করুন এবং ট্রান্সফারটি আবার ব্যাহত হওয়ার ক্ষেত্রে কোনও অসম্পূর্ণ ফাইল রাখার জন্য রিসিভারকে নির্দেশ দিন।
সাইমন রিখটার

25

আমি এসসিপি এবং এসএফটিপি-র ফাইলের আকার সীমা সম্পর্কে নিশ্চিত নই, তবে আপনি বিভাজন নিয়ে সমস্যাটি নিয়ে চেষ্টা করার চেষ্টা করতে পারেন:

split -b 1G matlab.iso

এটি 1 জিআইবি ফাইল তৈরি করবে যা ডিফল্টরূপে নামকরণ করা হয় xaa, xab, xac, ...। তারপরে আপনি ফাইলগুলি স্থানান্তর করতে scp ব্যবহার করতে পারেন:

scp xa* xxx@xxx:

তারপরে রিমোট সিস্টেমে বিড়াল সহ মূল ফাইলটি পুনরায় তৈরি করুন:

cat xa* > matlab.iso

অবশ্যই, এই কর্মক্ষেত্রের শাস্তি হ'ল বিভাজন এবং বিড়াল ক্রিয়াকলাপের সময়, পাশাপাশি স্থানীয় এবং দূরবর্তী সিস্টেমে অতিরিক্ত ডিস্কের স্থান প্রয়োজন।


1
ভাল ধারণা. আমি ইতিমধ্যে একটি ইউএসবি ড্রাইভ দিয়ে ফাইলটি স্থানান্তর করেছি তবে এটি সম্ভবত আরও সুবিধাজনক হবে। যদিও সঠিকভাবে কাজ করতে scp এবং sftp পাওয়ার মতো সুবিধাজনক নয়।
eimrek
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.