جستجو برای:
سبد خرید 0
  • صفحه اصلی
  • دوره‌های آموزشی
  • وبلاگ
  • درباره ما
  • قوانین و مقررات
  • همکاری با ما
  • تماس با ما
محتوای باز
ورود
[suncode_otp_login_form]
گذرواژه خود را فراموش کرده اید؟
عضویت
[suncode_otp_registration_form]
  • خانه
  • کتاب آنلاین
  • درباره سایت
  • درباره لوگو
  • تماس با ما
محتوای باز
  • صفحه اصلی
  • دوره‌های آموزشی
  • وبلاگ
  • درباره ما
  • قوانین و مقررات
  • همکاری با ما
  • تماس با ما
شروع کنید
آخرین اطلاعیه ها
لطفا برای نمایش اطلاعیه ها وارد شوید
0
[wcas-search-form]

همگام‌سازی فایل‌ها و دایرکتوری‌ها

7 آذر 1399
ارسال شده توسط فرشید نوتاش حقیقت
خط فرمان، گنو/لینوکس
همگام‌سازی

نگهداری یک کپی پشتیبان (backup) از سیستم، مستلزم همگام‌سازی یک یا چند دایرکتوری با دایرکتوری (یا دایرکتورهای) دیگری است که بر روی سیستم local (که معمولا یک حافظه جانبی حذف شدنی مانند هارددیسک اکسترنال) و یا یک سیستم ریموت وجود دارد.

به‌عنوان مثال، ممکن است یک کپی محلی از یک وب‌سایت که در حال توسعه است بگیریم و آن را بر روی نسخه زنده یک وب‌سرور ریموت کپی کنیم.

فرمان rsync (همگام‌سازی ریموت فایل و دایرکتوری)

این برنامه، می‌تواند دایرکتوری‌های local و ریموت را همگام‌سازی کند. پروتکل rsync remoteupdate قادر است که به‌سرعت تفاوت‌های میان دو دایرکتوری را تشخیص دهد. این پروتکل موجب می‌شود که rsync در مقایسه با سایر برنامه‌های کپی بسیار سریع‌تر (و از منظر اقتصادی) مقرون به‌صرفه‌تر باشد.

فرمان rsync با این صورت به‌کار گرفته می‌شود:

rsync options source destination

که source (مبدا) و destination (مقصد) هر کدام، یکی از موارد زیر است:

  • یک فایل یا دایرکتوری local.
  • یک فایل یا دایرکتوری ریموت به شکل [user@]host:path
  • یک سرور ریموت rsync تعیین شده با URI روبرو: rsync://[user@]host[:port]/path

توجه داشته باشید که یکی از موارد source (مبدا) و destination (مقصد) می‌بایست، یک فایل local باشد. کپی ریموت به ریموت پشتیبانی نمی‌شود.

در ادامه، rsync را بر روی برخی از فایل‌های محلی امتحان می‌کنیم. ابتدا دایرکتوری foo را خالی می‌کنیم:

[me@linuxbox ~]$ rm -rf foo/*

سپس دایرکتوری playground را با یک کپی متناظر در foo همگام می‌کنیم:

[me@linuxbox ~]$ rsync -av playground foo

ما هر دو گزینه –a (برای آرشیو کردن که باعث بازگشت و نگهداری مشخصه‌های فایل می‌شود) و گزینه –v (verbose) را استفاده کردیم تا یک کپی از دایرکتوری playground در داخل دایرکتوری foo ایجاد کنیم. زمانی که فرمان اجرا می‌شود، لیستی از فایل‌ها و دایرکتوری‌هایی که کپی می‌شوند را مشاهده خواهید کرد. در انتها یک پیام را مشاهده خواهید کرد که خلاصه بوده و نشان‌دهنده میزان کپی انجام شده است:

sent 135759 bytes received 57870 bytes 387258.00 bytes/sec
total size is 3230 speedup is 0.02

اگر فرمان مجددا تکرار کنیم، تفاوت نتیجه را مشاهده خواهید کرد:

[me@linuxbox ~]$ rsync -av playgound foo
building file list ... done
sent 22635 bytes received 20 bytes 45310.00 bytes/sec
total size is 3230 speedup is 0.14

توجه داشته باشید که لیست کردن فایل صورت نمی‌گیرد. به این دلیل که rsync تشخیص داده که هیچ تفاوتی بین ~/playground و ~/foo/playground وجود ندارد، در نتیجه هیچ عمل کپی انجام نخواهد شد. اگر فایلی را در دایرکتوری playground تغییر دهیم و مجددا فرمان rsync را اجرا نماییم، مشاهده خواهیم کرد که rsync تغییر را شناسایی کرده و فقط فایل‌های به‌روز شده را کپی می‌کند.

[me@linuxbox ~]$ touch playground/dir-099/file-Z
[me@linuxbox ~]$ rsync -av playground foo
building file list ... done
playground/dir-099/file-Z
sent 22685 bytes received 42 bytes 45454.00 bytes/sec
total size is 3230 speedup is 0.14

به‌عنوان مثال، تصور کنید که یک هارددرایو اکسترنال داریم که قبلا هم از آن برای tar استفاده کرده بودیم. اگر درایو را به سیستم خود متصل کنیم، دوباره در مسیر /media/BigDisk سوار (mount) می‌شود. اکنون یک دایرکتوری /backup بر روی هارد اکسترنال ایجاد می‌کنیم. سپس با استفاده از rsync موارد مهم را به داخل هارد خود کپی می‌کنیم:

[me@linuxbox ~]$ mkdir /media/BigDisk/backup
[me@linuxbox ~]$ sudo rsync -av --delete /etc /home /usr/local /media/BigDisk/
backup

در این مثال دایرکتوری‌های /etc، /home و /usr/local را از سیستم به هارد اکسترنال خود کپی کردیم. گزینه –delete را اضافه کرده‌ایم تا فایل‌هایی که ممکن است بر رو دیوایس بکاپ موجود باشد و دیگر بر روی دیوایس مبدا موجود نیست را حذف کنیم (البته اگر برای اولین بار بکاپ انجام می‌دهیم، این کار معنی‌دار نیست، ولی برای بکاپ‌های بعدی مفید خواهد بود). تکرار این رویه (اتصال هارد اکسترنال و اجرای فرمان rsync) می‌تواند روشی مفید، البته نه ایده‌آل برای بکاپ بخش‌هایی از سیستم باشد.

در اینجا به‌کار بردن یک alias به ما کمک خواهد کرد. می‌توانیم یک alias ایجاد کرده و آن را به فایل .bashrc اضافه نماییم تا این ویژگی فراهم شود:

alias backup='sudo rsync -av --delete /etc /home /usr/local /media/BigDisk/bac
kup'

اکنون تنها کاری که بایستی انجام شود، اتصال هارد اکسترنال به سیستم و سپس اجرای فرمان backup می‌باشد.

استفاده ازrsync بر روی شبکه

یکی از زیبایی‌های فرمان rsync این است که می‌توان با استفاده از آن، فایل‌ها را بر روی شبکه کپی کرد. شایان ذکر است که حرف r در rsync، سرنام واژه remote است. کپی ریموت به دو شیوه صورت می‌پذیرد:

اولین روش با سیستم دیگری است که rsync از طریق یک برنامه Shell مانندssh  بر روی آن نصب شده باشد. فرض کنید که سیستم دیگری بر روی شبکه local وجود دارد که فضای هارددیسک در دسترس زیادی دارد و ما می‌خواهیم عملیات بکاپ خود را به‌جای یک هارددیسک اکسترنال با استفاده از ریموت انجام دهیم. فرض کنید که هم‌اکنون دایرکتوری تحت عنوان /backup وجود دارد که می‌توانیم فایل‌های خود را به آن تحویل دهیم:

[me@linuxbox ~]$ sudo rsync -av --delete --rsh=ssh /etc /home /usr/local remotesys:/
backup

دو تغییر را در خط فرمان ایجاد کرده‌ایم تا کپی در شبکه را آسان کنیم.

اول اینکه گزینه –rsh=ssh را اضافه کرده‌ایم که به rsync فرمان می‌دهد تا از برنامه ssh به‌عنوان یک Remote Shell استفاده کند. به این شیوه، قادر هستیم تا از یک تانل رمزنگاری شده ssh برای ایمنی داده از سیستم local به remote host استفاده کنیم.

دوم آن‌که rsync می‌تواند فایل‌ها را از طریق شبکه و با استفاده از rysnc server همگام کند. rysnc را می‌توان به نحوی پیکربندی کرد که مثل یک شبح اجرا شود و به درخواست‌های ورودی برای همگام‌سازی گوش دهد. این کار اغلب به‌منظو کپی کردن یک سیستم ریموت صورت می‌پذیرد. برای مثال نرم‌افزار RedHat یک مخزن بزرگ از بسته‌های نرم‌افزاری نحت توسعه را برای توزیع فدورا نگهداری می‌کند. از آن‌جایی که فایل‌های موجود در مخزن، متناوبا تغییر می‌کنند، اگر یک کپی local براساس همگام‌سازی دوره‌ای نگهداری شود (به‌جای این‌که کل مخزن را کپی کنیم)، یکی از مخازن درGeorgia Tech  نگهداری می‌گردد، بسیار عالی می‌شود. می‌توانیم آن را با استفاده از کپی local خود از rsync و سرور Georgia Tech’s rsync، به این صورت معکوس کنیم:

[me@linuxbox ~]$ mkdir fedora-devel
[me@linuxbox ~]$ rsync -av -delete rsync://rsync.gtlib.gatech.edu/fedoralinux-
core/development/i386/os fedora-devel

در این مثال ما از URI سرور ریموت rsync استفاده می‌کنیم که شامل یک پروتکل (rsync://) به‌همراه نام میزبان (hostname) ریموت (rsync.gtlib.gatech.edu) به همراه نام مسیر (pathname) مخزن است.

منبع: لینوکس‌سیزن نوشته فرشید نوتاش حقیقت
برچسب ها: CLICommand Lineخط فرمانخط فرمان لینوکسمحتوای باز
درباره فرشید نوتاش حقیقت

همیشه نیازمند یک منبع آموزشی فارسی در حوزه نرم‌افزارهای آزاد/ متن‌باز و سیستم‌عامل گنو/لینوکس بودم. از این رو این رسالت رو برای خودم تعریف کردم تا رسانه «محتوای باز» رو بوجود بیارم.

نوشته‌های بیشتر از فرشید نوتاش حقیقت
قبلی آرشیو کردن فایل‌ها
بعدی عبارات منظم (Regular Expressions)

دیدگاهتان را بنویسید لغو پاسخ

این سایت از اکیسمت برای کاهش جفنگ استفاده می‌کند. درباره چگونگی پردازش داده‌های دیدگاه خود بیشتر بدانید.

جستجو
جستجو برای:
دسته‌بندی موضوعی مقالات
  • برنامه‌نویسی
    • پایتون
    • دواپس
  • پایگاه‌داده
    • MariaDB
    • MySQL
  • تجارت الکترونیک
    • بازاریابی اینترنتی
    • دیجیتال مارکتینگ
    • شبکه‌های اجتماعی
  • جامعه کاربری
    • لاگ
  • دسته‌بندی نشده
  • شبکه و امنیت
  • طراحی وب
    • سئو
    • سیستم مدیریت محتوا
      • وردپرس
  • فناوری‌های نوظهور
    • اینترنت اشیاء
    • رایانش ابری
      • OpenStack
    • کلان‌داده‌ها
  • گنو/لینوکس
    • توزیع
      • CentOS
      • اوبونتو
      • دبیان
      • فدورا
    • چیست
    • خط فرمان
  • مهاجرت به آزاد/متن‌باز
  • نرم‌افزار
    • اداری
      • لیبره آفیس
        • ایمپرس
        • بیس
        • دراو
        • رایتر
        • کالک
    • کاربردی
    • گرافیک و انیمیشن
      • بلندر
      • گیمپ
نماد الکترونیکی (اینماد)
پرداخت‌یار

محتوای باز؛ مرجع آموزشی نرم‌افزارهای آزاد/ متن‌باز

از اینکه قصد همکاری با رسانه «محتوای باز» را دارید بسیار خرسندیم و این مایه مباهات ماست.

نحوه همکاری با ما چندان پیچیده نیست و شرایط آن در ادامه، ارائه گردیده است.

دستمزد مدرسین

پیش از بیان شرایط ضبط ویدئو شایان ذکر است اشاره‌ای به دستمزد مدرسین سایت داشته باشیم.

شما ممکن است در دو حالت تمایل به نشر ویدئو خود را داشته باشید: یا آن را رایگان در اختیار عموم قرار دهید و یا اینکه در قبال فروش آن از خریدار وجه مربوطه محصول را اخذ نمایید.

صرف نظر از هر حالت ممکنه، می‌بایست شرایطی که در ادامه ذکر شده‌اند را رعایت کرده باشید.

در حالت اول (رایگان) رسانه محتوای باز (Open Content)، نه وجهی از شما برای نشر ویدئو می‌گیرد و نه وجهی به شما پرداخت می‌نماید و دوره آموزشی شما را به رایگان منتشر می‌کند.

اما در حالت بعدی طریقه همکاری به روش درآمد از فروش خواهد بود، به گونه‌ای که 70 درصد از کل مبلغ فروش دوره آموزشی متعلق به مدرس دوره بوده و 30 درصد مابقی به رسانه محتوای باز تعلق می‌گیرد.

شرایط کلی ضبط دوره آموزشی

دوره آموزشی مربوطه، صرف نظر از هر محتوایی که دارد می‌بایست در یکی از توزیعات گنو/لینوکسی ضبط شده باشد. (به‌عنوان مثال دوره دروپال در اوبونتو، دوره آموزشی کار با آردوینو در دبیان و امثالهم). اگر دوره آموزشی شما در محیط ویندوز و یا هر پلتفرم/سیستم‌عامل دیگری ضبط شده باشد از همکاری با شما معذوریم.

پیشنهاد می‌گردد برای ضبط دوره آموزشی در توزیع گنو/لینوکس از ابزار قدرتمند OBS استفاده نمایید. البته این صرفا یک پیشنهاد است و شما می‌توانید از هر ابزار مناسب دیگری برای این کار بهره ببرید.

برای آشنایی یا تسلط بیشتر می‌توانید دوره رایگان آموزش OBS محمد عابدینی را ببینید:

مشاهده دوره آموزش OBS
شرایط کیفی ضبط دوره آموزشی

کیفیت صدا از اهمیت ویژه‌ای برخوردار می‌باشد و می‌بایست فاقد هر گونه نویز یا صدای اضافی دیگری (صدای محیط پیرامون) باشد.

دوره آموزشی تهیه شده صرفا باید برای رسانه محتوای باز تدوین شده باشد و در هیچ سایت مشابه دیگری قرار نگرفته باشد.

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

دوره آموزشی ضبط شده می‌باید فاقد هر گونه لوگو یا آدرس سایت دیگری (در گوشه تصویر یا بک‌گراند صفحه دسکتاپ و هر جای دیگری) باشد.

در حین دوره، مدرس نباید به برند خاصی اشاره کند که جز رقبای ما به‌شمار می‌آیند.

مدرس باید در ابتدا در اواسط و در انتهای دوره به برند ما یعنی رسانه محتوای باز (Open Content) بصورت کلامی اشاره نماید.

مدرس، هنگام تدریس نباید تپق زده، سرفه یا عطسه کند یا صدای قورت دادن بزاقش شنیده شود و بایستی با صدای رسا، دوستانه و پرانرژی به تدریس بپردازد.

قبل از تدوین دوره آموزشی حتما با ما در تماس باشید و یک ویدیوی چنددقیقه‌ای (ترجیحا 5 الی 10 دقیقه)، بصورت نمونه‌کار برای ما بفرستید.

از همکاری با شما سپاسگزاریم.

فراخوان همکاری