একাধিক উত্স ফোল্ডারগুলি কীভাবে সিএসএন করবেন


34

আমি একাধিক উত্সকে সিএসএন করতে চাই এবং আমি এটি অর্জনের সর্বোত্তম উপায়টি অবাক করি।

যেমন

/etc/fstab
/home/user/download

আমি 3 টি সমাধান সম্পর্কে ভেবেছিলাম:

  • সমাধান 1

rsync এ একাধিক কল

rsync -a /etc/fstab bkp
rsync -a /home/user/download bkp

কন: একত্রিত স্থিতি থাকা আরও শক্ত

  • সমাধান 2

একটি tobackupফোল্ডার তৈরি করুন যাতে সিমিলিংক থাকে এবং -Lবিকল্পগুলি ব্যবহার করে

sync -aL /home/user/tobackup bkp

কন: ব্যাকআপের বিষয়বস্তুতে অবশ্যই প্রতিলিপি থাকতে হবে না

  • সমাধান 3

ফাইলগুলিকে ব্যাকআপে স্থানান্তরিত করুন এবং আসল অবস্থানে সিমিলিংক তৈরি করুন

rsync -a /home/user/tobackup bkp

কন: কিছু ম্যানুয়াল কনফিগার

আপনি কোনটি সুপারিশ করবেন?

একটি ভাল উপায় আছে কি ?


উত্তর:


33

আপনি একাধিক উত্স আর্গুমেন্ট পাস করতে পারেন।

rsync -a /etc/fstab /home/user/download bkp

এই সৃষ্টি bkp/fstabএবং bkp/downloadআলাদা কমান্ড আপনার দেওয়া চাই। পরিবর্তে উত্স কাঠামো সংরক্ষণ করা বাঞ্ছনীয় হতে পারে। এটি করতে, /উত্স হিসাবে ব্যবহার করুন এবং কোন ফাইল অনুলিপি করতে হবে তা নির্দিষ্ট করতে অন্তর্ভুক্ত-বিধি বিধান ব্যবহার করুন । এই কাজটি করার দুটি পদ্ধতি আছে:

  • ডিরেক্টরিগুলির /***শেষে যখন আপনি পুরো ডিরেক্টরি গাছটি অনুলিপি করতে চান তখন প্রতিটি ফাইলের পাশাপাশি প্রতিটি ডিরেক্টরি উপাদানকে স্পষ্টভাবে অন্তর্ভুক্ত করুন :

    rsync -a \
        --include=/etc --include=/etc/fstab \
        --include=/home --include=/home/user --include='/home/user/download/***' \
        --exclude='*' / bkp
    
  • সমস্ত শীর্ষ স্তরের ডিরেক্টরি অন্তর্ভুক্ত করুন /*/(যাতে rsync অতিক্রম করবে /etcএবং /homeফাইলগুলি অনুলিপি করার জন্য খুঁজবে) এবং দ্বিতীয় স্তরের ডিরেক্টরিগুলি /*/*/(এর জন্য /home/user) সহ অন্তর্ভুক্ত করুন, তবে কোনও ডিরেক্টরি অনুলিপি না করা ডিরেক্টরিগুলি সরিয়ে ফেলুন। এটি আরও সুবিধাজনক কারণ আপনার পিতামাতাকে সুস্পষ্টভাবে তালিকাভুক্ত করতে হবে না। এমনকি আপনি --prune-empty-dirs --include='*/'স্তরগুলির সংখ্যা গণনা করার পরিবর্তে ব্যবহার করতে পারেন , তবে এটি এখানে ব্যবহারিকভাবে কার্যকর নয় কারণ অন্তর্ভুক্ত বিধিগুলির মধ্যে কোনওটি বাইরের /etcএবং কোনওটির সাথে মেলে না এমন যদিও rync ডিরেক্টরিগুলি অন্বেষণ করতে পুরো ফাইল সিস্টেমকে অতিক্রম করবে /home/user/download

    rsync -a --prune-empty-dirs \
        --include='/*/' --include='/*/*/' \
        --include=/etc/fstab \
        --include='/home/user/download/***' \
        --exclude='*' / bkp
    

1
দুর্দান্ত, তবে কীভাবে ডিরেক্টরি কাঠামো বিকেপিতে রাখবেন?
রডরিগো

মানে, বিকেপি / ইত্যাদি / fstab এবং বিকেপি / হোম / ইউজার / ডাউলনেড? অথবা হতে পারে / বিকেপি / এফস্টাব এবং বিকেপি / ডাউনলোড?
রদ্রিগো

@ রড্রিগো আমি আমার উত্তরটি সম্পাদনা করেছি
গিলস 'খারাপ হয়ে যাওয়া বন্ধ করুন'

13

আমি গিলসের উত্তরটি সত্যিই পছন্দ করি তবে আমার যুক্তিতে আমি যুক্ত করতে চাই যে --relativeবিকল্পের সাথে একাধিক উত্সের যুক্তিগুলি পাস করার মাধ্যমে ডিরেক্টরি কাঠামো সংরক্ষণের সময় একাধিক ফোল্ডার সিঙ্ক করার প্রয়োজনীয়তা সবচেয়ে ভালভাবে পূরণ করা যায় ।

এই ক্ষেত্রে, আমরা নিম্নরূপ কিছু পেতে পারি:

rsync -aR /etc/fstab /home/user/download bkp

যার ফলস্বরূপ bkp/etc/fstabএবং bkp/home/user/download

এ সম্পর্কে সর্বোত্তম অংশটি হ'ল (আমি বিশ্বাস করি rsync v। 2.6.7 থেকে) আমরা সংক্ষেপে নিয়ন্ত্রণ করতে পারি যে আমরা কতটা ডিরেক্টরি কাঠামো রিসিভারে প্রতিলিপি করতে চাই।
( --relativeবিকল্পটিতে ডকুমেন্টেশন দেখুন এখানে )

সুতরাং যেমন যদি আমরা এই কাজ

rsync -aR /home/./user1/download /home/./user2/download bkp

আমরা bkp/user1/downloadএবং শেষ হবে bkp/user2/download


2

এটিও কাজ করে - কোঁকড়া ধনুর্বন্ধনী, কমা দ্বারা পৃথক করা উত্সের তালিকা।

rsync -vap --progress --stats root@server:{/etc,/root/backups,/home/ultralazer} /mnt/bigdrive

আপনি যখন সিপি এবং কিছু অন্যান্য ইউটিলিটি সহ কোঁকড়া ধনুর্বন্ধনী sytnax প্রার্থনা করেন তখন কিছুটা অনুরূপ:

cp -vr /etc /root/backups /home/{ultralazer,zerocool} /mnt/bigdrive

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