rsync mkstemp ব্যর্থ হয়েছে অবৈধ আর্গুমেন্ট (22) সাথে ডটকম ডটকমের মেঘের মাউন্ট


10

আমি এই নির্দেশাবলী অনুসারে ডেভফ ব্যবহার করে বক্স.কমের ক্লাউড স্টোরেজটিকে মাউন্ট করেছি । আমি আমার বক্স.কম অ্যাকাউন্টটি / হোম / আমার / মেঘ / বাক্সের নীচে মাউন্ট করেছি

আমি ডলফিনের পাশাপাশি টার্মিনালের মাধ্যমে মাউন্ট করা ফাইল সিস্টেম অ্যাক্সেস করতে পারি। এটি সামান্য ধীর, তবে আমি তালিকা (এলএস) এবং ত্রুটি ছাড়াই পুরো ডিরেক্টরি কাঠামোটি নেভিগেট করতে পারি।

এরপরে আমি নীচে আরএসসিএন চালানোর চেষ্টা করেছি:

rsync -auvz  --max-size=250M --exclude '.*' /home/me/Music/ /home/me/Cloud/Box/Music

আমি চেষ্টাও করেছি:

rsync -auv  /home/me/Music/A /home/me/Cloud/Box/Music

এবং rsync কমান্ডের অন্যান্য বিভিন্নতা। কমান্ডটি আমার স্থানীয় ফাইল সিস্টেম (/ হোম / আমি / মিউজিক /) থেকে ডাউফস মাউন্টের মাধ্যমে বক্স ক্লাউডে (/ হোম / আমি / ক্লাউড / বক্স / সংগীত) অনুলিপি করছে।

আমি সবসময় এই ফর্মটির অনেক ত্রুটি পাই:

rsync: mkstemp <filename> failed: Invalid argument (22)

একটি নির্দিষ্ট উদাহরণ হ'ল:

rsync: mkstemp "/home/me/Cloud/Box/Music/VariousArtists/.01_Track_1.mp3.YVmFI9" failed: Invalid argument (22)

একটি দ্রুত / নির্ভরযোগ্য ক্যাবল মডেম সংযোগ (12 এমবি / গুলি আপলোডের গতি) সহ সার্ভার গ্রেড হার্ডওয়্যার, কুবুন্টু 12.04 এলটিএস bit৪ বিট এ সব ঘটছে।

উত্তর:


7

rsyncবক্স ডট কম এবং / অথবা ডেভফস বোঝে না এমন ফাইলের নাম দিয়ে অস্থায়ী ফাইল তৈরি করার কারণে সমস্যা দেখা দেয় । এভাবে ফাইল .01_Track_1.mp3.YVmFI9আপনার সিস্টেমে কোন অস্তিত্ব নেই, কিন্তু একটি সাময়িক হস্তনির্মিত বস্তু এর rsync। আমার পক্ষ থেকে কিছু অনুমানমূলক কাজ: আপনি যদি সমস্ত ফাইলে ত্রুটিটি না পান তবে আপনি সম্ভবত ইতিমধ্যে আপলোড করা (এবং পরিবর্তিত) ফাইলগুলিতে ত্রুটি পাবেন।

এটা তোলে অসম্ভব ব্যবহার করা হয় এই অস্থায়ী ফাইল প্রজন্ম বন্ধ স্যুইচ করতে, কিন্তু আপনি আজকাল বিকল্প যোগ করে বেশি ভাগ্য থাকতে পারে --inplace। তবে আপনি যদি আরএসসিএন-ডেমন-এর সাথে কথা না বলছেন তবে আরএসসিএনসি ব্যবহারের সুবিধা (যা আপনি ড্যাভফ ব্যবহার করছেন না তা), আমার কাছে অস্পষ্ট।

অতএব, বিকল্প হিসাবে, আপনি চেষ্টা করতে পারেন cp --update, যা কেবলমাত্র ফাইলটি অনুলিপি করে যখন উত্সটি গন্তব্যের চেয়ে নতুন । নতুন ফাইল এবং আইডি 3 ট্যাগগুলির পরিবর্তিত কোনও ফাইল অনুলিপি করা হবে, অন্যরা তা করবে না।

বা আপনার যদি আরও নিয়ন্ত্রণ ব্যবহারের প্রয়োজন হয় find:

cd /home/me/Music/
find * -size -250M -print0 | cpio -pdmv0 /home/me/Cloud/Box/Music

এটি শ্রেণিবদ্ধ কাঠামো সংরক্ষণ করে এবং cpioবিদ্যমান ফাইলগুলি পুরানো নয় ওভাররাইট করে না।


1
আরএসআইএনসি ব্যবহারের একটি কারণ হ'ল আমি ইতিমধ্যে জানি যে এটি 250 এমবি এর চেয়ে কম ফাইল এবং অনুলিপিযুক্ত ফাইল বা ডিরেক্টরিতে কপি করার ক্ষেত্রে এটি সীমাবদ্ধ করতে হয়। আমি ব্যবহার --max-size=250M --exclude '.*' । আমি নিশ্চিত cpযে এটি করার জন্য তৈরি করা যেতে পারে ... সম্ভবত সিপিতে সন্ধানের আউটপুটটি পাইপ দিয়ে? তবে আমি কীভাবে এটি করতে জানি না। যদি আমরা কোনও সমাধান নিয়ে আসি, আমি চেষ্টা করব cp -ru। ধন্যবাদ
মাউন্টেনএক্স

সেক্ষেত্রে আপনার সিপি-ইউ প্রয়োজন নেই, সিপিও ব্যবহার করুন (আপডেট উত্তর দেখুন)
অ্যান্থন

ধন্যবাদ. আমি বিশ্বাস করি এটি আমার জন্য এটি সমাধান করবে। আপনি আমাকে প্রক্রিয়াটিতে শিক্ষিত করেছিলেন, যার আমি প্রশংসা করি। (এফআইআইআই, আমার ক্ষেত্রে আমি ফাইলগুলি 250 এমবি এর চেয়ে কম চাই, এর চেয়ে বেশি নয়))
মাউন্টেনএক্স

এটি হ'ল ... -size -250Mঅন্যথায় আপনি ব্যবহার করবেন +250M(সংক্ষেপে এখানে একটি ভুল সংস্করণ ছিল, তবে আমি সম্পাদনাটি ঠিক হওয়ার আগেই বুঝতে পেরেছিলাম)
আন্থন

4

১. ফাইলের নামগুলিতে বিশেষ অক্ষর সহ সমস্যা

ফাইলের নামগুলিতে কোনও বিশেষ অক্ষর রয়েছে? আপনি যে ফাইল সিস্টেমে এই ফাইলগুলি লিখছেন তার উপর নির্ভর করে, তারা আপনাকে কোনও বিন্দু দিয়ে ফাইলগুলি উপসর্গের অনুমতি দিতে পারে না (. উদাহরণস্বরূপ আপনাকে ) ।

২.আরসিএনসি পরিবর্তনের সময় এবং ওয়েবড্যাভ ২ নিয়ে সমস্যা

আমি এই ব্লগ পোস্টটি জুড়ে এসেছি যেখানে rsyncওয়েবডাভ 2 মাউন্ট করা বাক্স ডটকম ডিরেক্টরিগুলি ফাইল জুড়ে ফাইল পরিবর্তনের সময় ফাইল লেখার / ট্র্যাকিংয়ের সমস্যায় একটি সমস্যা বর্ণিত হয়েছে।

মাউন্ট করা ফাইল সিস্টেমে সমস্যাটি এরকম প্রদর্শিত হচ্ছে:

david@sydney:~/Pictures$ ls -l /mnt/box/bwca/08/09/IMG_3084.CR2
-rw-r--r-- 1 david david 12564061 Aug 14 16:08 /mnt/box/bwca/08/09/IMG_3084.CR2
david@sydney:~/Pictures$ ls -l 2012/08/09/IMG_3084.CR2
-rw-rw-r-- 1 david david 12564061 Aug  9 13:00 2012/08/09/IMG_3084.CR2

সেই একই নিবন্ধটি একটি কার্যপ্রণালী দেখিয়েছে:

$ rsync -avhP --size-only --bwlimit=64 2012/08 /mnt/box/bwca/

এটি ব্যবহারের একটি দুর্দান্ত উপায় rsync, তবে এটি কেবল এখন তাদের আকারের উপর ভিত্তি করে ফাইলগুলি তুলনা করছে, চেকসামগুলি নয়।

৩. ডেভফএস ২ (ওয়েবডিএভি) সহ সমস্যাগুলি

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

ওয়ার্নারের প্রতিক্রিয়া

  • davfs2 শুধুমাত্র সম্পূর্ণ ফাইল আপলোড করবে। এটি সাধারণত ইনক্রিমেন্টাল স্টাফ আরএসএনসি করতে পারে না এবং এটি আরএসএনসিটিকে খুব দক্ষ করে তোলে।

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

ওয়ার্নার নিম্নলিখিত পরামর্শ দিতে চলেছে

এই ক্ষেত্রে এটি একটি অসুবিধা হতে পারে। যখন rsync রিমোট হোস্টে কোনও ফাইল পড়ে, এটি অবশ্যই davfs2 দ্বারা প্রথমে স্থানীয় ক্যাশে স্থানান্তরিত করতে হবে (যদি এটি ইতিমধ্যে সেখানে না থাকে)। এটি প্রক্রিয়াটিকে সত্যই এবং অপ্রয়োজনীয় ধীর করে দিতে পারে। যেহেতু আপনার ক্ষেত্রে আরএসসিএনসি কেবল একটি পরিশীলিত অনুলিপি-প্রোগ্রাম হিসাবে কাজ করে, তার পরিবর্তে সিপি ব্যবহার করা ভাল। সিপিতে কেবলমাত্র ফাইলগুলি কপি করার জন্য একটি বিকল্প রয়েছে (-u) যা ড্যাভফএস 2 ফাইল সিস্টেমের (= স্মার্টড্রাইভ) ফাইলের চেয়ে নতুন এবং এটি ফাইলগুলি পড়ার দরকার নেই, তবে কেবল এমটাইমের মতো ফাইল মেটা ডেটা পড়ে reads

"সিপি -প্রু ডিরেক্টরি / টু / ব্যাকআপ ডেভ /" এর মতো একটি কমান্ড কাজটি করতে পারে। এটি ফাইল ডাউনলোড না করায় ধাঁধা দেয় (যেমন rsync পারে তবে আমি নিশ্চিত নই) (দয়া করে সিপি এবং আরএসএনসি-র ম্যানুয়ালগুলি দেখুন)।

বিকল্প?

@ অ্যান্থনের পরামর্শ অনুসারে, cp -uফাইলগুলি অনুলিপি করার জন্য আপনি এই পদ্ধতিটি ব্যবহার করতে পারেন । উপলব্ধি করে যে এই পদ্ধতিটি কেবলমাত্র একটি ফাইলের আকারের তুলনায় একটি ফ্যাক্টর হিসাবে দেখায়, তাই এটি সম্পূর্ণ নির্ভরযোগ্য নয়।

ফাইলগুলির তুলনা করার সময় আপনার এমন কিছু ব্যবহার করা উচিত যা কেবল পরিবর্তনের সময়ে দেখায় cp -pruভার্নার কেন এই থ্রেডে ব্যাখ্যা করেছেন :

মোড সময় নিয়ে ইস্যুতে অংশ

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

বিশুদ্ধরূপে চেকসাম ব্যবহার করে এমন একটি পদ্ধতির পরিবর্তনের সময়টিকে ঘিরে বিভিন্ন সমস্যার সমাধান দেওয়া আরও ভাল ফিট বলে মনে হচ্ছে:

$ rsync -avvz --omit-dir-times --checksum --human-readable --progress <local dir> <remote dir>

ওহে. ফাইলের নামগুলিতে কোনও বিশেষ অক্ষর নেই। ডিস্কে আমার ফাইলের নামটি কেবল "01_Track_1.mp3"। ডট উপসর্গটি সাধারণ ফাইল নামের অংশ নয়, অতিরিক্ত এক্সটেনশনও নেই (যেমন, .mp3.YVmFI9)। এছাড়াও নোট করুন যে প্রতিটি ফাইলই ব্যর্থ হয় না। ব্যর্থতার কোনও প্যাটার্ন আছে বলে মনে হয় না।
মাউন্টেনএক্স

এটি কি যথেষ্ট তথ্য? got file_sum recv_files(Some_Music_[1999]/Some_Music_[1999]Zuni_SongVarious_Artists24.mp3) rsync: mkstemp "/home/me/Cloud/Box/Music/Some_Music_[1999]/.Some_Music_[1999]Zuni_SongVarious_Artists24.mp3.1aWWRY" failed: Invalid argument (22) got file_sum
মাউন্টেনএক্স

অন্য উদাহরণ:got file_sum recv_files(Carlos/Dance/05-Tapestry-Carlos.mp3) rsync: mkstemp "/home/me/Cloud/Box/Music/Carlos/Dance/.05-Tapestry-Carlos.mp3.WeGbGS" failed: Invalid argument (22) got file_sum recv_files(Carlos/Dance/06-Dance-Turquoise_Dance-Carlos.mp3)
মাউন্টেনএক্স

@ মাউন্টেনএক্স - দেখুন আমার আপডেটটি আপনার সমস্যা কিনা। এছাড়াও আপনি কোন সংস্করণ rsyncব্যবহার করছেন? rsync --version
slm

rsync version 3.0.9 protocol version 30এবং আমি এখন আপনার আপডেট সমাধান পরীক্ষা করছি। ধন্যবাদ!
মাউন্টেনএক্স

3

Invalid argument (22)ত্রুটি বন্ধ করতে আমাকে rsync এর ডেভিফ গন্তব্যস্থলে এর টেম্প ফাইলগুলি তৈরি করা থেকে বিরত থাকতে হয়েছিল।

rsync --temp-dir=/tmp

আমি মনে করি যা ঘটেছিল তা হল rsync এর টেম্প ফাইল ফাইল শুরু হয় .এবং ডেভগুলি এর অনুমতি দেয় না। তাই আমি আরও এগিয়ে গিয়ে আরএসসিএনকে বলেছিলাম যে নামগুলি শুরু হয়ে উত্স ফাইলগুলি উপেক্ষা করুন .। যেহেতু আমি ব্যবহার করছি --delete, তাই lost+foundড্যাভস গন্তব্যটিতে ডিরেক্টরিটি মুছে ফেলার চেষ্টা না করার কথাও বলেছি ।

rsync --temp-dir=/tmp --exclude lost+found --exclude '.*'

আমি সাইগউইনে এই সমস্যাটির মুখোমুখি হয়েছিলাম এবং এই প্রশ্নটি ছিল শীর্ষ অনুসন্ধান ইঞ্জিনের হিট। গ্রহণযোগ্য উত্তরটি আমার পক্ষে কার্যকর হয়নি কারণ আমি ইন্টারনেট জুড়ে একটি রিমোট ফাইল সিঙ্ক্রোনাইজেশনে কাজ করছি সুতরাং আরএসসিএনসি ব্যবহার বাধ্যতামূলক ছিল। এই উত্তরের --temp-dir পরামর্শটি আমার জন্য সমাধান ছিল।
নিকক্র্যাব্রি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.