کارگاه سیستم عامل
درس متنی
جلسه 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.
تمرینهای پایان فصل
بخش اول: پشتیبانگیری و فشردهسازی
- یک فایل متنی به نام
notes.txtبا چند خط محتوا ایجاد کنید. - این فایل را با استفاده از
gzipفشرده کنید. سپس فایل فشرده شده را از حالت فشرده خارج کنید و محتوای آن را با فایل اصلی مقایسه کنید. - یک دایرکتوری به نام
project_filesبسازید و چند فایل نمونه (مانند فایلهای متنی یا تصاویر کوچک) را درون آن قرار دهید. - با استفاده از
tarوgzip، یک آرشیو فشرده از کل دایرکتوریproject_filesبا نامproject_backup.tar.gzایجاد کنید. - آرشیوی که در مرحله قبل ساختید را استخراج کنید و بررسی کنید که آیا محتویات آن با دایرکتوری اصلی یکسان است یا خیر.
- فرض کنید میخواهید یک آرشیو فشرده از دایرکتوری
project_filesبسازید که بتوانید به راحتی در ویندوز نیز از آن استفاده کنید. کدام ابزار را پیشنهاد میکنید و چرا؟ دستور مربوطه را بنویسید.
بخش دوم: زمانبندی
- یک دستور ساده (مثلاً
echo "Hello from at!") را طوری زمانبندی کنید که دقیقاً ۵ دقیقه دیگر اجرا شود. سپس با استفاده ازatqبررسی کنید که آیا در صف انتظار قرار گرفته است. - یک اسکریپت ساده (مثلاً یک فایل shell script که تاریخ و زمان جاری را در یک فایل log مینویسد) ایجاد کنید.
- این اسکریپت را طوری زمانبندی کنید که هر روز ساعت ۱ بامداد اجرا شود. (نام فایل اسکریپت را
daily_log.shو فایل log راtimestamp.logفرض کنید). - یک یادآور برای خودتان تنظیم کنید تا هر پنجشنبه ساعت ۴ بعد از ظهر به شما پیام دهد (میتوانید از دستور
mailیاechoاستفاده کنید). - اگر اشتباهی در تنظیم
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
مشاهده دروس کامل
بررسی صفحه یادگیری دوره