আংশিক অনুলিপি করা ফাইলগুলি কীভাবে স্কপ পুনরায় শুরু করবেন? [বন্ধ]


104

আমি ফাইলগুলির বিশাল ফোল্ডারটি অনুলিপি করতে scp শেল কমান্ড ব্যবহার করি।

তবে কিছু সময় আমাকে চলমান কমান্ডটি (সিটিআরএল + সি বা হত্যা দ্বারা) হত্যা করতে হয়েছিল।

আমার বোঝার জন্য scp অনুলিপি ফাইল অনুলিপি করা হয়েছে, সুতরাং শুধুমাত্র একটি আংশিক অনুলিপি ফাইল থাকা উচিত।

সফলভাবে অনুলিপি করা ফাইলগুলি ওভাররাইট না করার জন্য এবং আংশিকভাবে অনুলিপি করা ফাইলগুলি সঠিকভাবে পরিচালনা করতে কীভাবে একই scp কমান্ডটি আবার শুরু করা যেতে পারে?

পিএস আমি জানি আমি এই জাতীয় জিনিসগুলি আরএসইএনসি-তে করতে পারি, তবে কোনও কারণে স্কপ আমার পক্ষে দ্রুত হয় এবং আমি এর পরিবর্তে এটি ব্যবহার করি।


4
আমার সন্দেহ হয় যে rsync ধীর গতির কারণ এটি এমন কিছু কাজ করতে কিছু অতিরিক্ত সময় ব্যয় করে যা আপনাকে কোনও স্থানান্তর পুনরায় চালু করার অনুমতি দেয়। আংশিক স্থানান্তর শেষ করতে আপনি কেবল rsync ব্যবহার করে বিবেচনা করতে পারেন।
কিথ থম্পসন

4
আপনি যদি চালাক হতে চান, আপনি সর্বদা ddএকটি উপযুক্ত skipপরিবর্তনশীল, এবং পাইপ দিয়ে চেষ্টা করতে পারেন ssh:)
মার্ক নুনবার্গ

4
এটি এসও-এর পক্ষে অফ-টপিক। এটি সুপার ইউজারের সাথে সম্পর্কিত এবং সেখানে অবশ্যই জিজ্ঞাসা করা হয়েছে
ড্যান ড্যাসক্লেস্কু

আরএসসিএনসি কভারের নীচে ডিফল্টরূপে এসএসএস ব্যবহার করে Typically, rsync is configured to use ssh by defaultতাই ... এটি প্রায় দ্রুত হওয়া উচিত (যদিও এটি প্রথমে একটি ডিরেক্টরি তালিকা তৈরি করে যা ধীরে ধীরে সূচনা দিতে পারে)
রোজারডপ্যাক ২

উত্তর:


193

আপনার rsyncওভার ব্যবহার করা উচিতssh

rsync -P -e ssh remoteuser@remotehost:/remote/path /local/path

মূল বিকল্পটি হ'ল -Pযা একইরকম--partial --progress

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

অন্যান্য বিকল্পগুলি -a( যেমন সংরক্ষণাগার মোডের জন্য) এবং -z(সংক্ষেপণ সক্ষম করতে) ব্যবহার করা যেতে পারে।

ম্যানুয়াল: https://download.samba.org/pub/rsync/rsync.html


50
কেবল নোট করতে চেয়েছিলেন যে আরএসসিএনসি স্কেপ দিয়ে ঠিক একটি ব্যাচ অনুলিপি শুরু করবে।
ক্রেগ অ্যান্ডারসন

7
আপনি "এড়িয়ে যাওয়ার ডিরেক্টরি" পাবেন। ত্রুটি, আপনি উল্লেখ না করা পর্যন্ত -r। সূত্র: lucasb.eyer.be/snips/rsync-skipping-directory.html
আর্তুর সিজকা

4
আমার জন্য পরিশ্রমী, তবে আমি যুক্ত করলাম
অ্যাপেনডও

4
@ ক্রেইগএন্ডারসন যে গুরুত্বপূর্ণ পয়েন্টটি বাদ পড়েছে। উত্তরের মতো মনে হচ্ছে এটি ডাউনলোডটি আরএসসিএনসি দিয়ে শুরু হওয়া উচিত।
উইলা

4
উত্তরে প্রদত্ত বিকল্পগুলি আমার পক্ষে কার্যকর হয়নি তবে এটি করেছে:rsync -P -rsh remoteuser@remotehost:/remote/path /local/path
বনি খরগোশ

29

আরএসএনসি-র বিকল্প:

ব্যবহারের sftpবিকল্প -r(যাও recursively সমগ্র ডিরেক্টরি কপি) এবং বিকল্প-a এর sftp'র getকমান্ড "বিদ্যমান ফাইলগুলির আংশিক স্থানান্তর পুনরায় শুরু করুন।"

পূর্বশর্ত: আপনারsftp বাস্তবায়ন ইতিমধ্যে একটি রয়েছে getসঙ্গে -aবিকল্প।

উদাহরণ:

/foo/barদূরবর্তী সার্ভার থেকে আপনার স্থানীয় বর্তমান ডিরেক্টরিতে ডিরেক্টরি অনুলিপি করুন । ডিরেক্টরি barআপনার স্থানীয় বর্তমান ডিরেক্টরিতে তৈরি করা হবে।

echo "get -a /foo/bar" | sftp -r user@remote_server

5
আপনার সমাধানটি দুর্দান্ত কারণ আমার সার্ভারটি ssh এ লগইন করতে দেয় না, তাই rsync কাজ করে না। ডাউনলোডের পরিবর্তে আমাকে আপলোড করা দরকার তাই আমার echo "put -a foo/bar" | sftp -r server:/foo
কার্লোস রাফায়েল রামিরেজ

4
আংশিকভাবে ডাউনলোড করা ফাইল পুনরায় শুরু করার জন্য এটি বেশ কার্যকর বিকল্প বলে মনে হচ্ছে, কারণ আরএসইএনসি তেমন এসএসএস বান্ধব বলে মনে হচ্ছে না (অ-ডিফল্ট পোর্ট সহ)।
কোডজম্বি

13

OpenSSH- র 6.3 সাল থেকে, আপনি ব্যবহার করতে পারেন regetকমান্ড মধ্যে sftp

এটির মতো একই সিনট্যাক্স রয়েছে get, এটি একটি বিদ্যমান স্থানীয় ফাইলের শেষে থেকে স্থানান্তর শুরু করে।

echo "reget /file/path" | sftp -r user@server_name

একই প্রভাবটি command sftp এর কমান্ড বা গ্লোবাল কমান্ড-লাইনে স্যুইচ-a করতে চলেছে ।get-a


5

আরেকটি সম্ভাবনা হ'ল যে স্ক্যাপটি স্টল হওয়ার সময় আপনি ইতিমধ্যে শুরু করেছিলেন সেভটি উদ্ধার করার চেষ্টা করা।

ব্যাকগ্রাউন্ডে সিটিআর + জেড এবং এটি বন্ধ করুন, তারপরে রিসিভ করা সার্ভারে প্রবেশ করুন এবং লগইন করুন, তারপরে প্রস্থান করুন। এখন scp প্রক্রিয়াটি fg করুন এবং এটি 'স্টলড' থেকে পুনরায় শুরু দেখুন!


ম্যাক ওএস এক্সে আমার জন্য কাজ করেছেন this এটি পোস্ট করার জন্য ধন্যবাদ, এটি আজ আমার বেকন সংরক্ষণ করেছে!
বেন হিচকক

নেটওয়ার্কটি নিজেকে
পুনরুদ্ধার

2

আরএসসিএনসি স্টলগুলি যখন বেশ কয়েক সেকেন্ড পরে স্টল করে যখন প্রাথমিকভাবে জরিমানা চলছে তখন আমি প্রতি 60s ডাউনলোড ডাউনলোড শুরু এবং থামাতে নিম্নলিখিত ব্রুট ফোর্স সলিউশনটি দিয়ে শেষ করেছি:

cat run_me.sh
#!/bin/bash
while [ 1 ]
do
  rsync --partial --progress --rsh=ssh user@host:/path/file.tgz file.tgz &
  TASK_PID=$!
  sleep 60
  kill $TASK_PID
  sleep 2
done

1

আপনি এর -rshএবং -Pবিকল্পগুলির ব্যবহার করতে পারেন rsync-Pআংশিক ডাউনলোডের জন্য এবং-rsh ইঙ্গিত করে যে ট্রান্সফারটি এসএসএস প্রোকোটলেরও বেশি।

সম্পূর্ণ আদেশটি হ'ল: rsync -P -rsh remoteuser@remotehost:/remote/path /local/path


জর্ডির উত্তর কি একই?
রজারডপ্যাক

-4

আমি গতকাল একই সমস্যা পেয়েছি, স্কিপ এর মাধ্যমে একটি বিশাল স্কয়ার ডাম্প স্থানান্তরিত করে আমি ভাগ্যবান হয়েছি wget --continue the_url

যে ব্লগ পোস্ট বেশ ভাল এটা ব্যাখ্যা করে http://www.cyberciti.biz/tips/wget-resume-broken-download.html মূলত:

wget --continue url

সাইটটি নীচে নেমে যাওয়ার সাথে সাথে কোনও url থেকে প্রাসঙ্গিক অংশগুলি অনুলিপি দেওয়া উত্তম অনুশীলন হিসাবে বিবেচিত।
রাইয়ের

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