journalctl - پرسوجو
و مشاهده
گزارشها و
لاگهای
ژورنال systemd
journalctl [OPTIONS...] [MATCHES...]
دستور journalctl
برای چاپ و
مشاهده
رکوردهای
لاگ
ذخیرهشده
در ژورنال
توسط systemd-journald.service(8) و
systemd-journal-remote.service(8) به
کار
میرود.
اگر بدون
هیچ
پارامتری
فراخوانی
شود،
محتویات
ژورنالِ در
دسترس برای
کاربر
فراخواننده
را، با شروع
از
قدیمیترین
رکورد
جمعآوریشده
نمایش
میدهد.
اگر یک یا
چند
آرگومان
تطابق (match)
داده شود،
خروجی بر
اساس آنها
فیلتر
میشود.
ساختار
تطابق به
قالب "FIELD=VALUE"
است، برای
نمونه
"_SYSTEMD_UNIT=httpd.service"، که
به
مؤلفههای
یک رکورد
ساختاریافته
ژورنال
اشاره دارد.
برای
مشاهده
فهرستی از
فیلدهای
شناختهشده،
systemd.journal-fields(7) را
ببینید. اگر
چندین
تطابق
مربوط به
فیلدهای
متفاوت
مشخص شوند،
رکوردهای
لاگ بر اساس
همه آنها
فیلتر
میشوند،
یعنی خروجی
حاصل فقط
رکوردهایی
را نشان
میدهد که
با تمام
تطابقهای
تعیینشده
از این نوع
همخوانی
داشته
باشند. اگر
دو تطابق بر
روی یک فیلد
یکسان
اعمال
شوند،
بهطور
خودکار
بهعنوان
گزینههای
جایگزین در
نظر گرفته
میشوند،
یعنی خروجی
حاصل
رکوردهایی
را نشان
میدهد که
با هر یک از
تطابقهای
مشخصشده
برای همان
فیلد
همخوانی
داشته
باشند. در
نهایت،
نویسه "+"
میتواند
به عنوان یک
کلمه مجزا
میان سایر
عبارتها
در خط فرمان
قرار گیرد.
این کار
باعث
میشود
تمام
تطابقهای
قبل و بعد از
آن در یک فصل
منطقی (یا به
عبارتی OR
منطقی) با
یکدیگر
ترکیب
شوند.
همچنین
میتوان با
مشخص کردن
مسیر مطلق
یک فایل به
عنوان
آرگومان،
رکوردها را
فیلتر کرد.
مسیر فایل
میتواند
یک فایل
معمولی یا
یک پیوند
نمادین (symbolic link)
باشد و فایل
باید در
زمان اجرای
پرسوجو
وجود داشته
باشد. اگر
مسیر فایل
به یک
باینری
اجرایی
اشاره کند،
تطابق "_EXE="
برای مسیر
استانداردشده
(canonicalized) باینری
به پرسوجو
افزوده
میشود. اگر
مسیر فایل
به یک
اسکریپت
اجرایی
اشاره کند،
تطابق "_COMM="
برای نام
اسکریپت به
پرسوجو
اضافه
میشود. اگر
مسیر فایل
به یک نود
دستگاه (device node)
اشاره کند،
تطابقهای
"_KERNEL_DEVICE=" برای
نام هسته
دستگاه و
برای هر یک
از
دستگاههای
والد آن به
پرسوجو
افزوده
میشود.
پیوندهای
نمادین
بازگشایی
میشوند،
نامهای
کرنل تولید
میگردند،
و
دستگاههای
والد بر
اساس محیط
در زمان
پرسوجو
شناسایی
میشوند.
بهطور
کلی، یک نود
دستگاه
بهترین
نماینده
برای یک
دستگاه
واقعی است،
زیرا
رکوردهای
لاگ
معمولاً
شامل
فیلدهایی
نیستند که
یک دستگاه
واقعی را
مستقیماً
شناسایی
کنند. برای
اینکه
رکوردهای
لاگ حاصل
برای
دستگاه
واقعی دقیق
باشند،
بخشهای
مربوطه از
محیط در
زمان ثبت
لاگ،
بهویژه
دستگاه
واقعی
متناظر با
نود
دستگاه،
باید با
شرایط در
زمان
پرسوجو
یکسان بوده
باشند. از
آنجا که
نودهای
دستگاه
معمولاً پس
از
راهاندازی
مجدد سیستم
(reboot) دستگاه
متناظر خود
را تغییر
میدهند،
مشخص کردن
مسیر یک نود
دستگاه
باعث
میشود
رکوردهای
حاصل به
موارد
مربوط به
بوت فعلی
محدود
شوند.
محدودیتهای
بیشتری را
میتوان با
استفاده از
گزینههای
--boot، --unit= و
غیره اضافه
کرد تا
رکوردهایی
که نشان
داده
میشوند
بیشتر
فیلتر شوند
(AND منطقی).
خروجی
بهصورت
درهمآمیخته
از تمام
فایلهای
ژورنال در
دسترس
نمایش داده
میشود،
خواه
چرخشیافته
(rotated) باشند یا
در حال حاضر
در حال
نوشتن، و
صرفنظر از
اینکه به
خود سیستم
تعلق داشته
باشند یا
ژورنالهای
قابل دسترس
کاربران
باشند. از
گزینه --header
میتوان
برای
شناسایی
فایلهایی
که نشان
داده
میشوند
استفاده
کرد.
مجموعه
فایلهای
ژورنال
مورداستفاده
را میتوان
با استفاده
از
گزینههای
--user، --system، --directory= و
--file= تغییر
داد؛ به
موارد زیر
مراجعه
کنید.
به تمام
کاربران
دسترسی به
ژورنالهای
خصوصی
کاربریشان
داده شده
است. با این
حال،
بهطور
پیشفرض،
فقط کاربر
ریشه (root) و
کاربرانی
که عضو چند
گروه خاص
هستند
اجازه
دسترسی به
ژورنال
سیستم و
ژورنالهای
سایر
کاربران را
دارند.
اعضای
گروههای
"systemd-journal"، "adm" و
"wheel"
میتوانند
تمام
فایلهای
ژورنال را
بخوانند.
توجه داشته
باشید که دو
گروه آخر
معمولاً
امتیازات و
اختیارات
بیشتری
دارند که
توسط توزیع
مشخص
میشود.
اعضای گروه
"wheel" اغلب
میتوانند
وظایف
مدیریتی
سیستم را
انجام
دهند.
خروجی
بهطور
پیشفرض از
طریق less
صفحهبندی
میشود و
خطوط
طولانی به
اندازه
پهنای صفحه
بریده
(«کوتاه»)
میشوند.
بخش پنهان
را میتوان
با استفاده
از کلیدهای
جهتنمای
چپ و راست
مشاهده کرد.
صفحهبندی
را میتوان
غیرفعال
کرد؛ به
گزینه --no-pager و
بخش «محیط
(ENVIRONMENT)» در زیر
مراجعه
کنید.
هنگام
ارسال
خروجی به tty،
خطوط بر
اساس
اولویت
رنگآمیزی
میشوند:
خطوط سطح ERROR و
بالاتر با
رنگ قرمز؛
خطوط سطح WARNING
با رنگ زرد؛
خطوط سطح NOTICE
برجسته (highlight)؛
خطوط سطح INFO
بهصورت
عادی؛ و
خطوط سطح DEBUG
با رنگ
خاکستری
نمایش داده
میشوند.
برای
نوشتن
رکوردها به
درون
ژورنال،
میتوان از
چند روش
استفاده
کرد. بهطور
کلی، خروجی
واحدهای systemd
بهطور
خودکار به
ژورنال
متصل است؛
systemd-journald.service(8) را
ببینید.
علاوه بر
این،
میتوان از
systemd-cat(1) برای
ارسال
مستقیم
پیامها به
ژورنال
استفاده
کرد.
گزینههای
زیر مکان
خواندن
رکوردهای
ژورنال را
کنترل
میکنند:
--system, --user
نمایش
پیامهای
سرویسهای
سیستمی و
کرنل (با
--system).
نمایش
پیامهای
سرویس
کاربر جاری
(با
--user). اگر
هیچکدام
مشخص نشود،
تمام
پیامهایی
که کاربر
میتواند
ببیند نشان
داده
میشوند.
گزینه --user
بر نحوه
پردازش
آرگومانهای
--unit= تأثیر
میگذارد.
به --unit=
مراجعه
کنید.
توجه
داشته
باشید که --user
تنها زمانی
کار میکند
که ثبت
پایدار
لاگها (persistent logging)
از طریق
تنظیم Storage= در
journald.conf(5) فعال
شده باشد.
افزودهشده
در نسخه 205.
-M, --machine=
نمایش
پیامهای
یک کانتینر
محلی و در
حال اجرا.
نام یک
کانتینر را
برای اتصال
به آن مشخص
کنید.
افزودهشده
در نسخه 209.
-m, --merge
نمایش
رکوردها
بهصورت
درهمآمیخته
از تمام
ژورنالهای
موجود، از
جمله
ژورنالهای
راهدور (remote).
افزودهشده
در نسخه 190.
-D DIR,
--directory=DIR
مسیر یک
دایرکتوری
را به عنوان
آرگومان
میگیرد. در
صورت
تعیین، journalctl بر
روی
دایرکتوری
ژورنال
مشخصشده
DIR
به جای
مسیرهای
پیشفرض
زمان اجرا و
ژورنال
سیستمی عمل
خواهد کرد.
افزودهشده
در نسخه 187.
-i GLOB, --file=GLOB
یک الگوی
سراسری نام
فایل (file glob) را به
عنوان
آرگومان
میپذیرد.
در صورت
تعیین، journalctl بر
روی
فایلهای
ژورنال
مشخصشده
منطبق با
GLOB
به جای
مسیرهای
پیشفرض
زمان اجرا و
ژورنال
سیستمی عمل
میکند. این
گزینه
میتواند
چندین بار
مشخص شود که
در این حالت
فایلها
بهطور
مناسب
درهمآمیخته
میشوند.
افزودهشده
در نسخه 205.
--root=ROOT
مسیر یک
دایرکتوری
را به عنوان
آرگومان
میگیرد. در
صورت
تعیین،
journalctl
به جای
دایرکتوری
ریشه، روی
دایرکتوریهای
ژورنال و
سلسلهمراتب
فایل
کاتالوگ در
زیر
دایرکتوری
مشخصشده
عمل خواهد
کرد (برای
نمونه
--update-catalog
فایل
ROOT/var/lib/systemd/catalog/database
را ایجاد
خواهد کرد،
و فایلهای
ژورنال زیر
ROOT/run/journal/ یا
ROOT/var/log/journal/
نمایش داده
خواهند شد).
افزودهشده
در نسخه 201.
--image=IMAGE
مسیر یک
فایل ایمیج
دیسک یا نود
دستگاه
بلوکی را
دریافت
میکند. در
صورت
تعیین،
journalctl
روی
سیستمفایل
موجود در
ایمیج دیسک
مشخصشده
عمل خواهد
کرد. این
گزینه شبیه
به
--root= است،
اما روی
سیستمفایلهای
ذخیرهشده
در
ایمیجهای
دیسک یا
دستگاههای
بلوکی عمل
میکند و
بنابراین
روشی آسان
برای
استخراج
دادههای
لاگ از
ایمیجهای
دیسک فراهم
میسازد.
ایمیج دیسک
باید یا فقط
حاوی یک
سیستمفایل
باشد یا
مجموعهای
از
سیستمفایلها
در یک جدول
پارتیشن GPT که
از
مشخصات
پارتیشنهای
قابل کشف (Discoverable
Partitions Specification)[1] پیروی
میکنند.
برای
اطلاعات
بیشتر در
مورد
ایمیجهای
دیسک
پشتیبانیشده،
سوییچ
همنام در
systemd-nspawn(1)' را
ببینید.
افزودهشده
در نسخه 247.
--image-policy=policy
یک رشته
خطمشی
ایمیج را
مطابق با
systemd.image-policy(7) به
عنوان
آرگومان
دریافت
میکند. این
خطمشی
هنگام کار
با ایمیج
دیسک
مشخصشده
از طریق
--image=
(در بالا)
اعمال
میشود. در
صورت عدم
تعیین،
پیشفرض
خطمشی "*"
است، یعنی
تمام
سیستمفایلهای
شناختهشده
درون ایمیج
استفاده
میشوند.
--namespace=NAMESPACE
یک رشته
شناسه
فضاینام (namespace)
ژورنال را
به عنوان
آرگومان
دریافت
میکند. در
صورت عدم
تعیین،
دادههای
جمعآوریشده
توسط
فضاینام
پیشفرض
نشان داده
میشوند. در
صورت
تعیین،
دادههای
لاگ مربوط
به
فضاینام
مشخصشده
را نمایش
میدهد. اگر
فضاینام
به صورت "*"
مشخص شود،
دادههای
تمام
فضاهاینام
بهصورت
درهمآمیخته
نمایش داده
میشوند.
اگر شناسه
فضاینام
با "+"
پیشوند
شود،
دادههای
فضاینام
مشخصشده و
فضاینام
پیشفرض
بهصورت
درهمآمیخته
نمایش داده
میشوند،
اما
دادههای
دیگر نمایش
نخواهند
یافت. برای
جزئیات در
مورد
فضاهاینام
ژورنال،
systemd-journald.service(8) را
ببینید.
افزودهشده
در نسخه 245.
گزینههای
زیر نحوه
فیلتر کردن
رکوردهای
ژورنال را
کنترل
میکنند:
-S, --since=, -U, --until=
شروع به
نمایش
رکوردهایی
با تاریخ
برابر یا
جدیدتر از
تاریخ
مشخصشده،
یا به ترتیب
برابر یا
قدیمیتر
از تاریخ
مشخصشده.
قالب
مشخصات
تاریخ باید
به صورت "2012-10-30
18:17:16" باشد. اگر
بخش زمان
حذف شود، "
00:00:00"
فرض میشود.
اگر فقط بخش
ثانیه حذف
شود، ":00" فرض
میشود. اگر
بخش تاریخ
حذف شود،
روز جاری در
نظر گرفته
میشود.
همچنین
رشتههای
"yesterday" (دیروز)،
"today" (امروز)،
"tomorrow" (فردا)
شناخته
میشوند که
به ترتیب به
00:00:00 روز قبل از
روز جاری،
روز جاری،
یا روز بعد
از روز جاری
اشاره
دارند. "now"
(اکنون) به
زمان فعلی
اشاره دارد.
در نهایت،
زمانهای
نسبی را
میتوان با
پیشوند "-"
یا "+" مشخص
کرد که به
ترتیب به
زمانهای
قبل یا بعد
از زمان
فعلی اشاره
دارند. برای
مشخصات
کامل زمان و
تاریخ،
systemd.time(7)
را ببینید.
توجه داشته
باشید که
--output=short-full
برچسبهای
زمانی را
چاپ میکند
که دقیقاً
از همین
قالب پیروی
میکنند.
افزودهشده
در نسخه 195.
-c, --cursor=
شروع
نمایش
رکوردها از
موقعیتی در
ژورنال که
توسط
مکاننمای
(cursor)
ارائهشده
تعیین شده
است.
افزودهشده
در نسخه 193.
--after-cursor=
شروع
نمایش
رکوردها از
موقعیتی در
ژورنال
پس
از موقعیت
تعیینشده
توسط
مکاننمای
ارائهشده.
مکاننما
زمانی نشان
داده
میشود که
از گزینه
--show-cursor
استفاده
شود.
افزودهشده
در نسخه 206.
--cursor-file=FILE
اگر
FILE
وجود داشته
باشد و شامل
یک
مکاننما
باشد،
نمایش
رکوردها را
از
بعد از
این موقعیت
آغاز
میکند. در
غیر این
صورت،
رکوردها را
بر اساس
سایر
گزینههای
مشخصشده
نمایش
میدهد. در
پایان،
مکاننمای
آخرین
رکورد را در
FILE مینویسد.
از این
گزینه برای
خواندن
مداوم
ژورنال از
طریق
فراخوانیهای
متوالی
journalctl
استفاده
کنید.
افزودهشده
در نسخه 242.
-b [[ID][±offset]|all],
--boot[=[ID][±offset]|all]
نمایش
پیامهای
مربوط به یک
بوت مشخص.
این گزینه
یک تطابق
برای "_BOOT_ID="
اضافه
میکند.
آرگومان
میتواند
خالی باشد،
که در این
حالت
لاگهای
مربوط به
بوت فعلی
نمایش داده
میشوند.
اگر شناسه
بوت حذف
شود، یک
مقدار مثبت
offset بوتها
را با شروع
از ابتدای
ژورنال
جستجو
میکند، و
یک offset مساوی
یا کمتر از
صفر،
بوتها را
با شروع از
انتهای
ژورنال
جستجو
خواهد کرد.
بنابراین،
1 به معنای
اولین بوت
یافتشده
در ژورنال
به ترتیب
زمانی است،
2 دومین بوت
و به همین
ترتیب؛ در
حالی که -0
آخرین بوت،
-1 بوت قبل از
آخرین، و
الی آخر است.
یک offset خالی
معادل مشخص
کردن -0 است،
مگر در
صورتی که
بوت فعلی
آخرین بوت
نباشد (برای
نمونه
زمانی که
--directory= برای
بررسی
لاگهای یک
ماشین دیگر
مشخص شده
باشد).
اگر شناسه
۳۲
نویسهای ID
مشخص شود،
میتواند
به صورت
اختیاری با
یک offset دنبال
شود که بوت
را نسبت به
بوت
تعیینشده
با ID مشخص
میکند.
مقادیر
منفی به
معنای
بوتهای
قبلتر و
مقادیر
مثبت به
معنای
بوتهای
بعدتر
هستند. اگر
offset مشخص
نشود،
مقدار صفر
فرض میشود
و لاگهای
بوت
مشخصشده
با ID نمایش
داده
میشوند.
آرگومان
ویژه all
میتواند
برای خنثی
کردن اثر
استفاده
قبلی از -b به
کار رود.
افزودهشده
در نسخه 186.
-u,
--unit=UNIT|PATTERN
نمایش
پیامها
برای واحد systemd
مشخصشده
UNIT
(مانند یک
واحد
سرویس)، یا
برای هر یک
از واحدهای
منطبق با
الگوی
PATTERN.
اگر یک الگو
مشخص شود،
فهرستی از
نامهای
واحدهای
موجود در
ژورنال با
الگوی
دادهشده
مقایسه
میشود و
تمام موارد
منطبق به
کار گرفته
میشوند.
برای هر نام
واحد، یک
تطابق برای
پیامهای
صادرشده از
آن واحد
("_SYSTEMD_UNIT=
UNIT")
همراه با
تطابقهای
اضافی برای
پیامهای
ناشی از systemd و
پیامهای
مربوط به
خرابی هسته
(coredump) برای آن
واحد اضافه
میشود.
همچنین یک
تطابق برای
"_SYSTEMD_SLICE=
UNIT"
اضافه
میشود، به
گونهای که
اگر
UNIT
ارائهشده
یک واحد
systemd.slice(5)
باشد، تمام
لاگهای
مربوط به
فرزندان آن
برش (slice) نمایش
داده
خواهند شد.
همراه با
گزینه --user،
تمام
آرگومانهای
--unit= به
گونهای
تبدیل
میشوند که
با
پیامهای
کاربر
مطابقت
یابند،
گویی با --user-unit=
مشخص شده
باشند.
این
پارامتر
میتواند
چندین بار
تکرار شود.
افزودهشده
در نسخه 195.
--user-unit=
نمایش
پیامها
برای واحد
نشست
کاربری
مشخصشده.
این گزینه
یک تطابق
برای
پیامهای
دریافتی از
واحد ("_SYSTEMD_USER_UNIT=" و
"_UID=") و
تطابقهای
اضافی برای
پیامهای
ناشی از systemd
نشست و
پیامهای
مربوط به coredump
برای واحد
تعیینشده
اضافه
میکند.
همچنین یک
تطابق برای
"_SYSTEMD_USER_SLICE=
UNIT"
اضافه
میشود،
بهطوریکه
اگر
UNIT
ارائهشده
یک واحد
systemd.slice(5)
باشد، تمام
لاگهای
فرزندان آن
واحد نمایش
داده
خواهند شد.
این
پارامتر
میتواند
چندین بار
مشخص شود.
افزودهشده
در نسخه 198.
-I,
--invocation=ID[±offset]|offset
نمایش
پیامها از
یک
فراخوانی (invocation)
مشخص از یک
واحد. این
گزینه یک
تطابق برای
فیلدهای
"_SYSTEMD_INVOCATION_ID="،
"OBJECT_SYSTEMD_INVOCATION_ID="،
"INVOCATION_ID="، "USER_INVOCATION_ID="
اضافه
میکند.
یک offset
مثبت،
فراخوانیهای
یک واحد systemd را
از ابتدای
ژورنال
جستجو
میکند، و
یک افست صفر
یا منفی،
فراخوانیها
را با شروع
از انتهای
ژورنال
جستجو
خواهد کرد.
بدین
ترتیب، 1 به
معنای
اولین
فراخوانی
یافتشده
در ژورنال
به ترتیب
زمانی است،
2 دومین
مورد و به
همین
ترتیب؛ در
حالی که 0
جدیدترین
فراخوانی،
-1 فراخوانی
قبل از
جدیدترین،
و غیره است.
اگر شناسه
۳۲
نویسهای ID
مشخص شود،
میتواند
به صورت
اختیاری با
یک ±offset
همراه باشد
که
فراخوانی
را نسبت به
مورد
دادهشده
با ID مشخص
میکند.
مقادیر
منفی به
معنای
فراخوانیهای
پیشین و
مقادیر
مثبت به
معنای
فراخوانیهای
پسین هستند.
اگر ±offset
مشخص نشود،
مقدار صفر
در نظر
گرفته
میشود و
لاگهای
فراخوانی
تعیینشده
توسط ID نشان
داده
میشوند.
گزینه -I
معادل --invocation=0
است و
لاگهای
جدیدترین
فراخوانی
را نمایش
میدهد.
هنگامی که
یک افست
مشخص
میشود،
باید نام
واحد با
استفاده از
گزینه -u/--unit= یا
--user-unit= مشخص
شده باشد.
هنگامی که
همراه با -b/--boot=
مشخص شود،
فراخوانیها
در بوت
تعیینشده
جستجو
میشوند.
افزودهشده
در نسخه 257.
-t, --identifier=SYSLOG_IDENTIFIER
نمایش
پیامها
برای شناسه
syslog مشخصشده
SYSLOG_IDENTIFIER.
این
پارامتر
میتواند
چندین بار
مشخص شود.
افزودهشده
در نسخه 217.
-T,
--exclude-identifier=SYSLOG_IDENTIFIER
مستثنی
کردن
پیامها
برای شناسه
syslog مشخصشده
SYSLOG_IDENTIFIER.
این
پارامتر
میتواند
چندین بار
مشخص شود.
افزودهشده
در نسخه 256.
-p, --priority=
فیلتر
کردن خروجی
بر اساس
اولویت
پیام یا
بازههای
اولویت. یک
سطح لاگ
عددی یا
متنی منفرد
(یعنی بین 0/"emerg"
و 7/"debug")، یا
بازهای از
سطوح لاگ
عددی/متنی
به صورت FROM..TO را
دریافت
میکند.
سطوح لاگ
همان سطوح
معمول syslog
هستند
همانطور
که در
syslog(3)
مستند شده
است، یعنی
"emerg" (0)، "alert" (1)،
"crit" (2)، "err" (3)،
"warning" (4)، "notice" (5)،
"info" (6)، "debug" (7).
اگر یک سطح
لاگ منفرد
مشخص شود،
تمام
پیامهای
دارای این
سطح لاگ یا
سطح لاگ
پایینتر (و
بنابراین
مهمتر)
نمایش داده
میشوند.
اگر یک بازه
مشخص شود،
تمام
پیامهای
درون بازه،
شامل هر دو
مقدار
ابتدا و
انتهای
بازه نشان
داده
خواهند شد.
این گزینه
تطابقهای
"PRIORITY=" را برای
اولویتهای
مشخصشده
اضافه
میکند.
افزودهشده
در نسخه 188.
--facility=
فیلتر
کردن خروجی
بر اساس بخش
(facility) سیستم syslog.
فهرستی
جداشده با
کاما از
اعداد یا
نامهای
بخشها را
دریافت
میکند. این
نامها
همان
بخشهای
معمول syslog
هستند که در
syslog(3) مستند
شده است. از
--facility=help
میتوان
برای نمایش
فهرستی از
نامهای
شناختهشده
facility و خروج
استفاده
کرد.
افزودهشده
در نسخه 245.
-g, --grep=
فیلتر
کردن خروجی
به
رکوردهایی
که در آنها
فیلد
MESSAGE= با
عبارت
باقاعده (regular expression)
مشخصشده
همخوانی
دارد.
عبارات
باقاعده
سازگار با PERL
به کار
میروند؛
برای شرح
مفصل قواعد
نگارشی،
pcre2pattern(3) را
ببینید.
اگر الگو
تماماً با
حروف کوچک
باشد،
انطباق
بدون
حساسیت به
حروف بزرگ و
کوچک (case insensitive)
انجام
میشود. در
غیر این
صورت،
انطباق
حساس به
حروف است.
این رفتار
را میتوان
با استفاده
از گزینه
--case-sensitive لغو
کرد؛ به بخش
زیر مراجعه
فرمایید.
هنگامی که
با --lines= (بدون
پیشوند "+")
به کار رود،
گزینه --reverse
بهطور
ضمنی فعال
میشود.
افزودهشده
در نسخه 237.
--case-sensitive[=BOOLEAN]
تنظیم
تطابق الگو
به صورت
حساس یا
غیرحساس به
حروف بزرگ و
کوچک.
افزودهشده
در نسخه 237.
-k, --dmesg
نمایش
تنها
پیامهای
هسته (کرنل).
این گزینه
متضمن
-b است
و تطابق
"
_TRANSPORT=kernel" را
اضافه
میکند.
افزودهشده
در نسخه 205.
گزینههای
زیر نحوه
چاپ و نمایش
رکوردهای
ژورنال را
کنترل
میکنند:
-o, --output=
قالببندی
رکوردهای
ژورنال
نمایشدادهشده
را کنترل
میکند. یکی
از
گزینههای
زیر را
میپذیرد:
short
حالت
پیشفرض
است و خروجی
تولید
میکند که
تا حد زیادی
با
قالببندی
فایلهای
سنتی syslog
یکسان است و
یک خط را
برای هر
رکورد
ژورنال
نشان
میدهد.
افزودهشده
در نسخه 206.
short-full
بسیار
شبیه است،
اما
برچسبهای
زمانی را در
قالبی نشان
میدهد که
گزینههای
--since= و
--until=
میپذیرند.
بر خلاف
اطلاعات
برچسب
زمانی که در
حالت خروجی
short نمایش
مییابد،
این حالت
شامل
اطلاعات
روز هفته،
سال و منطقه
زمانی در
خروجی بوده
و مستقل از
محلیسازی
(locale) سیستم است.
افزودهشده
در نسخه 232.
short-iso
بسیار
شبیه است،
اما
برچسبهای
زمانی را در
نمایه
RFC 3339[2] از
استاندارد ISO
8601 نشان
میدهد.
افزودهشده
در نسخه 206.
short-iso-precise
همانند
short-iso است اما
دقت کامل را
تا سطح
میکروثانیه
شامل
میشود.
افزودهشده
در نسخه 234.
short-precise
بسیار
شبیه است،
اما
برچسبهای
زمانی
کلاسیک syslog را
با دقت کامل
تا
میکروثانیه
نشان
میدهد.
افزودهشده
در نسخه 207.
short-monotonic
بسیار
شبیه است،
اما
برچسبهای
زمانی
یکنواخت (monotonic)
را به جای
برچسب
زمانی ساعت
دیواری (wallclock)
نمایش
میدهد.
افزودهشده
در نسخه 206.
short-delta
همانند
short-monotonic است اما
اختلاف
زمانی با
رکورد
پیشین را
نیز شامل
میشود.
اختلاف
زمانیهایی
که ممکن است
غیرقابل
اتکا باشند
با علامت "*"
مشخص
میشوند.
افزودهشده
در نسخه 252.
short-unix
بسیار
شبیه است،
اما
ثانیههای
سپریشده
از ۱ ژانویه
۱۹۷۰ بر حسب UTC
را به جای
برچسب
زمانی ساعت
دیواری
نمایش
میدهد
(«زمان
یونیکس»).
زمان با دقت
میکروثانیه
نشان داده
میشود.
افزودهشده
در نسخه 230.
verbose
آیتمهای
رکورد را با
ساختار
کامل و
همراه با
تمام
فیلدها
نشان
میدهد.
افزودهشده
در نسخه 206.
export
ژورنال
را به یک
جریان
باینری (اما
عمدتاً
متنی)
سریالسازی
میکند که
برای
پشتیبانگیری
و انتقال در
شبکه مناسب
است (برای
اطلاعات
بیشتر
Journal Export Format[3]
را ببینید).
برای وارد
کردن مجدد
جریان
باینری به
فرمت بومی journald
از
systemd-journal-remote(8)
استفاده
کنید.
افزودهشده
در نسخه 206.
json
رکوردها
را به عنوان
اشیاء JSON
قالببندی
میکند که
با
نویسههای
خط جدید (newline) از
یکدیگر جدا
شدهاند
(برای
اطلاعات
بیشتر
Journal JSON Format[4]
را ببینید).
مقادیر
فیلدها
بهطور کلی
به عنوان
رشتههای JSON
کدگذاری
میشوند،
با سه
استثنا:
1.فیلدهای
بزرگتر از
۴۰۹۶ بایت
به عنوان
مقادیر null
کدگذاری
میشوند.
(این رفتار
را میتوان
با فرستادن
--all غیرفعال
کرد، اما
توجه داشته
باشید که
ممکن است
اشیاء
بسیار
طولانی JSON
تخصیص
یابند.)
2.رکوردهای
ژورنال
اجازه
فیلدهای
غیرمنحصربهفرد
را در یک
رکورد لاگ
میدهند. JSON
وجود
فیلدهای
غیرمنحصربهفرد
را درون یک
شیء مجاز
نمیداند.
به همین
دلیل، در
صورت
مواجهه با
یک فیلد
غیرمنحصربهفرد،
یک آرایه JSON
به عنوان
مقدار فیلد
استفاده
میشود که
تمام
مقادیر آن
فیلد را به
عنوان
عناصر خود
فهرست
میکند.
3.فیلدهایی
که شامل
بایتهای
غیرقابل
چاپ یا غیر UTF-8
هستند، به
عنوان
آرایههایی
کدگذاری
میشوند که
حاوی
بایتهای
خام بوده و
به صورت
اعداد بدون
علامت
قالببندی
شدهاند.
توجه
داشته
باشید که
این
کدگذاری
برگشتپذیر
است (به
استثنای
محدودیت
اندازه).
افزودهشده
در نسخه 206.
json-pretty
رکوردها
را به عنوان
ساختارهای
داده JSON
قالببندی
میکند،
اما آنها
را در چندین
خط مرتب
میسازد تا
برای انسان
خواناتر
باشند.
افزودهشده
در نسخه 206.
json-sse
رکوردها
را به عنوان
ساختارهای
داده JSON
قالببندی
میکند،
اما آنها
را در قالبی
مناسب برای
Server-Sent Events[5]
بستهبندی
میکند.
افزودهشده
در نسخه 206.
json-seq
رکوردها
را به عنوان
ساختارهای
داده JSON
قالببندی
میکند،
اما بر اساس
JavaScript Object Notation (JSON) Text Sequences[6]
("application/json-seq")،
نویسه ASCII
جداکننده
رکورد (0x1E) را
به عنوان
پیشوند و
نویسه ASCII خط
جدید (0x0A) را به
عنوان
پسوند به
آنها
اضافه
میکند.
افزودهشده
در نسخه 240.
cat
خروجی
بسیار
مختصری
تولید
میکند که
فقط پیام
واقعی هر
رکورد
ژورنال را
بدون هیچ
متادادهای،
حتی بدون
برچسب
زمانی،
نشان
میدهد. در
صورت ترکیب
با گزینه
--output-fields=، به جای
پیام،
فیلدهای
فهرستشده
را برای هر
رکورد لاگ
در خروجی
نمایش
میدهد.
افزودهشده
در نسخه 206.
with-unit
مشابه
short-full است، اما
به جای
شناسه سنتی
syslog، نام واحد
و واحد
کاربر را به
عنوان
پیشوند
قرار
میدهد. این
گزینه
هنگام
استفاده از
نمونههای
مبتنی بر
الگو (templated instances)
بسیار مفید
است، چرا که
آرگومانها
را در نام
واحدها
میگنجاند.
افزودهشده
در نسخه 239.
--truncate-newline
کوتاه
کردن هر
پیام لاگ در
اولین
نویسه خط
جدید در
خروجی، به
طوری که فقط
خط اول هر
پیام نمایش
داده شود.
افزودهشده
در نسخه 254.
--output-fields=
فهرستی
جداشده با
کاما از
فیلدهایی
که باید در
خروجی
گنجانده
شوند. این
گزینه فقط
برای
حالتهای
خروجی اثر
دارد که
معمولاً
تمام
فیلدها را
نشان
میدهند
(
verbose،
export،
json،
json-pretty،
json-sse و
json-seq)،
و همچنین بر
روی
cat. برای
حالتهای
اول،
فیلدهای
"__CURSOR"، "__REALTIME_TIMESTAMP"،
"__MONOTONIC_TIMESTAMP" و "_BOOT_ID"
همیشه چاپ
میشوند.
افزودهشده
در نسخه 236.
-n, --lines=
نمایش
جدیدترین
رویدادهای
ژورنال و
محدود کردن
تعداد
رویدادهای
نشاندادهشده.
آرگومان یک
عدد صحیح
مثبت یا "all"
برای
غیرفعال
کردن
محدودیت
است. علاوه
بر این، اگر
عدد با
پیشوند "+"
همراه
باشد،
قدیمیترین
رویدادهای
ژورنال به
جای آن
استفاده
میشوند.
مقدار
پیشفرض در
صورت عدم
تعیین
آرگومان،
۱۰ است.
اگر از --follow
استفاده
شود، این
گزینه
بهطور
ضمنی فعال
میگردد.
هنگامی که
پیشوند "+"
نداشته
باشد و با --grep=
استفاده
شود، گزینه
--reverse بهطور
ضمنی اعمال
خواهد شد.
-r, --reverse
معکوس
کردن خروجی
به گونهای
که
جدیدترین
رکوردها
ابتدا
نمایش داده
شوند.
افزودهشده
در نسخه 198.
--show-cursor
مکاننما
پس از آخرین
رکورد و بعد
از دو خط
تیره نشان
داده
میشود:
قالب
مکاننما
اختصاصی
است و ممکن
است تغییر
کند.
افزودهشده
در نسخه 209.
--utc
نمایش
زمان بر حسب
زمان
هماهنگ
جهانی (UTC).
افزودهشده
در نسخه 217.
-x, --catalog
تکمیل
خطوط لاگ با
متون
توضیحی از
کاتالوگ
پیامها.
این گزینه
متنهای
راهنمای
توضیحی را
در صورت
موجود بودن
به
پیامهای
لاگ در
خروجی
اضافه
میکند. این
متنهای
راهنمای
کوتاه،
زمینه یک
خطا یا
رویداد
لاگ،
راهحلهای
احتمالی، و
همچنین
ارجاعاتی
به
تالارهای
گفتگو،
مستندات
توسعهدهندگان
و سایر
راهنماهای
مربوطه را
شرح
میدهند.
توجه داشته
باشید که
متنهای
راهنما
برای تمام
پیامها در
دسترس
نیستند،
بلکه فقط
برای
پیامهای
منتخب وجود
دارند. برای
اطلاعات
بیشتر در
مورد
کاتالوگ
پیامها،
Journal
Message Catalogs[7] را
ببینید.
نکته:
هنگام
پیوست کردن
خروجی journalctl به
گزارشهای
باگ، لطفاً
از -x
استفاده
نکنید.
افزودهشده
در نسخه 196.
--no-hostname
عدم
نمایش فیلد
نام هاست (hostname)
در
پیامهای
لاگ. این
سوییچ فقط
بر خانواده
حالتهای
خروجی
short
تأثیر دارد
(به بالا
مراجعه
کنید).
نکته: این
گزینه
رخدادهای
نام میزبان
را از خود
رکوردهای
لاگ حذف
نمیکند،
بنابراین
مانع از
مشاهده نام
هاست در
درون
لاگها
نمیشود.
افزودهشده
در نسخه 230.
--no-full, --full, -l
خلاصهسازی
فیلدها با
علامت بیضی
(...) هنگامی که
در
ستونهای
موجود جا
نمیشوند.
پیشفرض
نمایش
فیلدها به
صورت کامل
است، که به
آنها
اجازه
میدهد
شکسته شوند
یا در صورت
استفاده از
پیجر، توسط
پیجر بریده
شوند.
گزینههای
قدیمی -l/--full
دیگر
کارایی
ندارند،
مگر برای
خنثی کردن
اثر --no-full.
افزودهشده
در نسخه 196.
-a, --all
نمایش
تمام
فیلدها به
صورت کامل،
حتی اگر
شامل
نویسههای
غیرقابل
چاپ باشند
یا بسیار
طولانی
باشند.
بهطور
پیشفرض،
فیلدهای
حاوی
نویسههای
غیرقابل
چاپ به صورت
"blob data" خلاصه
میشوند.
(توجه داشته
باشید که
ابزار پیجر
ممکن است
دوباره
نویسههای
غیرقابل
چاپ را
اسکیپ کند.)
-f, --follow
نمایش
فقط
جدیدترین
رکوردهای
ژورنال، و
چاپ مداوم
رکوردهای
جدید
همزمان با
اضافه شدن
آنها به
ژورنال.
--no-tail
نمایش
تمام خطوط
خروجی
ذخیرهشده،
حتی در حالت
دنبالکردن
(follow). اثر گزینه
--lines= را خنثی
میکند.
-q, --quiet
تمام
پیامهای
اطلاعاتی
(مانند "-- Journal begins at
..."، "-- Reboot --") و
هرگونه
پیام هشدار
در مورد
ژورنالهای
سیستمی
غیرقابل
دسترس را
هنگام اجرا
توسط یک
کاربر عادی
سرکوب
میکند.
گزینههای
زیر
پشتیبانی
از
صفحهبندی
(pager) را کنترل
میکنند:
--no-pager
خروجی را
به درون یک
پیجر
لولهکشی (pipe)
نکند.
-e, --pager-end
در ابزار
پیجر ضمنی،
بلافاصله
به انتهای
ژورنال پرش
کند. این
گزینه
بهطور
ضمنی
-n1000 را
فعال
میکند تا
اطمینان
حاصل شود که
پیجر
لاگهایی
با اندازه
نامحدود را
در بافر نگه
نمیدارد.
این رفتار
را میتوان
با یک
-n صریح
با مقدار
عددی دیگری
لغو کرد، در
حالی که
-nall
این سقف
محدودیت را
غیرفعال
خواهد کرد.
توجه داشته
باشید که
این گزینه
فقط برای
پیجر
less(1)
پشتیبانی
میشود.
افزودهشده
در نسخه 198.
گزینههای
زیر
میتوانند
همراه با
دستور --setup-keys
که در زیر
شرح داده
شده است
استفاده
شوند:
--interval=
بازه
تغییر کلید
مهروموم (sealing key)
را هنگام
تولید یک
جفتکلید FSS
با
--setup-keys مشخص
میکند.
بازههای
کوتاهتر
مصرف
پردازنده (CPU)
را افزایش
میدهند
اما بازه
زمانی
دستکاریهای
غیرقابل
شناسایی در
ژورنال را
کوتاهتر
میکنند.
مقدار
پیشفرض 15min
است.
افزودهشده
در نسخه 189.
--verify-key=
کلید
اعتبارسنجی
FSS را برای
استفاده در
عملیات
--verify
مشخص
میکند.
افزودهشده
در نسخه 189.
--force
هنگامی
که
--setup-keys داده
شود و
مهروموم
امن رو به
جلو (FSS) از قبل
پیکربندی
شده باشد،
کلیدهای FSS را
بازتولید
میکند.
افزودهشده
در نسخه 206.
دستورات
زیر شناخته
میشوند. در
صورت عدم
تعیین
هیچکدام،
حالت
پیشفرض
نمایش
رکوردهای
ژورنال
است:
-N, --fields
چاپ تمام
نامهای
فیلدهایی
که در حال
حاضر در
تمام
رکوردهای
ژورنال
استفاده
شدهاند.
افزودهشده
در نسخه 229.
-F, --field=
چاپ تمام
مقادیر
دادهای
ممکنی که
فیلد
مشخصشده
میتواند
در تمام
رکوردهای
ژورنال به
خود بگیرد.
افزودهشده
در نسخه 195.
--list-boots
نمایش
فهرستی
جدولی از
شمارههای
بوت (نسبت به
بوت فعلی)،
شناسههای
آنها، و
برچسبهای
زمانی
اولین و
آخرین پیام
مربوط به آن
بوت. هنگامی
که همراه با
گزینه
-n/--lines=[+]N مشخص
شود، فقط
اولین
موارد
(هنگامی که
عدد دارای
پیشوند "+")
یا آخرین
موارد (بدون
پیشوند) به
تعداد
N
رکورد
نمایش داده
میشوند.
هنگامی که
با
-r/--reverse مشخص
شود، فهرست
به ترتیب
معکوس نشان
داده خواهد
شد.
افزودهشده
در نسخه 209.
--list-invocations
فهرست
کردن
شناسههای
فراخوانی (invocation
IDs) یک واحد. به
نام واحد با
-u/--unit= یا
--user-unit=
نیاز دارد.
فهرستی
جدولی از
شمارههای
فراخوانی
(نسبت به
فراخوانی
فعلی یا
آخرین)،
شناسههای
آنها، و
برچسبهای
زمانی
اولین و
آخرین پیام
مربوط به آن
فراخوانی
را نشان
میدهد.
هنگامی که
-b/-boot مشخص
شود،
فراخوانیها
در بوت
مربوطه
نشان داده
میشوند.
هنگامی که
همراه با
گزینه
-n/--lines=[+]N مشخص
شود، فقط
اولین
موارد
(هنگامی که
عدد دارای
پیشوند "+")
یا آخرین
موارد (بدون
پیشوند) به
تعداد
N
رکورد نشان
داده
میشوند.
هنگامی که
با
-r/--reverse مشخص
شود، فهرست
به ترتیب
معکوس
نمایش داده
خواهد شد.
افزودهشده
در نسخه 257.
--disk-usage
نمایش
میزان مصرف
دیسک فعلی
توسط تمام
فایلهای
ژورنال. این
گزینه
مجموع مصرف
دیسک تمام
فایلهای
ژورنال
بایگانیشده
و فعال را
نشان
میدهد.
افزودهشده
در نسخه 190.
--vacuum-size=, --vacuum-time=,
--vacuum-files=
گزینه
--vacuum-size=
قدیمیترین
فایلهای
ژورنال
بایگانیشده
را حذف
میکند تا
زمانی که
فضای دیسک
مصرفی
آنها به
زیر اندازه
مشخصشده
کاهش یابد.
پسوندهای
معمول "K"،
"M"، "G" و "T" (در
مبنای ۱۰۲۴)
را
میپذیرد.
گزینه --vacuum-time=
فایلهای
ژورنال
بایگانیشده
قدیمیتر
از بازه
زمانی
مشخصشده
را حذف
میکند.
پسوندهای
معمول "s"
(پیشفرض)،
"m"، "h"، "days"،
"weeks"، "months" و "years"
را
میپذیرد؛
برای
جزئیات systemd.time(7)
را ببینید.
گزینه --vacuum-files=
تنها تعداد
مشخصشده
از
فایلهای
ژورنال
مجزا را
باقی
میگذارد.
توجه
داشته
باشید که
اجرای --vacuum-size=
فقط یک اثر
غیرمستقیم
بر خروجی
نمایشدادهشده
توسط --disk-usage
دارد، زیرا
دومی شامل
فایلهای
ژورنال
فعال نیز
میشود، در
حالی که
عملیات
پاکسازی (vacuuming)
فقط روی
فایلهای
ژورنال
بایگانیشده
عمل میکند.
به همین
ترتیب، --vacuum-files=
ممکن است
واقعاً
تعداد
فایلهای
ژورنال را
به زیر عدد
تعیینشده
کاهش ندهد،
چرا که
فایلهای
ژورنال
فعال را حذف
نمیکند.
گزینههای
--vacuum-size=، --vacuum-time= و
--vacuum-files= را
میتوان در
یک
فراخوانی
واحد ترکیب
کرد تا هر
ترکیبی از
محدودیتهای
اندازه،
زمان و
تعداد
فایلها بر
روی
فایلهای
ژورنال
بایگانیشده
اعمال شود.
تعیین هر یک
از این سه
پارامتر به
صورت صفر
معادل عدم
اعمال آن
محدودیت
خاص است و
بنابراین
زائد خواهد
بود.
این سه
سوییچ را
میتوان با
--rotate نیز در یک
دستور
ترکیب کرد.
در این
حالت،
ابتدا تمام
فایلهای
فعال
چرخانده (rotate)
میشوند و
عملیات
پاکسازی
درخواستی
بلافاصله
پس از آن
اجرا
میشود. عمل
چرخش این
اثر را دارد
که تمام
فایلهای
فعال کنونی
بایگانی
میشوند (و
احتمالاً
فایلهای
ژورنال
خالی جدیدی
به عنوان
جایگزین
باز
میشوند)، و
بنابراین
عملیات
پاکسازی
بیشترین
تأثیر را
خواهد داشت
زیرا
میتواند
تمام
دادههای
لاگ
نوشتهشده
تا این لحظه
را در نظر
بگیرد.
افزودهشده
در نسخه 218.
--verify
بررسی
فایل
ژورنال
برای
سازگاری
داخلی. اگر
فایل با FSS
فعال تولید
شده باشد و
کلید
اعتبارسنجی
FSS با
--verify-key= مشخص
شده باشد،
اصالت و صحت
فایل
ژورنال
اعتبارسنجی
میشود.
افزودهشده
در نسخه 189.
--sync
از دیمن
ژورنال
میخواهد
تمام
دادههای
ژورنال را
که هنوز
نوشته
نشدهاند
روی
سیستمفایل
زیرین
بنویسد و
تمام
ژورنالها
را
همگامسازی
(synchronize) کند. این
فراخوانی
تا زمانی که
عملیات
همگامسازی
کامل نشود
بازنمیگردد.
این دستور
تضمین
میکند که
هر پیام
لاگی که پیش
از
فراخوانی
آن نوشته
شده است، در
زمان
بازگشت
دستور با
اطمینان
روی دیسک
ذخیره شده
باشد.
افزودهشده
در نسخه 228.
--relinquish-var
از دیمن
ژورنال
عملیات
معکوس
--flush را
درخواست
میکند: در
صورت
درخواست،
دیمن
دادههای
لاگ بعدی را
در /run/log/journal/
مینویسد و
نوشتن در /var/log/journal/
را متوقف
میکند.
فراخوانی
متعاقب
--flush
باعث
میشود
خروجی لاگ
دوباره به
/var/log/journal/ تغییر
یابد؛ به
توضیحات
بالا
مراجعه
کنید.
افزودهشده
در نسخه 243.
--smart-relinquish-var
مشابه
--relinquish-var، اما
اگر
سیستمفایل
ریشه و /var/log/journal/
روی یک نقطه
اتصال (mount point)
یکسان قرار
داشته
باشند، هیچ
عملیاتی
انجام
نمیدهد.
این عملیات
در حین
خاموش شدن
سیستم (shutdown)
استفاده
میشود تا
دیمن
ژورنال
نوشتن
دادهها در
/var/log/journal/ را در
صورتی که آن
پوشه روی یک
نقطه اتصال
باشد که
باید unmount شود،
متوقف کند.
افزودهشده
در نسخه 243.
--flush
از دیمن
ژورنال
میخواهد
در صورتی که
فضای
ذخیرهسازی
پایدار
فعال باشد،
هرگونه
داده لاگ
ذخیرهشده
در /run/log/journal/ را به
/var/log/journal/ منتقل و
تخلیه (flush) کند.
این
فراخوانی
تا زمان
تکمیل
عملیات
بازنمیگردد.
توجه داشته
باشید که
این
فراخوانی
بدون اثر
جانبی
تکرارپذیر
(idempotent) است:
دادهها در
طول زمان
اجرای
سیستم فقط
یک بار از /run/log/journal/
به /var/log/journal/ تخلیه
میشوند
(البته
--relinquish-var
در زیر را
ببینید)، و
اگر این
اتفاق
قبلاً رخ
داده باشد،
این دستور
بدون اجرای
هیچ
عملیاتی
بهطور پاک
خارج
میشود. این
دستور
بهطور
موثری
تضمین
میکند که
در زمان
بازگشت،
تمام
دادهها به
/var/log/journal/ تخلیه
شده باشند.
افزودهشده
در نسخه 217.
--rotate
از دیمن
ژورنال
میخواهد
فایلهای
ژورنال را
بچرخاند (rotate
کند). این
فراخوانی
تا زمان
تکمیل
عملیات
چرخش
بازنمیگردد.
عمل چرخش
فایلهای
ژورنال این
اثر را دارد
که تمام
فایلهای
ژورنال
فعال فعلی
به عنوان
بایگانیشده
علامتگذاری
شده و تغییر
نام
مییابند،
به گونهای
که در آینده
هرگز در
آنها چیزی
نوشته
نخواهد شد.
سپس
فایلهای
ژورنال
جدید (خالی)
به جای
آنها
ایجاد
میشوند.
این عملیات
ممکن است با
--vacuum-size=،
--vacuum-time= و
--vacuum-file= در یک
دستور واحد
ترکیب شود؛
به بالا
مراجعه
کنید.
افزودهشده
در نسخه 227.
--header
به جای
نمایش
محتویات
ژورنال،
اطلاعات
سربرگ (header)
داخلی
فیلدهای
ژورنالِ
مورداسترسی
را نمایش
میدهد.
این گزینه
بهویژه
هنگام تلاش
برای
شناسایی
رکوردهای
نامرتب
ژورنال
مفید است،
همانطور
که برای
مثال زمانی
رخ میدهد
که ماشین با
زمان
سیستمی
نادرست بوت
شده باشد.
افزودهشده
در نسخه 187.
--list-catalog [128-bit-ID...]
محتویات
کاتالوگ
پیامها را
به صورت
جدولی از
شناسههای
پیام، به
علاوه
رشتههای
توصیف
کوتاه
آنها
فهرست
میکند.
اگر هر
گونه 128-bit-ID
مشخص شود،
فقط آن
رکوردها
نشان داده
میشوند.
افزودهشده
در نسخه 196.
--dump-catalog [128-bit-ID...]
محتویات
کاتالوگ
پیام را
نشان
میدهد، به
طوری که
رکوردها با
یک خط شامل
دو خط تیره و
شناسه از
یکدیگر جدا
میشوند
(قالب آن
همانند
فایلهای .catalog
است).
اگر هر
گونه 128-bit-ID
مشخص شود،
فقط آن
رکوردها
نشان داده
میشوند.
افزودهشده
در نسخه 199.
--update-catalog
شاخص (index)
کاتالوگ
پیامها را
بهروزرسانی
میکند. این
دستور باید
هر بار که
فایلهای
کاتالوگ
جدیدی نصب،
حذف یا
بهروزرسانی
میشوند
اجرا گردد
تا شاخص
باینری
کاتالوگ
مجدداً
بازسازی
شود.
افزودهشده
در نسخه 196.
--setup-keys
به جای
نمایش
محتویات
ژورنال، یک
جفتکلید
جدید برای
مهروموم
امن
روبهجلو (FSS)
تولید
میکند. این
کار یک کلید
مهروموم (sealing key)
و یک کلید
اعتبارسنجی
(verification key) ایجاد
خواهد کرد.
کلید
مهروموم در
دایرکتوری
دادههای
ژورنال
ذخیره
میشود و
باید بر روی
میزبان
باقی بماند.
کلید
اعتبارسنجی
باید در
مکانی خارج
از سیستم
ذخیره شود.
برای
اطلاعات
بیشتر
درباره Forward Secure Sealing
و پیوندی به
یک مقاله
علمی
داوریشده
که نظریه
رمزنگاری
زیربنایی
آن را شرح
میدهد، به
گزینه
Seal= در
journald.conf(5) مراجعه
فرمایید.
افزودهشده
در نسخه 189.
-h, --help
یک متن
راهنمای
کوتاه را
چاپ کرده و
خارج
میشود.
--version
یک رشته
کوتاه نسخه
را چاپ کرده
و خارج
میشود.
در صورت
موفقیت، 0
بازگردانده
میشود؛ در
غیر این
صورت، یک کد
شکست
غیرصفر
بازگردانده
خواهد شد.
$SYSTEMD_LOG_LEVEL
حداکثر
سطح لاگ
پیامهای
ارسالی
(پیامهای
با سطح لاگ
بالاتر،
یعنی
پیامهای
با اهمیت
کمتر،
سرکوب
خواهند شد).
فهرستی
جداشده با
کاما از
مقادیر را
میپذیرد.
یک مقدار
میتواند
یکی از
موارد زیر
باشد (به
ترتیب کاهش
اهمیت):
emerg،
alert،
crit،
err،
warning،
notice،
info،
debug، یا یک
عدد صحیح در
بازه 0...7. برای
اطلاعات
بیشتر
syslog(3) را
ببینید. هر
مقدار
میتواند
به صورت
اختیاری با
یکی از
پیشوندهای
console،
syslog،
kmsg یا
journal به همراه
یک دونقطه
بیاید تا
حداکثر سطح
لاگ را برای
آن مقصد لاگ
خاص تعیین
کند (برای
نمونه
SYSTEMD_LOG_LEVEL=debug,console:info مشخص
میکند که
لاگگیری
در سطح debug
باشد، مگر
در هنگام
لاگگیری
روی کنسول
که باید در
سطح info باشد).
توجه داشته
باشید که
حداکثر سطح
لاگ سراسری
نسبت به هر
سطح لاگِ
حداکثرِ
تفکیکشده
بر اساس
مقصد،
اولویت
دارد.
$SYSTEMD_LOG_COLOR
یک مقدار
بولی. در
صورت true بودن،
پیامهای
نوشتهشده
بر روی tty با
توجه به
اولویت
رنگآمیزی
میشوند.
این تنظیم
تنها زمانی
مفید است که
پیامها
مستقیماً
در ترمینال
نوشته
شوند، زیرا
journalctl(1) و سایر
ابزارهایی
که لاگها
را نمایش
میدهند،
خودشان
پیامها را
بر اساس سطح
لاگ
رنگآمیزی
میکنند.
$SYSTEMD_LOG_TIME
یک مقدار
بولی. در
صورت true بودن،
پیامهای
لاگ کنسول
با یک برچسب
زمانی
همراه
میشوند.
این تنظیم
تنها زمانی
مفید است که
پیامها
مستقیماً
در ترمینال
یا یک فایل
نوشته
شوند، زیرا
journalctl(1) و سایر
ابزارهایی
که لاگها
را نمایش
میدهند،
خودشان
برچسبهای
زمانی را بر
اساس
فراداده
رکوردها
اضافه
میکنند.
$SYSTEMD_LOG_LOCATION
یک مقدار
بولی. در
صورت true بودن،
نام فایل و
شماره خط در
کد منبع که
پیام از آن
صادر شده
است، به
عنوان
پیشوند به
پیام اضافه
میشود.
توجه
داشته
باشید که
مکان لاگ در
هر حال اغلب
به عنوان
فراداده به
رکوردهای
ژورنال
متصل
میشود. با
این حال،
گنجاندن
مستقیم آن
در متن پیام
میتواند
هنگام
اشکالزدایی
(debugging)
برنامهها
بسیار
کارآمد
باشد.
$SYSTEMD_LOG_TID
یک مقدار
بولی. در
صورت true بودن،
شناسه عددی
ترد جاری (TID)
به عنوان
پیشوند به
پیام اضافه
میشود.
توجه
داشته
باشید که
این
اطلاعات در
هر حال به
عنوان
فراداده به
رکوردهای
ژورنال
متصل است. با
این وجود،
گنجاندن
مستقیم آن
در متن پیام
میتواند
هنگام
اشکالزدایی
برنامهها
مفید باشد.
$SYSTEMD_LOG_TARGET
مقصد
پیامهای
لاگ. یکی از
مقادیر زیر:
console (ثبت لاگ
در tty متصل)،
console-prefixed (ثبت در tty
متصل اما
همراه با
پیشوندهایی
که سطح لاگ و
"facility" را
کدگذاری
میکنند؛
syslog(3) را
ببینید)،
kmsg
(ثبت در بافر
چرخشی لاگ
کرنل)،
journal
(ثبت در
ژورنال)،
journal-or-kmsg (ثبت در
ژورنال در
صورت در
دسترس
بودن، و در
غیر این
صورت در kmsg)،
auto
(تعیین
خودکار
مقصد لاگ
مناسب؛
مقدار
پیشفرض)،
null
(غیرفعال
کردن خروجی
لاگ).
$SYSTEMD_LOG_RATELIMIT_KMSG
تعیین
اینکه آیا kmsg
محدودسازی
نرخ (ratelimit) شود یا
خیر. یک
مقدار بولی
میپذیرد.
پیشفرض "true"
است. در صورت
غیرفعال
بودن، systemd
پیامهای
نوشتهشده
در kmsg را
محدودسازی
نرخ نخواهد
کرد.
$SYSTEMD_PAGER, $PAGER
پیجری که
در صورت عدم
ارائه
--no-pager
استفاده
میشود. در
صورت تنظیم
بودن
$SYSTEMD_PAGER از
آن استفاده
میشود؛ در
غیر این
صورت
$PAGER به
کار میرود.
اگر هیچیک
از
$SYSTEMD_PAGER یا
$PAGER
تنظیم نشده
باشند،
مجموعهای
از پیجرهای
شناختهشده
به نوبت
امتحان
میشوند،
از جمله
less(1) و
more(1)، تا
زمانی که
یکی پیدا
شود. اگر هیچ
پیجری یافت
نشود، هیچ
پیجری
فراخوانی
نخواهد شد.
تنظیم این
متغیرهای
محیطی روی
یک رشته
خالی یا
مقدار "cat"
معادل
ارسال
--no-pager
است.
نکته: اگر
$SYSTEMD_PAGERSECURE تنظیم
نشده باشد،
$SYSTEMD_PAGER و $PAGER فقط
میتوانند
برای
غیرفعال
کردن پیجر
(با "cat" یا "")
استفاده
شوند، و در
غیر این
صورت
نادیده
گرفته
میشوند.
$SYSTEMD_LESS
بازنویسی
گزینههای
ارسالی به
less
(بهطور
پیشفرض "FRSXMK").
کاربران
ممکن است
بخواهند
بهویژه دو
گزینه را
تغییر
دهند:
K
این
گزینه به
پیجر دستور
میدهد
هنگام
فشرده شدن Ctrl+C
بلافاصله
خارج شود.
برای اینکه
به
less اجازه
داده شود
خودش Ctrl+C را
مدیریت کند
تا به اعلان
دستور پیجر
بازگردد،
این گزینه
را لغو کنید.
اگر مقدار
$SYSTEMD_LESS شامل "K"
نباشد، و
پیجر
فراخوانیشده
less باشد،
کلیدهای Ctrl+C
توسط
برنامه
اجرایی
نادیده
گرفته
میشود و
باید توسط
پیجر
مدیریت
شود.
X
این
گزینه به
پیجر دستور
میدهد تا
رشتههای
مقداردهی
اولیه و
پایانی termcap را
به ترمینال
ارسال نکند.
این گزینه
بهطور
پیشفرض
تنظیم شده
است تا
اجازه دهد
خروجی
دستور حتی
پس از خروج
از پیجر در
ترمینال
قابل
مشاهده
باقی بماند.
با این
وجود، این
کار مانع از
عملکرد
برخی
قابلیتهای
پیجر
میشود؛
بهویژه
خروجی
صفحهبندیشده
را
نمیتوان
با ماوس
اسکرول
کرد.
توجه
داشته
باشید که
تنظیم
متغیر
محیطی
معمولی $LESS
هیچ تأثیری
بر
فراخوانیهای
less توسط
ابزارهای systemd
ندارد.
برای
مباحث
بیشتر، less(1)
را ببینید.
$SYSTEMD_LESSCHARSET
بازنویسی
مجموعه
نویسههای
(charset) ارسالی به
less (بهطور
پیشفرض
"utf-8"، اگر
ترمینال
فراخواننده
سازگار با UTF-8
تشخیص داده
شود).
توجه
داشته
باشید که
تنظیم
متغیر
محیطی
معمولی $LESSCHARSET
هیچ تأثیری
بر
فراخوانیهای
less توسط
ابزارهای systemd
ندارد.
$SYSTEMD_PAGERSECURE
دستورات
رایج پیجر
مانند
less(1)،
علاوه بر
«صفحهبندی»،
یعنی
پیمایش در
خروجی، از
باز کردن
فایلها یا
نوشتن درون
سایر
فایلها و
اجرای
دستورات
دلخواه
پوسته (shell)
پشتیبانی
میکنند.
هنگامی که
دستورات با
امتیازات و
اختیارات
بالا
فراخوانی
میشوند،
برای نمونه
تحت
sudo(8) یا
pkexec(1)، پیجر
تبدیل به یک
مرز امنیتی
(security boundary) میشود.
باید دقت
شود که تنها
برنامههایی
با
قابلیتهای
اکیداً
محدود به
عنوان پیجر
استفاده
شوند، و
ویژگیهای
تعاملی
ناخواسته
مانند باز
کردن یا
ایجاد
فایلهای
جدید یا
راهاندازی
زیرپردازشها
مجاز
نباشند.
«حالت امن»
(secure mode) برای
پیجر ممکن
است
همانطور
که در زیر
شرح داده
شده فعال
شود،
اگر
پیجر از آن
پشتیبانی
کند (بیشتر
پیجرها به
گونهای
نوشته
نشدهاند
که این
موضوع را در
نظر بگیرند).
توصیه
میشود
هنگام
اجازه دادن
به کاربران
غیرقابل
اعتماد
برای اجرای
دستورات با
اختیارات
بالا، یا
صریحاً
«حالت امن»
را فعال
کنید یا
پیجر را با
استفاده از
--no-pager یا
PAGER=cat
کاملاً
غیرفعال
سازید.
این گزینه
یک آرگومان
بولی
میپذیرد.
هنگامی که
روی true تنظیم
شود، «حالت
امن» پیجر
فعال
میگردد. در
«حالت
امن»، LESSSECURE=1
هنگام
فراخوانی
پیجر تنظیم
خواهد شد،
که به پیجر
دستور
میدهد
دستوراتی
را که
فایلهای
جدیدی باز
میکنند یا
میسازند
یا
زیرپردازشهای
جدید راه
میاندازند
غیرفعال
کند. در حال
حاضر فقط less(1)
شناخته شده
است که این
متغیر را
درک کرده و
«حالت امن»
را
پیادهسازی
میکند.
هنگامی که
روی false تنظیم
شود، هیچ
محدودیتی
بر روی پیجر
اعمال
نمیگردد.
تنظیم SYSTEMD_PAGERSECURE=0
یا حذف
نکردن آن از
محیط به ارث
رسیده ممکن
است به
کاربر
اجازه
اجرای
دستورات
دلخواه را
بدهد.
هنگامی که
$SYSTEMD_PAGERSECURE تنظیم
نشده باشد،
ابزارهای systemd
تلاش
میکنند
بهطور
خودکار
تشخیص دهند
که آیا
«حالت امن»
باید فعال
شود یا خیر و
آیا پیجر از
آن
پشتیبانی
میکند یا
خیر. اگر UID
موثر (effective UID) با
مالک نشست
لاگین
یکسان
نباشد (به geteuid(2)
و sd_pid_get_owner_uid(3)
مراجعه
کنید)، یا
هنگام اجرا
تحت sudo(8) یا
ابزارهای
مشابه
(زمانی که $SUDO_UID
تنظیم شده
باشد [8])،
«حالت امن»
فعال
میشود. در
این
حالتها،
SYSTEMD_PAGERSECURE=1 تنظیم
خواهد شد و
پیجرهایی
که شناخته
نشدهاند
«حالت امن»
را
پیادهسازی
میکنند
اصلاً
استفاده
نخواهند شد.
توجه داشته
باشید که
این تشخیص
خودکار فقط
رایجترین
سازوکارهای
ارتقای
اختیارات
را پوشش
میدهد و
برای راحتی
کار در نظر
گرفته شده
است. توصیه
میشود
صریحاً $SYSTEMD_PAGERSECURE
را تنظیم
کرده یا
پیجر را
غیرفعال
کنید.
توجه
داشته
باشید که
اگر قرار
است
متغیرهای
$SYSTEMD_PAGER یا $PAGER
رعایت شوند
(به جز برای
غیرفعال
کردن پیجر)،
باید $SYSTEMD_PAGERSECURE
نیز تنظیم
شده باشد.
$SYSTEMD_COLORS
یک
آرگومان
بولی
دریافت
میکند.
هنگامی که true
باشد، systemd و
ابزارهای
مربوطه از
رنگها در
خروجی خود
استفاده
خواهند
کرد، در غیر
این صورت
خروجی
تکرنگ (monochrome)
خواهد بود.
علاوه بر
این، متغیر
میتواند
یکی از
مقادیر
ویژه "16" یا
"256" را بگیرد
تا استفاده
از رنگها
را به ترتیب
به ۱۶ یا ۲۵۶
رنگ پایه ANSI
محدود کند.
این را
میتوان
برای لغو
تصمیمگیری
خودکار بر
اساس $TERM و
آنچه کنسول
به آن متصل
است، مشخص
کرد.
$SYSTEMD_URLIFY
مقدار
باید یک
مقدار بولی
باشد. کنترل
میکند که
آیا برای
شبیهسازهای
ترمینالی
که از این
قابلیت
پشتیبانی
میکنند،
پیوندهای
قابل کلیک
در خروجی
ایجاد شوند
یا خیر. این
را میتوان
برای لغو
تصمیمی که
systemd بر اساس $TERM
و شرایط
دیگر اتخاذ
میکند،
مشخص کرد.
بدون هیچ
آرگومانی،
تمام
لاگهای
جمعآوریشده
بهصورت
فیلترنشده
نمایش داده
میشوند:
با تعیین
یک تطابق،
تمام
رکوردهای
دارای
فیلدی
منطبق با آن
عبارت
نمایش داده
میشوند:
journalctl _SYSTEMD_UNIT=avahi-daemon.service
journalctl _SYSTEMD_CGROUP=/user.slice/user-42.slice/session-c1.scope
اگر دو
فیلد
متفاوت
مطابقت
داده شوند،
فقط
رکوردهایی
نشان داده
میشوند که
همزمان با
هر دو عبارت
همخوانی
داشته
باشند:
journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=28097
اگر دو
تطابق به
فیلد
یکسانی
اشاره
کنند، تمام
رکوردهایی
که با هر یک
از
عبارتها
همخوانی
دارند
نمایش داده
میشوند:
journalctl _SYSTEMD_UNIT=avahi-daemon.service _SYSTEMD_UNIT=dbus.service
اگر از
جداکننده
"+" استفاده
شود، دو
عبارت
میتوانند
در یک OR
منطقی با
یکدیگر
ترکیب شوند.
دستور زیر
تمام
پیامهای
فرایند
سرویس Avahi با PID
برابر
۲۸۰۹۷ به
همراه تمام
پیامهای
سرویس D-Bus (از
هر یک از
فرایندهای
آن) را نشان
میدهد:
journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=28097 + _SYSTEMD_UNIT=dbus.service
برای
نمایش تمام
فیلدهای
صادرشده
توسط یک
واحد و
درباره آن
واحد، باید
از گزینه
-u/--unit=
استفاده
شود. دستور
journalctl -u name به یک
فیلتر
پیچیده
مشابه زیر
بسط
مییابد:
_SYSTEMD_UNIT=name.service
+ UNIT=name.service _PID=1
+ OBJECT_SYSTEMD_UNIT=name.service _UID=0
+ COREDUMP_UNIT=name.service _UID=0 MESSAGE_ID=fc2e22bc6ee647b6b90729ab34a250b1
(برای شرح
این
الگوها،
systemd.journal-fields(7) را
ببینید).
نمایش
تمام
لاگهای
تولیدشده
توسط فایل
اجرایی D-Bus:
journalctl /usr/bin/dbus-daemon
نمایش
تمام
لاگهای
هسته (کرنل)
از بوت
پیشین:
نمایش
زنده
لاگها از
سرویس
سیستمی apache.service:
- 1.
- Discoverable Partitions Specification
- 2.
- RFC 3339
- 3.
- Journal Export Format
- 4.
- Journal JSON Format
- 5.
- Server-Sent Events
- 6.
- JavaScript Object Notation (JSON) Text Sequences
- 7.
- Journal Message Catalogs
- 8.
- توصیه
میشود
سایر
ابزارها
نیز متغیر
$SUDO_UID را بر
حسب مورد
تنظیم و
بررسی کرده
و با آن به
عنوان یک
رابط
استاندارد
مشترک
رفتار
کنند.