Future ForgeFuture ForgeFuture ForgeFuture Forge
ServicesWorkPackagesFree toolsNotesAboutContact
Start
  1. Home
  2. /Notes
Future ForgeFuture Forge

Product engineering studio — design, build, and deploy software.

Discuss your project

Contact

hello@futureforge.ir09128464105
Future ForgeFuture Forge

Product engineering studio — design, build, and deploy software.

Services

Product engineeringFull-stack engineeringEngineering auditArchitecture consultingInfrastructure and deploymentAI in the product

Explore

WorkNotesFAQPackages

Free tools

Engineering auditArchitecture advisorProject estimatorPrompt tool

Company

AboutContactPrivacyTerms of use

Discuss your project

Describe the problem and the constraints. If there is a fit, we will schedule a conversation.

Discuss your project

Contact

hello@futureforge.ir09128464105
GitHubLinkedIn

© 2026 FutureForge. All rights reserved.

HomeServicesFree toolsStart
Operations

journalctl: خواندن و فیلتر لاگ‌های systemd

چگونه با journalctl لاگ واحدها، بوت‌ها و بازه‌های زمانی را ببینید؛ دنبال‌کردن زنده و اشتباه‌های رایج journal.

SE
Soheil Ebrahimpour

Founder & product engineer

·Sep 20, 2026·4 min read
journalctlsystemd journaljournaldlogs-u-b-fpriority
لاگ ترمینال و استیکی journal کنار لامپ

وقتی `systemctl status` فقط می‌گوید failed، داستان کامل معمولاً در journal است. journald لاگ‌های ساخت‌یافته را از هسته، سرویس‌ها و stdout/stderr واحدها جمع می‌کند. journalctl ابزار پرس‌وجوی همان ذخیره‌گاه است — با فیلتر روی واحد، بوت، اولویت و زمان.

بدون journalctl، بین چند فایل در /var/log و چرخش logrotate گم می‌شوید؛ با آن هم اگر فیلتر نکنید در سیلاب خطوط غرق می‌شوید. این مقاله فیلترهای پرکاربرد را با فرمان واقعی نشان می‌دهد.

فیلترهای -u --since -f روی استیکی

پاسخ کوتاه

برای یک سرویس: `journalctl -u name.service -e`. برای دنبال‌کردن زنده: `-f`. برای بوت جاری: `-b` و برای بوت قبلی `-b -1`. بازهٔ زمانی با `--since`/`--until`. اولویت با `-p`. روی سرورهای پرلاگ همیشه بازه یا واحد را تنگ کنید؛ خروجی بدون فیلتر برای انسان نیست.

اول واحد و زمان را قفل کنید؛ بعد متن را بخوانید — نه برعکس.

دیدن لاگ یک سرویس

bash

journalctl -u ssh.service journalctl -u nginx.service -e journalctl -u nginx.service -n 100 --no-pager

-e پرش به انتها، -n تعداد خطوط، --no-pager برای اسکریپت و کپی. روی اوبونتو واحد SSH معمولاً ssh.service است.

bash

journalctl -u ssh.service -u systemd-networkd.service --since '1 hour ago'

دنبال‌کردن زنده

bash

journalctl -u myapp.service -f journalctl -f -p err

معادل عملیاتی tail -f برای journal. هنگام Reproduce خطا یک ترمینال -f باز بگذارید و در دیگری سرویس را restart کنید.

بوت‌ها: جدا کردن داستان هر بالاآمدن

bash

journalctl --list-boots journalctl -b journalctl -b -1 journalctl -b -1 -p err

وقتی «بعد از ریبوت خراب شد»، بوت قبلی (-b -1) را با بوت جاری مقایسه کنید. بسیاری از خطاهای文件系统 و شبکه فقط در پنجرهٔ بوت دیده می‌شوند.

زمان و اولویت

bash

journalctl --since '2026-09-05 10:00:00' --until '2026-09-05 11:30:00' journalctl --since '30 min ago' -p warning journalctl -p err..alert

سطوح اولویت از emerg تا debug شبیه syslog هستند. برای نویز کمتر از err یا warning شروع کنید، بعد در صورت نیاز پایین بیایید.

فیلدهای ساخت‌یافته

journal فقط متن نیست؛ فیلدهایی مثل _PID، _UID، PRIORITY، SYSLOG_IDENTIFIER دارد.

bash

journalctl _UID=33 -n 50 journalctl SYSLOG_IDENTIFIER=sudo -n 20 journalctl -o verbose -n 1

خروجی verbose همهٔ فیلدها را نشان می‌دهد؛ برای فهم اینکه چه کلیدی فیلتر کنید مفید است. خروجی json برای لوله به ابزار دیگر:

bash

journalctl -u myapp -n 5 -o json-pretty

هسته و دیسک

bash

journalctl -k -b journalctl --disk-usage journalctl --vacuum-size=200M journalctl --vacuum-time=14d

-k پیام‌های کرنل (شبیه dmesg یکپارچه با journal). vacuum برای کنترل رشد ذخیره‌گاه پایا — سیاست دقیق‌تر در journald.conf است. روی سیستم‌های volatile ممکن است journal فقط در حافظه باشد و بعد از ریبوت پاک شود.

دسترسی و مجوز

کاربر عادی معمولاً فقط لاگ‌های خودش را می‌بیند. برای لاگ سیستم به عضویت گروه systemd-journal یا sudo نیاز دارید. در تیم‌ها، به‌جای دادن root کامل، عضویت گروه journal را بررسی کنید.

bash

id ls -l /var/log/journal 2>/dev/null | head

الگوی عیب‌یابی ۱۵ دقیقه‌ای

  1. systemctl --failed را ببینید.
  2. journalctl -u UNIT -b -p err..warning --no-pager
  3. اگر خالی بود بازه را بازتر یا اولویت را پایین‌تر کنید.
  4. با -o verbose یک خط نمونه را برای فیلدها بشکافید.
  5. اگر به بوت مربوط است --list-boots و -b -1 را مقایسه کنید.

bash

systemctl --failed journalctl -u UNIT -b -p err --no-pager | tail -n 50

journal در برابر فایل‌های سنتی

هنوز هم rsyslog یا فایل‌های /var/log/nginx/ ممکن است موازی باشند. journal برای واحدهای systemd و همبستگی زمانی عالی است؛ فایل اپ ممکن است قالب دامنهٔ خودش را داشته باشد. هر دو را بشناسید؛ یکی را مذهب نکنید.

اشتباه‌های رایج

  • اجرای journalctl بدون فیلتر روی سرور پرلاگ و گیر کردن در pager.
  • فراموش --no-pager در CI/اسکریپت.
  • جست‌وجوی فقط در /var/log درحالی‌که سرویس فقط به journal می‌نویسد.
  • vacuum تهاجمی بلافاصله پس از حادثه و پاک کردن شواهد.
  • فرض پایا بودن journal روی همهٔ ابرتصویرها.

خلاصه

journalctl چشم شما به شکست‌های systemd است: واحد، بوت، زمان، اولویت. با -f زنده ببینید، با -b داستان ریبوت را جدا کنید، و قبل از پاک‌سازی حجم، تحقیق را تمام کنید. در کنار systemctl، بخش زیادی از عیب‌یابی سرور لینوکس مدرن همین دو فرمان است.

سوالات متداول

چرا journalctl خالی است؟

مجوز کم، واحد اشتباه، journal volatile پس از ریبوت، یا فیلتر زمانی/اولویت بیش از حد تنگ. اول بدون -p و با -n 50 روی همان -u امتحان کنید.

چطور فقط امروز را ببینم؟

`journalctl --since today` یا `--since '00:00'` به‌همراه واحد مورد نظر.

منابع و مراجع

  • journalctl(1): https://www.freedesktop.org/software/systemd/man/latest/journalctl.html
  • systemd-journald.service(8): https://www.freedesktop.org/software/systemd/man/latest/systemd-journald.service.html
  • systemd.journal-fields(7): https://www.freedesktop.org/software/systemd/man/latest/systemd.journal-fields.html

Author

SE

Soheil Ebrahimpour is the founder of FutureForge. He works on product design, architecture, and getting custom software into production.

Related notes

Related notes

Categories

Related services

From note to project

If this topic is close to your product or system, we can talk about the real scope.

If you are unsure about architecture or the build path, we can talk about the project.

Describe the problem and the constraints. If there is a fit, we will schedule a conversation.

Soheil Ebrahimpour
Notes
systemd چیست؟ مدیر راه‌اندازی و سرویس در لینوکس مدرن
Logging چیست؟ ثبت رویداد برای تشخیص و پاسخ به حادثه
تعیین اندازهٔ سرور: RAM، CPU و Storage بر اساس Workload
Docker در برابر Kubernetes؛ مقایسهٔ دقیق نه شعار
چرا همیشه به Kubernetes نیاز ندارید؟

Operations

systemd چیست؟ مدیر راه‌اندازی و سرویس در لینوکس مدرن

Sep 20, 2026

Operations

Logging چیست؟ ثبت رویداد برای تشخیص و پاسخ به حادثه

Sep 20, 2026

Operations

تعیین اندازهٔ سرور: RAM، CPU و Storage بر اساس Workload

Sep 20, 2026

Operations

Docker در برابر Kubernetes؛ مقایسهٔ دقیق نه شعار

Sep 20, 2026

Operations

چرا همیشه به Kubernetes نیاز ندارید؟

Sep 20, 2026
All notes219
Software architecture13
Glossary37
Operations87
Product engineering74
Web guide8
Product engineering
Full-stack engineering
Engineering audit
Architecture consulting
Infrastructure and deployment
Discuss your project
Free tools
Discuss your project