Files
nearology 99fb7f0e82 Add sitemap and styles for Persian font integration
- Created a new sitemap.xml file for better SEO.
- Added a compressed version of the sitemap as sitemap.xml.gz.
- Introduced extra.css for custom styles, including Persian font support (IRANSansX).
- Defined font-face rules for regular and bold styles of IRANSansX.
- Implemented various text styles and layout adjustments for better readability.
- Enhanced Mermaid diagram styles to support Persian text rendering.
2026-04-28 15:27:18 +03:30

19 lines
2.3 KiB
Markdown

# تمرین ۷: پایپ‌لاین خطاگیر
## صورت سؤال
در یک سیستم چند سرویس مختلف لاگ‌های خود را در دایرکتوری `~/logs` ذخیره می‌کنند. فایل‌هایی که با الگوی `service-*.log` نام‌گذاری شده‌اند ممکن است پیام‌های خطا داشته باشند. هدف شما ساخت یک پایپ‌لاین است که اطلاعات زیر را استخراج کند:
1. همهٔ فایل‌های مطابق الگو را بخوانید و فقط خطوطی که عبارت `ERROR` دارند فیلتر کنید.
2. تعداد کل پیام‌های خطا را بشمارید و نتیجه را در فایلی به نام `error-count.txt` بنویسید.
3. همزمان باید همان خروجی فیلترشده روی صفحه نمایش داده شود تا بتوانید خطاها را مشاهده کنید.
4. برای اطمینان، پیام‌های خطای فیلتر شده را نیز در فایلی به نام `errors-full.log` ذخیره کنید؛ درصورتی که فایل از قبل وجود داشته باشد باید به انتهای آن اضافه شود.
## شرایط
- فرض کنید ابزار `gzip` به صورت دوره‌ای فایل‌ها را فشرده می‌کند. لازم است پایپ شما فقط فایل‌های متنی بدون فشرده‌سازی (پسوند `.log`) را پردازش کند.
- اگر دستور شما هنگام اجرا با خطایی مواجه شد، پیام خطا باید در فایلی با نام `pipeline-errors.log` ذخیره شود تا بعداً بررسی شود.
## راهنمایی
- برای جلوگیری از نمایش پیام‌های خطا روی صفحه، از تغییر مسیر `2>` استفاده کنید.
- دستور `tee` می‌تواند خروجی را همزمان در فایل و ترمینال چاپ کند؛ برای افزودن به فایل از گزینهٔ `-a` استفاده کنید.
- ترکیب `cat`, `grep`, `wc -l`, `tee` و تغییر مسیر جریان‌ها یک راه‌حل متداول برای چنین تمرینی است. هدف نهایی ساخت یک پایپ‌لاین قابل‌اعتماد و قابل‌خواندن است.