সিস্টেমডের জার্নাক্টল: বার্তা দ্বারা ফিল্টার কিভাবে?


8

জার্নাল্টিটেল লগগুলি সন্ধানের জন্য দুর্দান্ত সরঞ্জামের মতো দেখায় তবে সাধারণ জিজ্ঞাসার মতো যা মনে হয় তা নিয়ে আমি আটকে থাকি: আমি বাক্যটি ধারণ করে এমন সমস্ত ক্রোন বার্তা দেখতে চাই update-ipsets

অবশ্যই আমি এটি করতে পারি

journalctl -u cron.service | grep update-ipsets

তবে তারপরে আপনি জার্নালটেলের আউটপুট (রঙ কোডিং, অটো পেজিং, লাইভ ভিউ ইত্যাদি) এর অন্যান্য সমস্ত সুবিধা হারাবেন

আমি চেষ্টা করেছিলাম:

journalctl -u cron.service MESSAGE=update-ipsets
journalctl -u cron.service "MESSAGE=*update-ipsets*"
journalctl -u cron.service "MESSAGE=.*update-ipsets.*"
journalctl -u cron.service "MESSAGE=/.*update-ipsets.*/"

এবং আপনি tabপরে আঘাত করে পরীক্ষা করতে চান না MESSAGE=- (zsh / দেবিয়ান জেসি) শেলটি ঝুলিয়ে রাখে এবং কোনওরকম সাহায্যও Ctrl-Cকরেনি!

আমি একরকম বিশ্বাস করতে পারি না যে এটিতে এই মৌলিক কার্যকারিতাটি অন্তর্নির্মিত নয়, তাই আমি নিশ্চিত যে আমি অবশ্যই কিছু মিস করেছি?

ধন্যবাদ।

উত্তর:


3

বর্তমানে জার্নাল্টেল মাঠের ম্যাচে প্যাটার্ন বা ওয়াইল্ডকার্ড সমর্থন করে না। grepআপনার সেরা বিকল্প।

আমারও একই সমস্যা ছিল এবং আমি মনে করি যে আর্গুমেন্ট হিসাবে পাস করার journalctlপরে NAME=VALUEকেবল VALUE এর জন্য একটি সঠিক ম্যাচ অনুসন্ধান করে ।

আমার তদন্ত:

  1. ম্যান পেজ

    থেকে journalctl(1)

    ম্যাচের বর্ণনায় প্যাটার্নটি উল্লেখ করা হয়নি:

     [...] A match is in the format "FIELD=VALUE", e.g.
     "_SYSTEMD_UNIT=httpd.service", referring to the components
     of a structured journal entry. [...]
    

    ম্যান পৃষ্ঠাটি -uকেবলমাত্র বিকল্পটি বর্ণনা করার সময় একটি প্যাটার্নকে বোঝায় ।

       -u, --unit=UNIT|PATTERN
           Show messages for the specified systemd unit UNIT 
           (such as a service unit), or for any of the units
           matched by PATTERN. 
    
  2. সোর্স কোড

    ফাংশন fnmatchমধ্যে src/journalযখন শুধুমাত্র ইউনিট অনুসন্ধানের জন্য ব্যবহার করা হয়

  3. ডিবাগ জার্নিক্টেল

    ডিবাগ আউটপুট সক্ষম করা আপনি দেখতে পাবেন যে প্যাটার্নটি কেবলমাত্র ব্যবহারের সময় প্রসারিত -u

    $ SYSTEMD_LOG_LEVEL=debug journalctl -n1 -u gdm*
    ...
    Matched gdm.service with pattern _SYSTEMD_UNIT=gdm*
    Matched gdm.service with pattern UNIT=gdm*
    Journal filter: ((OBJECT_SYSTEMD_UNIT=gdm.service AND _UID=0) OR (UNIT=gdm.service AND _PID=1) OR (COREDUMP_UNIT=gdm.service AND _UID=0 AND MESSAGE_ID=fc2e22bc6ee647b6b90729ab34a250b1) OR _SYSTEMD_UNIT=gdm.service)
    ...
    

    সমস্ত ম্যাচকে যথাযথ হিসাবে বিবেচনা করা হয়, সহ UNIT:

    $ SYSTEMD_LOG_LEVEL=debug journalctl -n1 UNIT=gdm.*
    ...
    Journal filter: UNIT=gdm*
    ...
    

1
দ্রষ্টব্য যে এটি বাস্তবে সর্বশেষ সিস্টেমেড রিলিজ github.com
বিগন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.