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


12

আমি আমার মেইল ​​ডিরেক্টরিটি একটি ইউএসবি কীতে ব্যাকআপ করতে চাই। তবে, আমার আইএমএপিতে একটি অদ্ভুত নামকরণের কনভেনশন রয়েছে যে কোনও কিছুতে একটি কোলন (:) চরিত্র অন্তর্ভুক্ত রয়েছে। যেহেতু ইউএসবি একটি উইন্ডো ফর্ম্যাটে রয়েছে, তাই এই ফাইলটি তৈরি করতে ব্যয় করতে আরএসআইসি ব্যর্থ। আরএসসিএনকি চালানোর সময় কোলন চরিত্রটিকে আন্ডারস্কোর দ্বারা প্রতিস্থাপন করার কোনও উপায় আছে কি? (বা অন্য সরঞ্জামের সাথে একই সিঙ্ক্রোনাইজেশন করতে চান?)

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

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

ধন্যবাদ

উত্তর:


8

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


6

সর্বাধিক সরল পদ্ধতি হল ফাইলের নামগুলি রূপান্তর করতে ফাইল সিস্টেম স্তরটি উত্তোলন করা। উবুন্টু 12.04 সাল থেকে, এখানে একটি ফুস ফাইল সিস্টেম রয়েছে যা ফাইলের নামগুলিকে নামগুলিতে রূপান্তর করে যা উইন্ডোজ এর ভিএফএটি সমর্থন করে: ফিউজ-পিক্সিকোভাল ফিউজ-পিক্সিকোভেল ইনস্টল করুন

sudo mount.posixovl /media/sdb1
chown guillaume /media/sdb1
rsync -au ~/mail /media/sbd1/

বা রুট অ্যাক্সেসের প্রয়োজন এড়াতে:

mkdir ~/mnt
/sbin/mount.posixovl -S /media/sdb1 ~/mnt
rsync -au ~/mail ~/mnt/

ফাইলের নাম যে, VFAT গ্রহণ করে না অক্ষর যেমন এনকোডেড থাকে %(XX)যেখানে XXহেক্সাডেসিমেল সংখ্যা আছে। POSIXovl 1.2.20120215 অনুসারে, সাবধান হন যে কোনও ফাইলের নাম %(3A)নিজের মতো করে এনকোড করা হয়েছে এবং এটির মতোই ডিকোড হবে :, সুতরাং ফর্মের সাবস্ট্রিংগুলি সহ ফাইলের নাম থাকলে সংঘর্ষের ঝুঁকি রয়েছে %(XX)

সাবধান হন যে পসিআইক্সভল ফাইলগুলির নামগুলি যে খুব দীর্ঘ with যদি এনকোড করা নামটি 255 টি অক্ষরে ফিট না করে তবে ফাইলটি সংরক্ষণ করা যাবে না।

POSIXovl কল করা ফাইলগুলিতে ইউনিক্স অনুমতি এবং মালিকানা সঞ্চয় করে .pxovl.FILENAME


নিম্নলিখিত বাশ ≥4 লিপিটি অনুলিপি ~/mail/foo:barকরে /media/usb99/mail/foo_barএবং একইভাবে সমস্ত ফাইলের অধীনে ~/mail। গন্তব্য গাছটিতে ইতিমধ্যে বিদ্যমান ফাইলগুলি এবং উত্সের চেয়ে পুরানো নয় যেগুলি এড়িয়ে যায় are

#!/bin/bash
set -e
shopt -s dotglob globstar
for source in "$HOME"/mail/**/*; do
  target=/media/usb99/${source#"$HOME"/}
  target=${target//:/_}
  if [[ -d $source ]]; then
    mkdir -p -- "$target"
  elif [[ $target -ot $source ]]; then
    cp -p -- "$source" "$target"
  fi
done

এই স্ক্রিপ্টটি ছোটখাট সংশোধনসহ zsh অধীনে কাজ করে: প্রতিস্থাপন shopt -s dotglob globstarদ্বারা setopt dot_globএবং [[ $target -ot $source ]]দ্বারা [[ ! -e $target || $target -ot $source ]]


এখানে একটি জেডএস টু-লাইনার (তিনটি যদি আপনি অটোলোডগুলি গণনা করেন)। এটি খাটো, তবে মোটামুটি উন্নত এবং খুব পাঠযোগ্য নয়।

autoload zargs zmv
zargs -- ~/mail/**/*(/e\''REPLY=/media/usb99/${${REPLY#$HOME/}//:/_}'\') -- mkdir -p --
zmv -C -Q -o -pu '~/mail/(**/)(*)(.)' '/media/usb99/mail/${1//:/_}${2//:/_}'
  • zargsলাইন সমতূল্য mkdir -p ~/mail/**/*(…)ছাড়া এটি বোমা মেরে না যদি ডিরেক্টরির নাম ক্রমযোজিত দৈর্ঘ্য অত্যন্ত দীর্ঘ। যে লাইনটি প্রয়োজনীয় ডিরেক্টরিগুলি তৈরি করে।
  • ~/mail/**/*(/)অধীনে সমস্ত ডিরেক্টরিতে প্রসারিত হয় ~/mail(কেবলমাত্র (/)শেষে শেষে ডিরেক্টরিগুলি)।
  • (/e\''…'\')কেবলমাত্র ডিরেক্টরি নির্বাচন করে এবং প্রতিটি ফাইলের নাম রূপান্তর করতে '…' এর মধ্যে কোডটি কার্যকর করে যা REPLYভেরিয়েবলে সঞ্চিত থাকে ।
  • ${${REPLY#$HOME/}//:/_}উত্স ডিরেক্টরিটির সাথে সম্পর্কিত উপসর্গটি সরিয়ে দেয় এবং এতে পরিবর্তন :হয় _
  • zmv -C প্রতিটি অপারেন্ডকে প্রসারিত করে প্রাপ্ত ফাইলের নামের সাথে প্রথম ফাইলটির সাথে মিলিত প্রতিটি ফাইলের (একটি zsh প্যাটার্ন) অনুলিপি করে।
  • -o -puইউটিলিটি পাস -puকরার জন্য বলেছে cp, যাতে অনুমতিগুলি সংরক্ষণ করা এবং কেবলমাত্র আপডেট হওয়া ফাইলগুলি অনুলিপি করা। (আমরা zsh কে আপডেট চেক সম্পাদন করতে বলতে পারি; এটি কিছুটা দ্রুত তবে আরও ক্রিপ্টিক হবে))
  • (.)শুধুমাত্র নিয়মিত ফাইল নির্বাচন করে। -Qবলে যে এটি গ্লোব কোয়ালিফায়ার হিসাবে পার্স করা উচিত এবং এর .চারপাশে প্রথম বন্ধনীরূপে নয় বরং এটি একটি সাফল্যের ইঙ্গিত দেয়।
  • $1এবং $2প্রতিস্থাপন পাঠ্যের সাথে প্রথম বন্ধনীযুক্ত এক্সপ্রেশন (**/)এবং মেলে *। ( **প্রথম বন্ধনীতে যদি শত্রুতে থাকে তবে এটি শূন্য বা আরও বেশি উপ-ডিরেক্টরি স্তর হিসাবে এর বিশেষ অর্থ হারাবে **/))

আমি প্রথমে প্যাক্সটি ব্যবহার করার কথা ভেবেছিলাম , এটি একটি সংরক্ষণাগার সরঞ্জাম (এখানে পাস-থ্রো মোডে ব্যবহারের উদ্দেশ্যে) এতে একটি ফাইলের নামকরণ বৈশিষ্ট্য রয়েছে (এর -sবিকল্প)। যাইহোক, -sএবং -uবিকল্পগুলি একসাথে কাজ করে না ( প্যাক্সের পসিক্স সংজ্ঞাটি আক্ষরিকভাবে বলেছে যে -uগন্তব্য ট্রিতে একই নামের একটি ফাইল অবশ্যই পরীক্ষা করা উচিত, -sউবুন্টুতে প্যাক্স প্রয়োগের পরিবর্তে উল্লিখিত অক্ষরটি অনুসরণ করে আক্ষরিক পরিবর্তে থেকে কার্যকররূপে)। পুনরায় নামকরণ করা হার্ড লিঙ্কগুলি তৈরি করতে এটির ব্যবহার করা এবং তারপরে হার্ড লিঙ্কগুলি ( rsync -auবা এর সাথে pax -rw -pp -u) অন্য মিডিয়ায় অনুলিপি করা সম্ভব তবে এটি তার মূল্য হিসাবে বেশি ঝামেলা অনুভব করে।

cd ~/mail
mkdir -p /media/usb99/mail
pax -rw -l -pp -s '!:!_!g' . ../mail.colonless
rsync -au ../mail.colonless/ /media/usb99/mail/

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

প্যাক্স নামে একটি একক প্যাকেজ যুক্ত করে এটি কাজ করে।
গিলিয়াম কোটি é

এটি কোনও ফলাফল দেয় না, আমি কী চলছে তা দেখার জন্য একটি -v বিকল্প যুক্ত করার চেষ্টা করি। মনে হচ্ছে প্রতিবারের মতো সমস্ত কিছু অনুলিপি করা হচ্ছে। আরএসআইএনসি-র পয়েন্টটি ইনক্রিমেন্টাল হতে হবে, যা আমার অনেক সময় বাঁচাতে সক্ষম হয়েছিল যখন আমার কাছে প্রচুর ফাইলের মাঝে কয়েকটি পরিবর্তিত ফাইল থাকে।
গিলিয়াম কোট

মনে হচ্ছে এটি আমার নির্দিষ্ট পথের নীচে একটি 'হোম' ডিরেক্টরি তৈরি করছে। এটি স্ক্রিপ্টে ডিরেক্টরি পরিবর্তন করা এড়াতে সুপারিশ করা হয়েছে, সেই সমস্ত ডিরেক্টরি তৈরির বিষয়টি এড়িয়ে যাওয়ার আরও কি কোনও সম্ভাবনা আছে?
গিলিয়াম কোটি é

এটি দ্বিতীয় পাসে পাঁচ মিনিট সময় নেয় যেখানে সবকিছু অভিন্ন ছিল। আরএসআইএনসি লাগত মাত্র কয়েক সেকেন্ড। এটিকে বর্ধিত করার জন্য কোনও বিকল্প নির্দিষ্ট করা দরকার?
গিলিয়াম কোটি

-1

আমি আমার ইউএসবি মেমরি স্টিক এবং মোবাইল ইউএসবি ডিস্ক দিয়ে যা করি তা তাদের 2 টি পার্টিশন দিয়ে বিভাজন করা হয়: একটি FAT32 এবং একটি ext4 একটি। প্রথমটি আমি নন-লিনাক্স ব্যবহারকারীদের সাথে ডেটা বিনিময় করতে ব্যবহার করতে পারি, দ্বিতীয়টি আমার উবুন্টু সিস্টেমগুলির সাথে আমার ব্যক্তিগত ব্যবহারের জন্য (এবং সম্ভবত অন্যান্য লিনাক্স ব্যবহারকারীদের সাথে বিনিময় করার জন্য) ব্যবহার করতে পারি। একটি ext4 বিভাজনে, আপনার ":" সমস্যা হবে না।


আমি চাই আমার উইন্ডোজ কম্পিউটারে কোনও তথ্য দরকার হলে আমার ব্যাকআপটি যে কোনও জায়গায় পঠনযোগ্য। যদি তা না হয় তবে আমি ইউনিক্স কীটি একটি ইউনিক্স ফাইল সিস্টেমে পুনরায় ফর্ম্যাট করতে পারি। এজন্য আমি প্রতিস্থাপন সম্পর্কে জিজ্ঞাসা করছি।
গিলিয়াম কোটি

ওয়েল, এটা হয় যদি আপনি কিছু টুলস বা ফাইলসিস্টেম ড্রাইভার ইনস্টল Windows এ অন্তত কোনো ext2 / ext3 পড়তে সম্ভব। আপনি কি এটি প্রতিটি উইন্ডোজ সিস্টেমে বা কেবল নিজের সিস্টেমে (যেখানে আপনার প্রয়োজনীয় সরঞ্জামগুলির প্রয়োজন হলে ইনস্টল করতে পারেন) এটি পড়তে সক্ষম হতে চান?
জানক

বিটিডাব্লু: তত্ত্বের ভিত্তিতে এটি এনটিএফএস সিস্টেমেও সংরক্ষণ করা সম্ভব হওয়া উচিত, তবে বেশিরভাগ উইন্ডোজ অ্যাপ্লিকেশন (মাইক্রোসফ্টের বেশিরভাগ সহ) এনটিএফএসকে সঠিকভাবে সমর্থন করে না ...: পি
জ্যানসি

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

-2

আপনি tarএকটি সংরক্ষণাগার তৈরি করতে ব্যবহার করতে পারেন। এইভাবে আপনাকে নাম পরিবর্তন করতে হবে না এবং আপনি যে ফাইল ফাইল-সিস্টেম চান সেটিকে এটি সংরক্ষণ করতে পারবেন।


আমি জিপ ফাইল বা একটি টিজিজেডের সাহায্যেও এটি করতে পারতাম তবে প্রতিবার পরিবর্তন হয়নি এমন ফাইলটি আবার লিখতে চলেছে। যেহেতু মিডিয়াটি সীমিত সংখ্যক লেখার হিসাবে এবং আমি বেশ কয়েকটি গিগ ডেটা পেয়েছি, তাই নতুন 1 কেবি ফাইল যুক্ত হওয়ার কারণে আমি পুরো বিষয়টি পুনরায় লিখতে এড়াতে চাই।
গিলিয়াম কোটি

সাম্প্রতিক ফ্ল্যাশ মেমরির পুনর্লিখনগুলি "লক্ষ লক্ষ" বা সাধারণত কমপক্ষে কয়েকশো হাজারে সীমাবদ্ধ থাকে। আমি সন্দেহ করি আপনি অনেকগুলি ব্যাকআপ নেওয়ার পরিকল্পনা করছেন। ;)
JanC

2
-1 -azv একটি সংরক্ষণাগার তৈরি করে না, এটি একটি সংরক্ষণাগার মোড অনুলিপি করে যার অর্থ এটি ফাইলের বৈশিষ্ট্যগুলি বজায় রাখে
জোও পিন্টো

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

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