সোর্স ট্রি একটি মাউন্ট পয়েন্ট থাকলে ফাইলগুলিতে টাইম স্ট্যাম্প সংরক্ষণের জন্য কীভাবে RSSyncকে বলতে হয়


41

এই প্রশ্নের সাথে সম্পর্কিত

সমস্যার সংক্ষিপ্ত বিবরণ:

উত্স গাছের অভ্যন্তরে যখন মাউন্ট পয়েন্ট থাকে, তখন গাছটিকে টার্গেট করার জন্য অনুলিপি করা হলে সেই মাউন্ট পয়েন্টের ভিতরে থাকা ফাইলগুলিতে টাইম স্ট্যাম্পগুলি সংরক্ষণ করা হয় না -aবিকল্প ব্যবহার করার সময়ও

বিস্তারিত বিবরণ:

ধরুন এটি উত্স গাছ:

                       /home/                           /home/
                         |                                |
                        me/                             BACKUP/
                         |                                |
                    +----+----------+                +----+-------+
                    |    |          |                |    |       |
                 data/  foo.txt    boo.txt         data/ foo.txt boo.txt
                    |                                |
                   a.txt                           a.txt

যেখানে data/উপরে বাহ্যিক ইউএসবি ডিস্ক মাউন্ট করা হয়। সব কিছুই ext4ফাইল সিস্টেম। উত্সের সবকিছু আমার মালিকানাধীন me

BACKUP এছাড়াও একটি মাউন্ট পয়েন্ট, ব্যাকআপ ইউএসবি ডিস্ক হিসাবে ঘটেছে।

এই আদেশটি জারি করার পরে rsync -av --delete /home/me/ /home/BACKUP/, আমি এটি পেয়েছি /home/BACKUP/data/এবং এর নীচের সমস্ত কিছুতে বর্তমান সময়ের স্ট্যাম্প রয়েছে, যেন এই ফাইলগুলি এখন তৈরি করা হয়েছিল, এবং ফাইলগুলিতে টাইম স্ট্যাম্প নয় /home/me/data/। বাইরের অন্যান্য ফাইল এবং ফোল্ডারগুলিতে dataসময় স্ট্যাম্প সংরক্ষণ করা ঠিক আছে।

প্রশ্নটি: rsyncমাউন্ট পয়েন্টে এমনকি ফাইল এবং ফোল্ডারে সমস্ত ফাইল এবং ফোল্ডারে টাইম স্ট্যাম্প সংরক্ষণ করার জন্য এটি বলার জন্য উপরের সেটিংটিতে কীভাবে ব্যবহার করবেন ?

আমি ব্যাবহার করছি:

>uname -a
Linux 3.5.0-17-generic #28-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux

>rsync -v
rsync  version 3.0.9  protocol version 30

উত্তর:


45

থেকে man rsync:

   -t, --times                 preserve modification times

সম্পাদনা - এই উত্তরটির উন্নতি করার জন্য যেহেতু এটি ওপিকে কেন সহায়তা করে না তা অবিলম্বে সুস্পষ্ট নয়:

ওপি একটি ফাইল সিস্টেম থেকে অন্য ফাইলগুলিতে অনুলিপি করছে এবং সংরক্ষণ করতে চায় c-time। বেশিরভাগ লোকেরা c-time"তৈরির সময়" বলতে বোঝেন যা বেশিরভাগ ইউএনআইএক্স / লিনাক্স সিস্টেমে ভুল (উইন্ডোজ ফাইল সিস্টেমগুলি "সৃষ্টি" বা "জন্ম" সময় ট্র্যাক করে)।

বেশিরভাগ ক্ষেত্রে, ইউএনআইএক্স এবং লিনাক্সে, c-timeশেষ ইনোড ' সি ' হ্যাং রেকর্ড করার জন্য ব্যবহৃত টাইমস্ট্যাম্প । যদি কোনও বৈশিষ্ট্য আপডেট হয় তবে একটি ইনোড পরিবর্তন হয়:

c-timeনতুন ফাইল সিস্টেমে এলে ওপি তাদের ফাইলগুলির সংরক্ষণ করতে পারে না । নতুন ফাইল সিস্টেমে এই ফাইলগুলি তৈরি করা উপরে বর্ণিত শর্তগুলির মধ্যে একটি (ইনোড / ফাইলের সৃষ্টি)।

/ সম্পাদনা


9
ধন্যবাদ. আমি জানি। তবে দয়া করে প্রশ্নটি আবার মনোযোগ সহকারে পড়ুন। আমি ব্যবহার করেছিলেন -a: যেখানে বলা archive mode; equals -rlptgoD তজ্জন্য -tইতিমধ্যে অন্তর্ভুক্ত করা হয়।
নাসের

1
আপনি পরিবর্তন সময় সংরক্ষণ করার চেষ্টা করছেন? সিটিটাইম (স্থিতি) পরিবর্তনের জন্য "তৈরি" নয়
h3rrmiller

1
আমি চাই এটি এটি ঠিক একইভাবে কাজ করতে পারে যা মাউন্ট করা ডিস্কে নেই এমন ফাইলগুলিতে হয় does অর্থাত্ ls -lফাইলটিতে করার সময় যে একই সময়কার স্ট্যাম্পটি দেখেন তা রাখুন। এটি মাউন্ট পয়েন্টের মধ্যে নেই এমন ফাইলগুলিতে কাজ করে। তবে মাউন্ট পয়েন্টের ভিতরে থাকা সমস্ত ফাইলের টাইম স্ট্যাম্প রয়েছে যা ইঙ্গিত করে যে সেগুলি সবে তৈরি হয়েছিল। আপনি এই সময় যাই বলুন। আমি কেবল এটি উত্স ফাইলগুলিতে একই সময় স্ট্যাম্প ব্যবহার করতে চেয়েছিলেন। এখন তা হয় না। আমি চাই সর্বকালের দিকগুলি অনুলিপি করা উচিত। অর্থাত্ ফাইলটির একটি ক্লোন তৈরি করা উচিত। সৃষ্টির সময়, পরিবর্তনের সময় ইত্যাদি ...
নাসের

4
পরিবর্তনের সময় (সিটিটাইম) ইনোডে পরিবর্তনের পরে আপডেট হয় (যেমন: সৃষ্টি / অনুমতি পরিবর্তন / চলমান / ইত্যাদি)। কারণ আপনি একটি নতুন ইনোড তৈরি করছেন (কারণ আপনি কোনও ফাইল সিস্টেমের আওতায় ফাইলটি অনুলিপি করছেন (পৃথক ইনোড টেবিলগুলি) সিটিটাইম আপডেট হয়েছে around এর আশেপাশে কোনও উপায় নেই কারণ এটি ফাইলের নয়, ইনোডের পরিবর্তন। একবার দেখুন en.wikipedia.org/wiki/Stat_(system_call)#ctime
h3rrmiller

3
ls -lএমটাইম দেখায় (পরিবর্তন করুন) সিটিটাইম নয়
h3rrmiller

6

hr3 মিলার ইতিমধ্যে বলেছে যে, -a (বা - আর্কাইভ) -rlptgoD এর সমান এবং ইতিমধ্যে সিঙ্ক করার সময় অন্তর্ভুক্ত রয়েছে।

যাইহোক যখন rsync ডেটা অনুলিপি করে, যেমন। একটি এনএফএস / ফ্যাট 32 / এনটিএফএস মাউন্ট যেখানে ব্যবহারকারী এবং মালিক সংরক্ষণ করা ব্যর্থ হয়, আরএসসিএনসি সময় নির্ধারণের চেষ্টা করবে না। Rsync এরকম কিছু দিয়ে সতর্ক করবে

rsync: chown "/mnt/backup/postgres/hourly.0/primary/var" failed: Operation not permitted (1)

সুতরাং ব্যবহার করে ব্যবহারকারী এবং গোষ্ঠী সংরক্ষণ করা ছেড়ে দিন

-rlptD

পরিবর্তে

-rlptgoD

কেবলমাত্র এটি ব্যবহার করুন যখন মালিক এবং গোষ্ঠী সংরক্ষণ না করা আপনার পক্ষে একটি বিকল্প। দ্রষ্টব্য যে সিমলিঙ্কগুলি এবং অন্যান্য বৈশিষ্ট্যগুলি সংরক্ষণ করাও সেই আচরণকেও ট্রিগার করতে পারে। আপনি ব্যাকআপ নিতে চান এমন প্রতিটি rsync বৈশিষ্ট্য (-r -l -p -t -g -o -D) এর জন্য ম্যান পৃষ্ঠাটি আপনাকে যেতে হবে।


-2

আমি ব্যবহার করি rsync -azএবং নিশ্চিত জিনিস এটি আমার পরিবর্তনের সময়টি সংরক্ষণ করে। আমি এখনই এটি ডাবল-চেক করেছি।


2
এর কারণ -a( --archive) অন্তর্ভুক্ত রয়েছে -t
হিমাইল

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