همخوان کردن همه‌چیز در همه جا

دیگر زمانی که تنها چیز لازم، یک کامپیوتر بود و یک کپه فلاپی دیسک و سی‌دی گذشته است. امروزه شما هر جای ممکن یک کامپیوتر می‌بینید، کامپیوتر توی خانه، لپ‌تاپ شما و همسرتان، کامپیوتر محل کار و ... هر لحظه یک جایی و پشت یکی از این سیستم‌ها نشسته‌اید و می‌خواهید فایل‌های بقیه کامپیوترهایتان همه جا در دسترس‌تان باشد. فرض کنید روی یک پروژه دارید کار می‌کنید و ساعات زیادی از روز و در جاهای مختلف به آن مشغولید، در این‌صورت، همخوان کردن فایل‌هایی در طول یک روز آن‌ها را تغییر می‌دهید، خودش مشکل بزرگی است.
کد خبر: ۲۱۷۴۰۸

دمِ دست‌ترین راه حل،‌ حمل کردن یک درایو USB است، معمولاً امن‌ترین راه برای حفظ اطلاعات نیز به‌حساب می‌آید، اما همیشه مفید نیست. سرورها معمولاً داخل انبارهایی هستند که حسابی قفل و بست دارند و نمی‌توانید پشت آن‌ها USB بزنید. راه حل دیگر، استفاده از دستور scp است که به‌کمک آن می‌توان فایل‌ها را در شبکه منتقل کرد، مثلا:

scp -rP /home/me/Documents ?

me@192.168.0.2:/home/me/

راه حل مفیدی است، منتها عیبش این است که اگر هر دو فایل در دو سیستم تغییر کرده باشند، در این‌صورت باید بیخیال یکی شوید. برای جلوگیری از این‌کار هم مجبورید هر سری که تغییری اعمال کردید، از این دستور استفاده کنید که کار منطقی‌ای به نظر نمی‌رسد و وقت‌گیر است. ضمن این‌که فایلی که در مقصد پاک شد، ‌دیگر قابل برگشت نیست.

راه حل نهایی، استفاده از سیستم‌های کنترل نسخه است که به کمک آن بتوان گزارش تغییرات فایل‌ها را هم داشت. Git و Bazaar دو گزینه  محبوب برای این کار به حساب می‌آیند. یادگیری استفاده از آن‌ها کمی سخت است اما اگر کار کردن با آن را یاد بگیرید، مفیدبودنشان به سخت بودنشان می‌چربد.

می‌توانید git را از کتابخانه‌های بسته  نرم‌افزاری آزاد لینوکس دانلود و نصب کنید. نصب آن طی یک مرحله انجام می‌شود. بعد از آن، کافی است مراحل زیر را دنبال کنید:

بیایید فرض کنید که من دو کامپیوتر دارم با آدرس‌های IP 192.168.0.1 و 192.168.0.2، روی کامپیوتر1 شروع می‌کنم و در ترمینال دستورات زیر را می‌زنم:

 

cd /home/me/Documents/shared

git init

git add *

git commit –a

در دستور بالا من دایرکتوری shared را به‌عنوان دایرکتوری‌ای که در آن می‌خواهم کنترل نسخه انجام شود انتخاب کردم و با کمک دستور git init به یک کتابخانه  git تبدیلش کردم. بعد از git add * استفاده کردم تا هر چیزی که در دایرکتوری هست را به کتابخانه‌ای که ساختم منتقل کند. و بعد فایل‌های تویش را چک کردم. حالا توی کامپیوتر2 کافیست دستورات زیر را بزنم:

cd /home/me/Documents

git clone ssh://192.168.0.1 ?

/home/me/Documents/shared

در این صورت دایرکتوری از کامپیوتر1 به کامپیوتر2 منتقل (کپی) می‌شود. حالا اگر تغییرات را در کامپیوتر2 انجام دهم:

git commit –a

و بعد به کامپیوتر1 بروم می‌توانم تغییراتی را که در کامپیوتر2 داده‌ام را ببینم:

cd /home/me/Documents/shared

git pull ssh://192.168.0.2 ?

/home/me/Documents/shared

حالا هر دو کامپیوتر در یک همخوانی کامل به سر می‌برند. اگر احیاناً یک فایل بود که در هر دو کامپیوتر، جداگانه تغییر کرده بود، git پیغام هشدار می‌دهد. با توجه به این‌که فایل‌های قدیمی در تمام تغییراتی که داده شده است، وجود دارند، از دست رفتن اطلاعات تحت هیچ شرایطی اتفاق نمی‌افتد.

 توضیح: نماد ? نشانگر متصل بودن دو خط برنامه است.

محمدرضا قربانی

 

newsQrCode
ارسال نظرات در انتظار بررسی: ۰ انتشار یافته: ۰

نیازمندی ها