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

آرشیو کردن و بکاپ گرفتن در خط فرمان

28 آبان 1399
ارسال شده توسط فرشید نوتاش حقیقت
خط فرمان، گنو/لینوکس
آرشیو

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

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

بدین منظور از فرمان‌های gzip، bzip2، tar، zip و rsync استفاده خواهیم کرد.

فشرده‌سازی

در تاریخچه کامپیوتر، همیشه تلاش می‌شده داده‌ها را تا کمترین اندازه ممکن کوچک کرد تا فضای کمتری را اشغال کند. این فضا می‌تواند حافظه Memory یا دیوایس‌های ذخیره‌سازی یا پهنای باند شبکه باشد، تفاوتی نمی‌کند. بسیاری از سرویس‌های داده که امروزه از آن‌ها استفاده می‌کنیم، مانند موزیک‌پلیرهای قابل حمل، تلویزیون‌های با کیفیت بالا، یا پهنای باند اینترنت، وجود خود را مدیون تکنیک‌های فشرده‌سازی تاثیرگذار هستند.

فشرده‌سازی داده، پروسه حذف افزونگی و حشو (redundancy) داده است. بگذارید یک مثال غیرواقعی را در نظر بگیریم. فرض کنید ما یک فایل تصویر کاملا سیاه داریم که 100 پیکسل طول و 100 پیکسل ارتفاع دارد. به‌عبارتی ذخیره‌سازی داده (24 بیت یا همان 3 بایت بر پیکسل)، تصویر 30000 بایت از فضا را اشغال می‌کند:

3*100*100=30000

یک فایل تصویر که فقط دارای یک رنگ است، حاوی داده‌های حشو و افزونگی بالایی است. اگر ما باهوش بودیم، بایستی داده را به نحوی Encode می‌کردیم که به سادگی این واقعیت را توصیف می‌کرد که ما یک بلوک 30000 پیکسلی رنگ سیاه داریم. پس به‌جای استفاده از یک بلوک داده حاوی 30000 صفر (سیاه معمولا در فایل‌های تصویر با عدد صفر تعیین می‌گردد)، می‌توانستیم داده را با شماره 30000 تعیین کنیم و به‌دنبال آن یک صفر که نشان‌دهنده رنگ سیاه ماست. این نوع طرح فشرده‌سازی داده run-length encoding به معنی کدگذاری با طول، نامیده می‌شود. که یکی از تکنیک‌های فشرده‌سازی بنیادین است. تکنیک‌های امروزه بسیار پیچیده‌تر و پیشرفته‌تر هستند ولی هدف اصلی همان قبلی اس. یعنی از شر افزونگی و حشو (همان داده‌های تکراری) خلاص شویم.

الگوریتم‌های فشرده‌سازی (تکنیک‌های ریاضی که به‌منظور فشرده‌سازی استفاده می‌شوند) به دو دسته‌بندی اصلیlossless  (به معنای بدون اتلاف) و lossy (به معنای با اتلاف) تقسیم می‌گردند.

فشرده‌سازی lossless از تمام داده‌هایی که در شکل اورجینال فایل وجود دارد، محافظت می‌کند و هیچ داده‌ای از دست نمی‌رود. بدین معنی که فایل بازیابی شده دقیقا همان فایل اصلی قبل از فشرده‌سازی است.

در مقابل، فشرده‌سازی lossy را داریم کهدر حین فشرده‌سازی، داده‌ها را حذف می‌کند تا فشرده‌سازی بیشتری صورت پذیرد و حجم داده کاهش یابد.

زمانی که یک فایل lossy بازیابی می‌شود، با نسخه اصلی آن برابری نمی‌کند! مثال‌هایی از فشرده‌سازی lossy تصاویر JPEG و فایل‌های MP3 هستند.

در این مبحث ما به اختصار، درباره فشرده‌سازی‌های lossless گفتگو خواهیم کرد. به این دلیل که اکثر داده‌هایی که بر روی کامپیوترها وجود دارند، تحمل از دست دادن داده را نخواهند داشت.

فرمان gzip (فشرده‌سازی یا بسط فایل‌ها)

برنامه gzip به‌منظور فشرده‌سازی یک یا چند فایل، مورد استفاده قرار می‌گیرد. زمانی که gzip اجرا می‌شود، فایل اصلی با یک نسخه فشرده از فایل جایگزین می‌شود. برنامه مربوطه gunzip به‌منظور بازیابی فایل‌های فشرده به شکل اورجینال خود مورد استفاده قرار می‌گیرند.

به مثال زیر توجه کنید:

[me@linuxbox ~]$ ls -l /etc > foo.txt
[me@linuxbox ~]$ ls -l foo.*
-rw-r--r-- 1 me me 15738 2012-10-14 07:15 foo.txt
[me@linuxbox ~]$ gzip foo.txt
[me@linuxbox ~]$ ls -l foo.*
-rw-r--r-- 1 me me 3230 2012-10-14 07:15 foo.txt.gz
[me@linuxbox ~]$ gunzip foo.txt
[me@linuxbox ~]$ ls -l foo.*
-rw-r--r-- 1 me me 15738 2012-10-14 07:15 foo.txt

در این مثال، فایل متنی را با نام foo.txt ایجاد و سپس gzip را اجرا کردیم که فایل اصلی را با نسخه فشرده‌ای با نام foo.txt.gz جایگزین می‌کند. با لیست کردن دایرکتوری‌ها، مشاهده می‌کنیم که نسخه اصلی فایل با نسخه فشرده شده جایگزین می‌شود. به حجم فایل قبل و بعد از فشرده‌سازی، توجه نمایید: مشاهده می‌شود که حجم فایل فشرده شده، هفت برابر کاهش یافته است. سپس با استفاده از فرمان gzip فایل را مجددا از حالت فشرده خارج می‌کنیم. دوباره فایل اصلی، جایگزین نسخه فشرده می‌شود.

فرمان gzip دارای گزینه‌های زیادی است که در لیست زیر مشاهده می‌شود:

گزینهتوضیحات
-cنوشتن خروجی در خروجی استاندارد و نگهداری فایلهای اصلی. همچنین ممکن است با --stdout و --to-stdout نیز تعیین شده باشد.
-dDecompress. موجب میشود که gzip مثل gunzip عمل کند. ممکن است بوسیله --decomperess یا --uncompress نیز تعیین شده باشد.
-fفشرده‌سازی اجباری حتی اگر یک نسخه فشرده از فایل اصلی هم اکنون موجود باشد. همچنین ممکن است بوسیله --force تعیین شده باشد.
-hنمایش اطلاعات کاربرد. همچنین ممکن است با --help تعیین شده باشد.
-lلیست کردن آمارهای فشرده‌سازی برای هر فایل فشرده. همچنین ممکن است با --list تعیین شده باشد.
-rاگر یکی از آرگومان‌ها در خط فرمان پوشه‌ها باشد، به صورت بازگشتی فایل‌های درون آن را فشرده‌سازی کن. ممکن است با --recurdive نیز تعیین شده باشد.
-tآزمون یکپارچگی فایل فشرده. ممکن است با --test نیز تعیین شده باشد.
-vنمایش پیام‌های طولانی در زمان فشرده‌سازی. ممن است --verbose نیز تعیین شده باشد.
-numberتعیین میزان فشرده‌سازی. شماره یک عدد صحیح در محدوده 1 (سریع‌ترین و کمترین فشرده‌سازی) تا عدد 9 (کندترین و بیشترین فشرده‌سازی) می‌باشد.

مجددا نگاهی به مثال قبلی خواهیم انداخت:

[me@linuxbox ~]$ gzip foo.txt
[me@linuxbox ~]$ gzip -tv foo.txt.gz
foo.txt.gz: OK
[me@linuxbox ~]$ gzip -d foo.txt.gz

در اینجا فایل foo.txt را با یک نسخه فشرده foo.txt.gz جایگزین کردیم. سپس یکپارچگی فایل فشرده را با استفاده از گزینه‌‌های –t و –v سنجیدیم. در نهایت فایل را به شکل اصلی آن، بازگرداندیم.

علاوه بر این، می‌توان gzip را در شیوه‌های جذابی از طریق خروجی و ورودی استاندارد، مورد استفاده قرار داد:

[me@linuxbox ~]$ ls -l /etc | gzip > foo.txt.gz

این فرمان، نسخه فشرده‌ای از لیست دایرکتوری‌ها را در قالب فایل foo.txt.gz ایجاد می‌کند. فرمانgunzip  که فایل‌های gzip را از حالت فشرده خارج می‌کند، فرض می‌کند که اسامی فایل‌ها با پسوند .gz پایان می‌یابند، پس ضرورتی ندارد که پسوند را هنگام استفاده از gunzip اضافه کنیم:

[me@linuxbox ~]$ gunzip foo.txt

اگر هدف ما فقط نمایش محتوای فایل متنی فشرده باشد، می‌توانیم این کار را از طریق پایپ کردن آن در فرمان less انجام دهیم.

[me@linuxbox ~]$ gunzip -c foo.txt | less

به شیوه‌ای دیگر، برنامه‌ای با نام zcat عرضه شده که همان کار gunzip را به همراه گزینه –c انجام می‌دهد:

[me@linuxbox ~]$ zcat foo.txt.gz | less

فرمانbzip2  (فشرده‌سازی بیشتر به قیمت کاهش سرعت)

فرمانbzip2  (که توسط Julian Seward ایجاد شده) مشابه gzip می‌باشد، ولی الگوریتم متفاوت فشرده‌سازی استفاده می‌نماید که سطوح بالاتری را از فشرده‌سازی (ولی به قیمت کاهش سرعت فشرده‌سازی فایل) کسب می‌کند. اما در اکثر زمینه‌ها، به‌همان شکل gzip عمل می‌نماید. فایلی که با bizp2 فشرده شده باشد، پسوند bz2 دریافت می‌کند:

[me@linuxbox ~]$ ls -l /etc > foo.txt
[me@linuxbox ~]$ ls -l foo.txt
-rw-r--r-- 1 me me 15738 2012-10-17 13:51 foo.txt
[me@linuxbox ~]$ bzip2 foo.txt
[me@linuxbox ~]$ ls -l foo.txt.bz2
-rw-r--r-- 1 me me 2792 2012-10-17 13:51 foo.txt.bz2
[me@linuxbox ~]$ bunzip2 foo.txt.bz2

همان‌طور که می‌بینیم bzip2 را می‌توان به همان شیوه gzip به‌کار برد. همه گزینه‌های gzip به غیر از -r در bzip2 هم پشتیبانی می‌شوند.

توجه داشته باشید که گزینه سطح فشرده‌سازی (-number) معنای متفاوتی در bzip2 دارد. bzip2 به‌منظور فشرده کردن فایل‌ها از bunzip2 و bzcat استفاده می‌کند. همچنین bzip2 دارای برنامه bzip2recover بوده که تلاشی برای بازیابی فایل‌های آسیب‌دیده bz2 را دارد.

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

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

نوشته‌های بیشتر از فرشید نوتاش حقیقت
قبلی مراحل نصب و پیکربندی Kafka
بعدی آرشیو کردن فایل‌ها

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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