Linux Zone | لینوکس زون
147 subscribers
5 photos
1 video
26 links
اینجا هر چیزی که درباره لینوکس می‌دونیم باهاتون به اشتراک می‌ذاریم 🐧

©️ این کانال بخشی از مجموعه @ninja_learn_ir است.
Download Telegram
‏GRUB چیه؟📂
‏GRUB مخفف GNU GRUB یا GNU GRand Bootloader هست. این ابزار یه bootloader چند مرحله ایه که وظیفه داره کرنل سیستم عامل از روی دیسک پیدا کنه و اجراش کنه. ولی پشت این ظاهر ساده ساختار نسبتا پیچیده و وظیفه ی مهمی داره.

ساختار کلی GRUB🛠️
گراب رو میشه توی دوتا لایه تعریف کرد:
1️⃣لایه ی اول:
این قسمت بسیار کوچیکه و بسته به نوع سیستمتون داخل MBR یا EFI Partition ذخیره میشه. تنها کاری که انجام میده بارگذاری بخش بعدی GRUB هست. چون فضای بسیار محدودی داره، فقط نقش یک واسطه ساده رو بازی میکنه.
2️⃣لایه ی دوم:
این بخش روی پارتیشن سیستم(معمولا boot/) قرار میگیره و شامل اجزای اصلی GRUB هست. مثل ماژول ها، فایل های تنظیمات، تم ها منوی بوت. GRUB در این بخش قابلیت هایی مثل خوندن فایل سیستم ها، نمایش منوی انتخاب سیستم عامل و بارگذاری کرنل لینوکس یا bootloader ویندوز رو داره.

مهم ترین فایل ها و مسیرها در GRUB:🗃️
‏boot/grub/grub.cfg/:

فایل اصلی کانفیگ های GRUB. این فایل خودکار توسط grub-mkconfig ساخته میشه. معمولا نباید اون رو ویرایش کرد.

‏etc/default/grub/:

این فایلیه که قابل ویرایشه،‌اینجا گزینه هایی مثل سیستم عامل پیش فرض، زمان تایمر منو،‌تنظیمات گرافیکی و ... رو میتونید مشخص کنید.
فقط بعد از ویرایش فایل و نوشتن تنظیمات خودتون باید این دستور رو بزنید:
sudo update-grub


‏/boot/grub/:

این مسیر شامل تمام فایل های مرتبط با GRUB هست، مثل grub.cfg، ماژول ها، تم ها و تنظیمات دیگه.

ماژول های GRUB:🔗
این ابزار به شکل ماژولار طراحی شده، یعنی قابلیت لود فایل سیستم ها، رمزنگاری، شبکه و کلی تنظیمات و امکانات دیگه از طریق ماژول ها اضافه میشه و در نهایت با کنار هم قرار گرفتن ماژول ها GRUB میتونه به درستی کارهای خودش و کارهای فوق‌العاده دیگه ای انجام بده. مثلا:
‏ext2.mod:
پشتیبانی از ext2/ext3/ext4
‏linux.mod:
لود کرنل‌های لینوکس
‏luks.mod:
پشتیبانی از پارتیشن‌های رمزنگاری‌شده

چطوری میشه توی GRUB تغییر ایجاد کرد؟🛠️
فقط کافیه که فایل /etc/default/grub/ رو ادیت کنید. برای مثال:
GRUB_TIMEOUT=3
GRUB_DISTRIBUTOR=`lsb_release -i -s`
GRUB_DEFAULT=0
GRUB_THEME="/boot/grub/themes/your-theme/theme.txt"

و بعدش میتونید با اجرای دستور زیر تنظیمات جدید رو اعمال کنید:
sudo update-grub


جمع بندی✍️
‏GRUB یه bootloader قدرتمند، کاملا آزاد و متن بازه که میتونه سیستم عامل های مختلف رو مدیریت کنه و توی مدیریت چندین سیستم عامل مختلف روی یه کامپیوتر کمک کنه. قابلیت شخصی سازی بالایی داره، از تغییر تایمر و ترتیب منو گرفته تا اضافه کردن پس زمینه و حتی نصب تم های گرافیکی خاص و جذاب. تنظیم کردنش هم ساده هست و با مقداری گشتن میتونید دقیقا به همون چیزی تبدیلش کنید که میخواید.

#linux #bootloaders #GRUB


🐧 CHANNEL | GROUP
👍3
‏Cron Jobs در لینوکس
‏Cron یک از ابزار های قدرتمند و کاربردی لینوکسه که به شما اجازه میده دستورات یا اسکریپت هارو توی یه بازه/دوره ی زمانی مشخص و کاملا خودکار اجرا کنید.

‏Cron Job چیه؟

‏cron job یه تسک زمان بندیه که توی سیستم های Unix Base اجرا میشه. به طور مثال شما میتونید کارهای زیر رو با کمک cron job کاملا خودکار و زمان بندی شده انجام بدید.
اجرای روزانه اسکریپت بکاپ
پاک کردن لاگ ها یا فایل های کش قدیمی
ارسال ایمیل گزارش ها به ادمین سیستم
اجرای یک API call توی زمان مشخص

ساختار زمان بندی توی cron
⏱️
این ابزار برای زمان بندی از یه سینتکس خاصی استفاده میکنه که همین خاص بودنش باعث شده درکش پیچیده باشه و در عین حال بشدت کاربردیش کرده.
* * * * * command_to_run
│ │ │ │ │
│ │ │ │ └ Day of the Week (0 - 7)
│ │ │ └── Month (1 - 12)
│ │ └──── Day of the Month (1 - 31)
│ └────── Hour (0 - 23)
└──────── Minute (0 - 59)

مثلا دستور زیر یک اسکریپت رو هرروز ساعت 2:30 اجرا میکنه:
30 2 * * * /home/rick/backup.sh


مدیریت Cron Jobs🛠
با استفاده از کامند crontab میتونید cron job هاتون رو مدیریت کنید.
ایجاد یا ویرایش cron jobها:
crontab -e

لیست cron job های فعال برای کاربر فعلی:
crontab -l

حذف کرون جاب های فعلی:
crontab -f

حتی میتونید از اجرا شدن cron هاتون لاگ هم داشته باشین:
0 2 * * * /home/rick/backup.sh >> /var/log/backup.log 2>&1


نکات مهم⚠️
1.محیط اجرای cron با محیط ترمینال فرق داره
ممکنه بعضی متغیر های محیطی توی cron در دسترس نباشن. پس بهتره که مسیر کامل دستورات و فایل هارو بنویسید. به عنوان راه حل میتونید مستقیما اون متغیر هارو توی crontab تعریف کنید.
PATH=/usr/bin:/bin:/usr/local/bin

2.برای اجرای اسکریپت ها مطمئن باشید که فایل دسترسی اجرا شدن رو داشته باشه.
میتونید با دستور زیر این دسترسی رو به اسکریپت بدین.
chmod +x ./script.sh


مثال
📝
*/15 * * * * /home/rick/check_server.sh 
# Every 15 minutes
0 9 * * 1 /home/rick/weekly_report.sh
# Every Monday at 9 AM
0 3 1 * * /home/rick/monthly_cleanup.sh
# On the 1st of each month at 3 AM


مشاهده لاگ‌های cron🔎

اگه میخواین بدونین cron job هاتون واقعا اجرا شدن یا نه، میتونید لاگ های سیستم رو چک کنید:
grep CRON /var/log/syslog    # Debian/Ubuntu
journalctl -u cron.service # systemd-based systems


جمع بندی✍️
‏Cron یکی از دوست داشتنی ترین ابزار های لینوکسه که فقط با چند خط ساده میتونید کلی از کارهای تکراری و خودکار انجام بدین و یه خودکارسازی خوب برای خودتون یا سرورتون داشته باشین. البته که سینتکس زمانبندیش یکمی پیچیدس ولی بعد یه مدتی دستتون میاد و بهش عادت میکنید.

#️⃣#linux #tools


🐧 CHANNEL | GROUP
2🔥1
یه چیت شیت کوچیک مربوط به کرون جاب ها
🔥2
اثربخشی تکنیک های تعمیر کامپیوتر روی سیستم عامل های مختلف

#️⃣#linux #meme


🐧 CHANNEL | GROUP
🤣8
میرور ها توی لینوکس🐧
حتما توی استفاده از لینوکستون از دستور های آپدیت پکیج منیجر ها(مثل apt update) استفاده کردید. دستور هایی که نسخه های پکیج های مختلف نرم افزاری رو از مخزن بسته ها دریافت میکنن و اگه نیاز به بروزرسانی داشته باشن براتون بروزرسانی انجام میدن. ولی این مخزن ها چی هستن؟

‏Mirror ها یا مخازن🪞
هر پکیج منیجر یه مخزن یا به اصطلاح Mirror داره. مخزن ها سرورهایی هستن که نسخه های مشابهی از یه پکیج نرم افزاری رو نگه میدارن. این مخزن ها توی سراسر دنیا هستن و یه جورایی پخش شدن. اینجوری دیگه همه ی کاربرا از فقط یه سرور استفاده نمیکنن. توی نقاط مختلف ایران مخزن های مختلفی وجود داره تا دانلود ها سریع تر و پایدار بشن.
مثلا:
sudo apt update
sudo apt install vim

اینجا apt میره از یکی از مخزن ها پکیج vim رو میگیره و نصب میکنه.

چرا این همه Mirror به وجود اومدن؟🤔
اگه این مخازن توی نقاط مختلف پخش نشده بودن یا فقط یه سرور واحد وجود داشت، با درخواست آپدیت همزمان کاربرا سرعت دانلود میومد پایین و همچنین دانلود ناپایدار بود. اما اینجوری هرکی میتونه مخزن مناسب خودش(مثلا نزدیک به محل زندگیش یا کشور خودش) رو انتخاب کنه و پکیج هاشو از اونجا دانلود کنه.
اینجوری بار این همه درخواست بین سرورهای مختلف تقسیم میشه و سرعت و پایداری هم بالا میره. توی بعضی موارد(مثل کالی یا فدورا) هم میتونیم با عوض کردن مخازن تحریم هارو دور بزنیم.

چطوری نسخه ها هماهنگ میمونن؟🔄
وقتی دستور apt update رو می‌زنید، سیستم میره سراغ فایل‌هایی مثل Packages.gz و Release توی مخزن (repository) که لیست کامل بسته‌ها، نسخه‌ها و هش‌ها رو نگه می‌دارن. این فایل‌ها از سرورهای مخزن ها میان، ولی اصلشون از مخزن اصلی (مثلاً deb.debian.org) تولید می‌شه. حالا میرورها با استفاده از ابزارهایی مثل rsync یا apt-mirror به‌صورت خودکار و منظم با مخزن اصلی همگام می‌شن و فقط فایل‌های جدید یا تغییر کرده رو می‌گیرن. اینطوری همه میرورها تقریباً همیشه نسخه‌ی هماهنگی از پکیج‌ها دارن و وقتی چیزی نصب می‌کنید، از نزدیک‌ترین یا سریع‌ترین میرور دانلود میشه.

پکیج ها توی مخازن دستکاری نمیشن؟🔐
برای اینکه هیچکس نتونه پکیج های داخل مخزن ها رو دستکاری کنه یا نسخه ی مخرب آپلود کنه، هر پکیج با کلید دیجیتال(GPG) امضا میشه. وقتی از دستورهای آپدیت استفاده میکنین سیستم فایل Release.gpg رو بررسی میکنه که امضای دیجیتال پکیج هارو توی خودش داره. این امضا فقط با کلید رسمی توزیع قابل اعتبار سنجیه.
پکیج منیجر هش هر پکیج رو با چیزی که توی فایل Packages.gz ثبت شده مقایسه میکنه، اگه حتی یه بیت از پکیج دستکاری شده باشه هش تایید نمیشه و پکیج نصب نمیشه.

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

#️⃣#linux #terminal #tools


🐧 CHANNEL | GROUP
👍2