(তুলনামূলকভাবে) বড় ফাইলগুলির জন্য আরএসআইএনসি দিয়ে দুর্নীতিগ্রস্থ প্যাকেট ত্রুটি কীভাবে ঠিক করবেন?


10

rsyncকমান্ডটি দিয়ে একটি সার্ভারে ফাইলগুলি আপডেট করার চেষ্টা করা হচ্ছে :

rsync -ravq -e "ssh -o ConnectTimeout=2 -o ServerAliveInterval=2 -ServerAliveCountMax=2" --delete ./local_dir user@$SERVER:/dest_dir

corrupt packet ত্রুটিগুলি বিশেষভাবে নিক্ষেপ করতে থাকে:

rsync: writefd_unbuffered failed to write 4092 bytes to socket [sender]: Broken pipe (32)
rsync: connection unexpectedly closed (11337 bytes received so far) [sender]
rsync error: unexplained error (code 255) at /home/lapo/package/rsync-3.0.9-1/src/rsync-3.0.9/io.c(605) [sender=3.0.9]

এটি সম্ভবত একটি sshটাইমআউট সম্পর্কিত , কারণ এটি বড় (আর) ফাইলগুলির সাথে ঘটেছিল বলে মনে হয়। এছাড়াও, আমি উইনসিসিপি ব্যবহার করে টাইমআউট পেতে থাকি। এটি কেবল আমারই ঘটছে; আমি এই সার্ভারটি ব্যবহার করে বেশিরভাগ লোকের একই সমস্যা নেই have

rsyncসেন্টোস 6.3 সার্ভারের বিপরীতে উইন্ডোজ 7-এ সাইগউইন টার্মিনাল থেকে ব্যবহার করা হচ্ছে।

আমি নিশ্চিত নই যে অন্য কোন তথ্য কার্যকর হতে পারে বা কীভাবে তা অর্জন করা যায়। আমি প্রশ্নটি আপডেট করব বা কোনও পরামর্শ অনুযায়ী মন্তব্য যুক্ত করব।

আমি কীভাবে এটি সমাধান করব?

অনেক ধন্যবাদ!

উত্তর:


12

আমি নিশ্চিত নই corrupt packetযে সমস্যার ফলে আপনার সংযোগ হ্রাস পেতে পারে তবে আপনি বড় আকারের ফাইল স্থানান্তর করার সময় আরএসসিএন এর বিকল্প --partialবা --partial-dirবিকল্প খুঁজে পেতে পারেন যাতে আপনি ট্রান্সফারটি পুনরায় চালু করার সাথে সাথে ট্রান্সফারটি শুরু করার পরিবর্তে স্থানান্তরটি যেখানে ছেড়ে যায় সেখানেই এটি চালু থাকবে will পুরো ফাইলটি আবার:

--partial-Dir = .rsync-আংশিক

সুতরাং আপনি আপনার মূল কমান্ডটি এর মতো পরিবর্তন করতে পারেন:

rsync -rav --progress --partial -e "ssh -o ConnectTimeout=2 -o ServerAliveInterval=2 -ServerAliveCountMax=2" --delete ./local_dir user@$SERVER:/dest_dir

অথবা

rsync -rav --progress --partial-dir=.rsync-partial -e "ssh -o ConnectTimeout=2 -o ServerAliveInterval=2 -ServerAliveCountMax=2" --delete ./local_dir user@$SERVER:/dest_dir

মনে রাখবেন যে এই উদাহরণের জন্য আমি -q( --quiet) বিকল্পটি সরিয়েছি এবং --progressবিকল্পটি প্রথম উদাহরণে এবং --partial-dir=.rsync-partialদ্বিতীয় উদাহরণে যুক্ত করেছি।

--partialএবং এর মধ্যে পার্থক্যটি --partial-dir=.rsync-partialহ'ল পরবর্তীতে একটি ডিরেক্টরি তৈরি করে যা আংশিক ফাইলগুলি সম্পূর্ণ স্থানান্তরিত ফাইলগুলি থেকে পৃথক রাখে যদি তা প্রাপ্তি (সার্ভার) দিক থেকে আপনার পক্ষে গুরুত্বপূর্ণ।

Rsync র manpage আরও বিস্তারিতভাবে এই ব্যাখ্যা করবে, যদিও আমি একটি গুরুত্বপূর্ণ বাতলান করব নিরাপত্তা নোট র manpage থেকে:

গুরুত্বপূর্ণ: - পার্টিশিয়াল-ডিরটি অন্য ব্যবহারকারীদের দ্বারা লিখিতযোগ্য হওয়া উচিত নয় বা এটি একটি সুরক্ষা ঝুঁকি। যেমন AVOID "/ tmp"।


আমি উভয় বিকল্প চেষ্টা করেছিলাম, এবং উভয়ই সমস্যার সমাধান করেছি। যদিও ইঙ্গিতটির জন্য ধন্যবাদ।
হুয়ান কার্লোস কোটো

1

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


0

যদি ওলিমিট মান 0 বা সামান্য সংখ্যা হয় তবে এটির ত্রুটি হওয়া উচিত। উলিমিট মান বাড়ানোর চেষ্টা করুন (such as 9999999999)এবং আবার চেষ্টা করুন। আপনি একটি সামান্য শেল স্ক্রিপ্ট লিখতে পারেন (a.sh)এবং এর মতো কিছু ব্যবহার করতে পারেন:

#!/bin/sh
ulimit 99999999999

rsync -avrz --perms --delete --chmod=u+rwx,g+rx,o+x /dir1/ /dir2/

2
এটা আকর্ষণীয়. আমি কিছুক্ষণ ধরে এ নিয়ে কাজ করছি না; তবে, আপনি কেন এটি কাজ করে তা ব্যাখ্যা করতে চাইলে, আমি মনে করি যে এই প্রশ্নটি পড়েন তার পক্ষে এটি সত্যিই দরকারী। ধন্যবাদ!
হুয়ান কার্লোস কোটো 21

-1

অবশেষে স্থানান্তর না হওয়া পর্যন্ত কেবল লুপ করুন

while ! sshpass -p 'xxxx' rsync --partial --append-verify --progress -a -e 'ssh -p 22' /source/ remoteuser@1.1.1.1:/dest/; do sleep 5;done
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.