এটি হল fssync কমান্ড যা আমাদের একাধিক বিনামূল্যের অনলাইন ওয়ার্কস্টেশন যেমন উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটর ব্যবহার করে OnWorks ফ্রি হোস্টিং প্রদানকারীতে চালানো যেতে পারে।
কার্যক্রম:
NAME এর
fssync - ফাইল সিস্টেম সিঙ্ক্রোনাইজেশন টুল (1-ওয়ে, SSH এর উপর)
সাইনোপিসিস
fssync -d db -r শিকড় [পছন্দ...] নিমন্ত্রণকর্তা
বর্ণনাঃ
fssync হল একটি 1-ওয়ে ফাইল-সিঙ্ক্রোনাইজেশন টুল যা ইনোড ট্র্যাক করে এবং একটি স্থানীয় রক্ষণাবেক্ষণ করে
ফাইলের ডাটাবেস যা দূরবর্তী দিকে রয়েছে, এটি করতে সক্ষম করে তোলে:
· দক্ষতার সাথে বিপুল সংখ্যক ডির/ফাইল পরিচালনা করুন
· পুনঃনাম/চালনা এবং হার্ড-লিঙ্ক সনাক্ত করুন
এটির লক্ষ্য হল নেটওয়ার্ক ট্র্যাফিক ন্যূনতম করা এবং একটি ফাইল সিস্টেমের প্রতিটি বিবরণ সিঙ্ক্রোনাইজ করা:
· সব ধরনের ইনোড: ফাইল, ডির, ব্লক/ক্যারেক্টার/ফিফো, সকেট, সিমলিংক
· হার্ড লিঙ্ক সংরক্ষণ
· পরিবর্তনের সময়, মালিকানা/অনুমতি/ACL, বর্ধিত বৈশিষ্ট্য
· স্পার্স ফাইল
অন্যান্য বৈশিষ্ট্য:
এটি সিঙ্ক্রোনাইজেশন থেকে ফাইল বাদ দিতে কনফিগার করা যেতে পারে
· fssync যেকোন সময় বাধাগ্রস্ত এবং পুনরায় চালু করা যেতে পারে, এটিকে এলোমেলো ব্যর্থতার প্রতি সহনশীল করে তোলে
(যেমন নেটওয়ার্ক ত্রুটি)
· ফাইলের বিষয়বস্তু সিঙ্ক্রোনাইজ করার অ্যালগরিদম ভিএম ইমেজের মতো বড় ফাইলগুলি পরিচালনা করার জন্য ডিজাইন করা হয়েছে
দক্ষতার সাথে, নির্দিষ্ট-আকারের পরিবর্তিত ব্লকগুলি জায়গায় আপডেট করে
Fssync-এর প্রধান ব্যবহার হল হার্ডওয়্যার ব্যর্থতার ক্ষেত্রে ডেটা ক্ষতি প্রতিরোধ করা, যেখানে RAID1 আছে
সম্ভব নয় (যেমন ল্যাপটপে)।
On btrfs [১] ফাইল সিস্টেম, fssync এর একটি দরকারী বিকল্প Btrfs পাঠান (এবং গ্রহণ করা)
কমান্ড, ফিল্টারিং ক্ষমতার জন্য ধন্যবাদ। এটি Btrfs স্ন্যাপশটিংয়ের সাথে একত্রিত করা যেতে পারে
একটি সম্পূর্ণ ব্যাকআপ সমাধানের জন্য গন্তব্যের দিকে।
, USAGE
ব্যবহার fssync --help বিকল্পগুলির সম্পূর্ণ তালিকা পেতে।
মনে রাখা সবচেয়ে গুরুত্বপূর্ণ বিষয় হল স্থানীয় ডাটাবেসটি অবশ্যই যা আছে তার সাথে মেলে
গন্তব্য হোস্টে:
· গন্তব্য হোস্টে অনুলিপি করা ফাইলগুলিকে সংশোধন করা উচিত নয়৷ এবং কিছুই উচিত নয়
গন্তব্য ডিরেক্টরির ভিতরে ম্যানুয়ালি তৈরি করা হবে। আপনি যদি এখনও ডেটা অ্যাক্সেস করতে চান
রিমোট হোস্ট, আপনার এটি শুধুমাত্র পঠনযোগ্য বাইন্ড মাউন্টের মাধ্যমে করা উচিত (লিনাক্স প্রয়োজন >=
2.6.26).
· আপনার কাছে গন্তব্য প্রতি 1টি ডাটাবেস থাকতে হবে, যদি আপনি একইটির কয়েকটি কপি রাখার পরিকল্পনা করেন
উৎস ডিরেক্টরি।
তাকানো -c বিকল্প যদি আপনি ভাবছেন যে আপনার ডাটাবেস গন্তব্য ডিরেক্টরির সাথে মেলে কিনা।
fssync এর প্রথম রান:
· সবচেয়ে সহজ উপায় হল fssync-কে সবকিছু করতে দেওয়া। একটি অ-বিদ্যমান ফাইল পাথ উল্লেখ করুন -d
বিকল্প এবং একটি খালি বা অ-বিদ্যমান গন্তব্য ডিরেক্টরি (দেখুন -R বিকল্প)। fssync করবে
স্বয়ংক্রিয়ভাবে ডাটাবেস তৈরি করে এবং দূরবর্তী হোস্টে সমস্ত dirs/ফাইল অনুলিপি করে।
একটি দ্রুততর উপায় হতে পারে অন্য উপায়ে প্রাথমিক অনুলিপি করা, যেমন a এর কাঁচা কপি
বিভাজন আপনি যদি নিশ্চিত হন যে উৎস এবং গন্তব্য ঠিক একই,
আপনি নির্দিষ্ট করে ডাটাবেস আরম্ভ করতে পারেন - হোস্ট হিসাবে। যদি ইনোড সংখ্যা একই হয়
উভয় দিকে, যদি ব্লক স্তরে ডেটা অনুলিপি করা হয় তবে আপনি পরিবর্তন করতে পারেন
আপনি যখন গন্তব্যে ডিবি শুরু করছেন তখন উত্স বিভাজন করুন এবং ফিরে যান
স্থানীয়ভাবে ডিবি।
একটি ফিল্টার সহ fssync এর চারপাশে মোড়ানোর একটি উদাহরণ এখানে পাওয়া যাবে উদাহরণ/fssync_home
fssync কখনই অন্য ফাইল সিস্টেমে ডিরেক্টরি অবতরণ করে না। মাউন্ট পয়েন্ট দ্বারা মুখোশযুক্ত ইনোড
এছাড়াও বাদ দেওয়া হয়েছে, তাই আপনি যদি চান তাহলে সেগুলিকে সাময়িকভাবে আনমাউন্ট করা উচিত
সিঙ্ক্রোনাইজড বাইন্ড মাউন্ট থেকে সিঙ্ক্রোনাইজ করে একই ফলাফল অর্জন করা যেতে পারে।
আরও দেখুন কিছুই না গোল্লা সুইচিং আপনার যদি এনক্রিপশনের প্রয়োজন না হয় এবং আপনি চান তাহলে প্যাচ করুন
আপনার SSH সংযোগের গতি বাড়ান।
কেমন IT WORKS
fssync দূরবর্তী দিকে থাকা সমস্ত dirs/ফাইলের একটি একক SQLite টেবিল বজায় রাখে। প্রতিটি
সারিটি একটি পাথের সাথে মেলে, এর ইনোড (স্থানীয় দিকে), অন্যান্য মেটাডেটা (দূরবর্তী দিকে) এবং একটি
চেক করা হয়েছে পতাকা।
যখন চলমান, fssync সমস্ত স্থানীয় ডাইর/ফাইলের মাধ্যমে এবং প্রতিটি পথের জন্য পুনরাবৃত্তিমূলকভাবে পুনরাবৃত্তি করে
যে উপেক্ষা করা হয় না (দেখুন -f বিকল্প), এটি কি করতে হবে তা ডিবিকে জিজ্ঞাসা করে। যদি ইতিমধ্যে
চেক করা হয়েছে, পাথ অবিলম্বে এড়িয়ে যাওয়া হয়. যখন একটি পথ সিঙ্ক্রোনাইজ করা হয়, এটি হিসাবে চিহ্নিত করা হয়
চেক করা হয়েছে. শেষে, সব সারি যে না চেক করা হয়েছে এমন পথের সাথে মিলে যায় যা বিদ্যমান নেই
আর একবার তারা দূরবর্তী দিকে মুছে ফেলা হয়, সব চেক করা হয়েছে পতাকা রিসেট করা হয়।
ব্যর্থতা সহ্য
আসলে, fssync এর প্রয়োজন নেই যে ডাটাবেসটি গন্তব্যের সাথে পুরোপুরি মেলে। এটা
a দ্বারা সৃষ্ট কোনো বাধাগ্রস্ত সিঙ্ক্রোনাইজেশন পুনরুদ্ধার করার জন্য কিছু পার্থক্য সহ্য করে
নেটওয়ার্ক ব্যর্থতা, একটি ফাইল অপারেশন ত্রুটি, বা একটি অপারেটিং সিস্টেম ক্র্যাশ ছাড়া অন্য কিছু
স্থানীয় হোস্টের (বা পাওয়ার ব্যর্থতার মতো অনুরূপ কিছু)।
বেশিরভাগ ক্ষেত্রে, এটি দূরবর্তী হোস্ট দ্বারা করা হয়, যা স্বয়ংক্রিয়ভাবে তৈরি (বা ওভাররাইট)
প্রয়োজনে প্রত্যাশিত ধরনের একটি ইনোড। একমাত্র ব্যতিক্রম দূরবর্তী ইচ্ছা
একটি অ-খালি ডিরেক্টরি নিজেই মুছে ফেলুন। বেশিরভাগ জটিল ক্ষেত্রে, fssync জার্নালাইজ করে
ডাটাবেসের অপারেশন: ব্যর্থতার ক্ষেত্রে, fssync পরবর্তীতে পুনরুদ্ধার করতে সক্ষম হবে
সুসংগত.
জাতি পরিবেশ
একটি রেস অবস্থার মানে হল যে স্থানীয় হোস্টের অন্যান্য প্রক্রিয়াগুলি ইনোডগুলিকে সংশোধন করছে
fssync সিঙ্ক্রোনাইজ করছে। fssync যেকোনো ধরনের রেস কন্ডিশন পরিচালনা করে। আসলে, fssync আছে
বেশিরভাগ ক্ষেত্রে কিছুই করার নেই।
যখন একটি রেস কন্ডিশন হয়, fssync গ্যারান্টি দেয় না যে দূরবর্তী ডেটা a তে রয়েছে
সামঞ্জস্যপূর্ণ রাষ্ট্র। প্রতিটি সিঙ্ক সর্বদা বিদ্যমান অসঙ্গতিগুলিকে সংশোধন করে তবে পরিচয় করিয়ে দিতে পারে
অন্যান্য, তাই fssync ডাটাবেসগুলির হট ব্যাকআপের জন্য উপযুক্ত নয়।
Btrfs-এর মাধ্যমে, আপনি উৎসের পাশে স্ন্যাপশট করে ধারাবাহিকতা পেতে পারেন।
অনুরূপ প্রকল্প
একটি স্থানীয় ডাটাবেস বজায় রাখার ধারণা আসলে থেকে আসে csync2 [৩]। আমি প্রায় ছিল
যখন আমি বুঝতে পারি যে আমার সত্যিই এমন একটি টুল দরকার যা সর্বদা এর নাম পরিবর্তন/চালগুলি সনাক্ত করে
বড় ফাইল। তাই আমি fssync কে csync2 এর আংশিক পুনর্লিখন হিসাবে দেখি, ইনোড ট্র্যাকিং এবং
দ্বিমুখী সিঙ্ক্রোনাইজেশন ছাড়াই। স্থানীয় ডাটাবেস সত্যিই fssync এবং csync2 তৈরি করে
সুপরিচিত থেকে দ্রুত rsync [4]।
onworks.net পরিষেবা ব্যবহার করে অনলাইন fssync ব্যবহার করুন