09982292579
info@mehraeen.ac.ir
فارسی پرچم
فارسی
یک زبان را انتخاب کنید
فارسی پرچم
فارسی
0
دسته ها
خانه تقویم‌آموزشی مدرس وبلاگ چارت‌‌دروس تماس‌با‌ما درباره‌ما انجمن‌ها
کارگاه سیستم عامل

جلسه 12 فرامین پشتیبان گیری و فشرده سازی مانند: cpio ،tar ،zip ،gzip ،bzip و ...

خلاصه نکات کلیدی فشرده‌سازی: کاهش حجم فایل‌ها برای صرفه‌جویی در فضا یا افزایش سرعت انتقال. ابزارهای اصلی: gzip, bzip2, zip. آرشیو کردن: تجمیع چندین فایل و دایرکتوری در یک فایل واحد. ابزار اصلی: tar. ترکیب آرشیو و فشرده‌سازی: معمولاً tar برای آرشیو و سپس gzip یا bzip2 برای فشرده‌سازی فایل .tar ایجاد شده به کار می‌روند (مانند tar -czvf). at: اجرای یک دستور یک بار در آینده. cron / crontab: اجرای مکرر دستورات یا اسکریپت‌ها در زمان‌های مشخص (روزانه، هفتگی، ماهانه). فرمت crontab: پنج فیلد زمانی (دقیقه، ساعت، روز ماه، ماه، روز هفته) به همراه دستور اجرایی. مدیریت وظایف زمان‌بندی شده: استفاده از atq, atrm, crontab -l, crontab -r برای مشاهده، حذف یا ویرایش وظایف.

مقدمه:


  • اهمیت پشتیبان‌گیری (Backup) و فشرده‌سازی (Compression) در مدیریت داده‌ها و حفظ اطلاعات.

  • مروری کوتاه بر تاریخچه و کاربردهای این فرامین.

۲. فرامین فشرده‌سازی:


  • gzip:

  • توضیح: ابزار استاندارد فشرده‌سازی در لینوکس که از الگوریتم Lempel-Ziv استفاده می‌کند. معمولاً برای فشرده‌سازی فایل‌های تکی کاربرد دارد.

  • نحو: gzip [options] filename

  • مثال:

  • فشرده‌سازی یک فایل: gzip mydocument.txt (فایل اصلی حذف و فایل mydocument.txt.gz ایجاد می‌شود)

  • از حالت فشرده خارج کردن: gunzip mydocument.txt.gz یا gzip -d mydocument.txt.gz

  • فشرده‌سازی و نمایش در خروجی استاندارد (بدون ایجاد فایل): gzip -c mydocument.txt > mydocument.txt.gz

  • bzip2:

  • توضیح: ابزاری مشابه gzip اما با الگوریتم فشرده‌سازی بهتر (BWT - Burrows-Wheeler Transform) که معمولاً نسبت فشرده‌سازی بالاتری ارائه می‌دهد، اما کندتر است.

  • نحو: bzip2 [options] filename

  • مثال:

  • فشرده‌سازی: bzip2 largefile.log (فایل largefile.log.bz2 ایجاد می‌شود)

  • از حالت فشرده خارج کردن: bunzip2 largefile.log.bz2 یا bzip2 -d largefile.log.bz2

  • zip:

  • توضیح: ابزاری محبوب برای ایجاد آرشیوهای فشرده که می‌تواند شامل چندین فایل و دایرکتوری باشد. قابل استفاده در سیستم‌عامل‌های مختلف (ویندوز، لینوکس، مک).

  • نحو: zip [options] archive_name.zip file1 file2 directory1 ...

  • مثال:

  • ایجاد آرشیو فشرده از چند فایل و یک دایرکتوری: zip myarchive.zip report.txt image.jpg documents/

  • افزودن فایل به آرشیو موجود: zip -u myarchive.zip newfile.txt

  • استخراج محتویات آرشیو: unzip myarchive.zip

  • tar (Tape Archiver):

  • توضیح: ابزاری قدرتمند برای تجمیع چندین فایل و دایرکتوری در یک فایل آرشیو واحد (بدون فشرده‌سازی). اغلب همراه با gzip یا bzip2 برای فشرده‌سازی نهایی استفاده می‌شود.

  • نحو: tar [options] archive_name files_or_directories

  • مثال:

  • ایجاد آرشیو (بدون فشرده‌سازی): tar -cvf backup.tar /home/user/data (c: create, v: verbose, f: file)

  • ایجاد آرشیو و فشرده‌سازی با gzip: tar -czvf backup.tar.gz /home/user/data (z: gzip)

  • ایجاد آرشیو و فشرده‌سازی با bzip2: tar -cjvf backup.tar.bz2 /home/user/data (j: bzip2)

  • استخراج آرشیو tar: tar -xvf backup.tar

  • استخراج آرشیو tar.gz: tar -xzvf backup.tar.gz

  • استخراج آرشیو tar.bz2: tar -xjvf backup.tar.bz2

  • cpio (Copy In/Out):

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

  • نحو: cpio -o < input_files > output_archive (خروجی) یا cpio -i < input_archive > output_files (ورودی)

  • مثال:

  • ایجاد آرشیو: find . -print | cpio -o > archive.cpio

  • استخراج آرشیو: cpio -idmv < archive.cpio (i: extract, d: create directories, m: preserve modification times, v: verbose)

۳. نکات کلیدی فشرده‌سازی:


  • انتخاب ابزار مناسب بر اساس حجم داده، سرعت مورد نیاز و سازگاری با سیستم‌عامل‌های دیگر.

  • gzip و bzip2 برای فایل‌های تکی عالی هستند.

  • tar برای تجمیع چندین فایل/دایرکتوری قبل از فشرده‌سازی ضروری است.

  • zip سازگاری بالایی با ویندوز دارد.

  • cpio کمتر استفاده می‌شود اما در سناریوهای خاص کاربرد دارد.


بخش دوم: فرامین زمان‌بندی

۱. مقدمه:


  • اهمیت اجرای خودکار وظایف در زمان‌های مشخص (پشتیبان‌گیری، اجرای اسکریپت‌ها، به‌روزرسانی‌ها).

  • معرفی دو ابزار اصلی: at و cron.

۲. فرمان at:


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

  • نحو: at <time>

  • مثال:

  • زمان‌بندی برای ساعت ۱۰:۳۰ صبح فردا:

bash
at 10:30 tomorrow
# دستورات خود را وارد کنید، سپس Ctrl+D را بزنید
echo "This is a one-time reminder." | mail -s "Reminder" user@example.com

  • زمان‌بندی برای ۱۰ دقیقه دیگر:

bash
at now + 10 minutes
# دستورات
touch /tmp/myfile_created_later

  • مشاهده کارهای در صف انتظار at: atq

  • حذف یک کار از صف: atrm <job_number>

۳. فرمان cron و crontab:


  • توضیح: سیستم زمان‌بندی قدرتمند که وظایف را به صورت مکرر (روزانه، هفتگی، ماهانه، ساعتی) اجرا می‌کند. cron دیمن (daemon) یا سرویسی است که فایل‌های crontab را بررسی و وظایف را اجرا می‌کند. crontab فایل تنظیمات هر کاربر برای زمان‌بندی وظایف است.

  • نحو ویرایش crontab: crontab -e (برای ویرایش)

  • فرمت خطوط در crontab:

text
# ┌───────────── دقیقه (0 - 59)
# │ ┌───────────── ساعت (0 - 23)
# │ │ ┌───────────── روز ماه (1 - 31)
# │ │ │ ┌───────────── ماه (1 - 12)
# │ │ │ │ ┌───────────── روز هفته (0 - 6) (0=یکشنبه، 1=دوشنبه، ...)
# │ │ │ │ │
# │ │ │ │ │
# * * * * * command_to_execute

  • مثال‌ها:

  • اجرای یک اسکریپت در ساعت ۲ بامداد هر روز:

0 2 * * * /home/user/scripts/backup.sh


  • اجرای یک دستور هر ۱۰ دقیقه:

*/10 * * * * echo "Checking system status..." >> /var/log/sys_check.log


  • اجرای یک وظیفه در ساعت ۱۰:۳۰ صبح هر دوشنبه:

30 10 * * 1 /home/user/scripts/weekly_report.sh


  • اجرای یک وظیفه در ساعت ۵ عصر روز ۱۵ هر ماه:

0 17 15 * * /home/user/scripts/monthly_cleanup.sh


  • مشاهده کارهای در صف انتظار cron (معمولاً در لاگ سیستم قابل مشاهده است، یا با ابزارهای مدیریتی): crontab -l (نمایش crontab کاربر فعلی)

  • حذف crontab کاربر فعلی: crontab -r

۴. نکات کلیدی زمان‌بندی:


  • at برای وظایف یکباره و غیرمکرر.

  • cron برای وظایف مکرر و منظم.

  • دقت در تنظیم زمان و تاریخ در crontab بسیار مهم است.

  • مسیر کامل دستورات یا اسکریپت‌ها در crontab اغلب لازم است.

  • بررسی لاگ‌های سیستم (مانند /var/log/syslog یا /var/log/cron) برای رفع اشکال وظایف cron.


تمرین‌های پایان فصل

بخش اول: پشتیبان‌گیری و فشرده‌سازی


  1. یک فایل متنی به نام notes.txt با چند خط محتوا ایجاد کنید.

  2. این فایل را با استفاده از gzip فشرده کنید. سپس فایل فشرده شده را از حالت فشرده خارج کنید و محتوای آن را با فایل اصلی مقایسه کنید.

  3. یک دایرکتوری به نام project_files بسازید و چند فایل نمونه (مانند فایل‌های متنی یا تصاویر کوچک) را درون آن قرار دهید.

  4. با استفاده از tar و gzip، یک آرشیو فشرده از کل دایرکتوری project_files با نام project_backup.tar.gz ایجاد کنید.

  5. آرشیوی که در مرحله قبل ساختید را استخراج کنید و بررسی کنید که آیا محتویات آن با دایرکتوری اصلی یکسان است یا خیر.

  6. فرض کنید می‌خواهید یک آرشیو فشرده از دایرکتوری project_files بسازید که بتوانید به راحتی در ویندوز نیز از آن استفاده کنید. کدام ابزار را پیشنهاد می‌کنید و چرا؟ دستور مربوطه را بنویسید.

بخش دوم: زمان‌بندی


  1. یک دستور ساده (مثلاً echo "Hello from at!") را طوری زمان‌بندی کنید که دقیقاً ۵ دقیقه دیگر اجرا شود. سپس با استفاده از atq بررسی کنید که آیا در صف انتظار قرار گرفته است.

  2. یک اسکریپت ساده (مثلاً یک فایل shell script که تاریخ و زمان جاری را در یک فایل log می‌نویسد) ایجاد کنید.

  3. این اسکریپت را طوری زمان‌بندی کنید که هر روز ساعت ۱ بامداد اجرا شود. (نام فایل اسکریپت را daily_log.sh و فایل log را timestamp.log فرض کنید).

  4. یک یادآور برای خودتان تنظیم کنید تا هر پنجشنبه ساعت ۴ بعد از ظهر به شما پیام دهد (می‌توانید از دستور mail یا echo استفاده کنید).

  5. اگر اشتباهی در تنظیم crontab خود انجام دادید، چگونه می‌توانید آن را اصلاح کنید؟


خلاصه نکات کلیدی








































  • فشرده‌سازی: کاهش حجم فایل‌ها برای صرفه‌جویی در فضا یا افزایش سرعت انتقال. ابزارهای اصلی: gzip, bzip2, zip.

  • آرشیو کردن: تجمیع چندین فایل و دایرکتوری در یک فایل واحد. ابزار اصلی: tar.

  • ترکیب آرشیو و فشرده‌سازی: معمولاً tar برای آرشیو و سپس gzip یا bzip2 برای فشرده‌سازی فایل .tar ایجاد شده به کار می‌روند (مانند tar -czvf).

  • at: اجرای یک دستور یک بار در آینده.

  • cron / crontab: اجرای مکرر دستورات یا اسکریپت‌ها در زمان‌های مشخص (روزانه، هفتگی، ماهانه).

  • فرمت crontab: پنج فیلد زمانی (دقیقه، ساعت، روز ماه، ماه، روز هفته) به همراه دستور اجرایی.

  • مدیریت وظایف زمان‌بندی شده: استفاده از atq, atrm, crontab -l, crontab -r برای مشاهده، حذف یا ویرایش وظایف.

دروس متنی

#1

جلسه 1 نرم افزارهای متن باز )Source Open ،)معرفی سیستم عامل لینوکس،

#2

جلسه 2معرفی انواع محیط های کاربری گرافیکی و خط فرمان لینوکس و

#3

جلسه 3 معرفی انواع محیط های کاربری گرافیکی و خط فرمان لینوکس و نحوه اتصال و کار با آنها

#4

جلسه 4 بررسی نیازهای سخت افزاری سخت افزار برای نصب لینوکس و نصب و راه اندازی

#5

جلسه 5 معرفی محیط های خط فرمان لینوکس، نحوه نامگذاری محیطهای خط فرمان،

#6

جلسه 6آشنایی با نرمافزارهای ویرایشگر متن مانند: vim ،nano و ... کار با فرامین پردازش متن

#7

جلسه 7ساختار یک بسته نرمافزاری لینوکس، مدیریت بستههای نرمافزار لینوکس.

#8

جلسه 8 مدیریت پراسس ها و انواع پراسس ها در لینوکس،

#9

جلسه 9 مجوزهای فایل ها و نحوه کار با فرامین chmod ،umask ،chattr

#10

جلسه 10فرامین ایجاد، فرمت و مدیریت پارتیشن، مانند: df ،du ،mkfs ،mount

#11

جلسه 11مدیریت کاربران و فرامین groupadd ،passwd ،useradd

#12

جلسه 12 فرامین پشتیبان گیری و فشرده سازی مانند: cpio ،tar ،zip ،gzip ،bzip و ...

#13

جلسه 13 نحوه پیکربندی کارت شبکه در لینوکس و کار با فرمان ifconfig ،ping

مشاهده دروس کامل بررسی صفحه یادگیری دوره
درس متنی 12/13
در حال مشاهده
جلسه 12 فرامین پشتیبان گیری و فشرده سازی مانند: cpio ،tar ،zip ،gzip ،bzip و ...