আপনি কীভাবে সিস্টেমেডের জার্নাক্টল নিদর্শনগুলি ব্যবহার করেন


21

আমি journalctlএর প্যাটার্ন ম্যাচটি ব্যবহার করার চেষ্টা করছি SYSLOG_IDENTIFIERS। উদাহরণ হিসাবে, আমার কাছে একটি টন বার্তা ট্যাগ রয়েছে sshd:

$ journalctl -t sshd | wc -l
987

তবে আমি যদি তাদের সন্ধানের জন্য প্যাটার্ন মেল ব্যবহার করার চেষ্টা করি:

$ journalctl -t 'ssh*'
-- No Entries --
$ journalctl -t 'ssh.*'
-- No Entries --

জার্নাল্টেল ম্যান পৃষ্ঠাটি বলে যে নিদর্শনগুলি কাজ করা উচিত, তবে সিস্টেমডে প্যাটার্নগুলি কীভাবে ব্যবহৃত / সংজ্ঞায়িত হয় সে সম্পর্কে আমি অন্য কিছু খুঁজে পাচ্ছি না।

$ man journalctl
....
-t, --identifier=SYSLOG_IDENTIFIER|PATTERN
       Show messages for the specified syslog identifier SYSLOG_IDENTIFIER,
       or for any of the messages with a "SYSLOG_IDENTIFIER" matched by PATTERN.

আমি আর্চলিনাক্স চালাচ্ছি:

$ journalctl --version
systemd 225
+PAM -AUDIT -SELINUX -IMA -APPARMOR +SMACK -SYSVINIT +UTMP +LIBCRYPTSETUP
+GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID -ELFUTILS +KMOD +IDN

5
আইআরসি সম্পর্কিত আলোচনার ভিত্তিতে মনে হয় এটি একটি বাগ (বা ডকুমেন্টেশনের কোনও সমস্যা)। একটি বাগ দায়ের করা হয়েছে ।
মার্ক গ্রিমস

1
রিয়েলটাইমের জন্য এটি চেষ্টা করুন: জার্নাল্টেল -f | grep sshd
nexoma

আপনি যদি এটি মানানসই হন তবে আপনি আসলে একাধিক-টি <সনাক্তকারী> যুক্ত করতে পারেন।
সিভান

উত্তর:


15

এটি একটি ডক বাগ ছিল যা manপৃষ্ঠাতে টাইপো আপডেট হওয়ার পরে বন্ধ ছিল।

বাগ রিপোর্টটি কোডটিতে নিম্নলিখিত মন্তব্যের দিকে পরিচালিত করেছে :

আমরা আসলে নিদর্শনগুলি গ্রহণ করি না, তাই দাবি করি না।

কার্যতালিকা হিসাবে, আপনি grepআপনার প্রশ্নের মন্তব্যে প্রস্তাবিত হিসাবে ব্যবহার করতে সক্ষম হতে পারেন । এটার মতো কিছু:

journalctl | grep sshd

0

মূল প্রশ্নটির শিরোনাম "আপনি সিস্টেমডের জার্নাল্টেল নিদর্শনগুলি কীভাবে ব্যবহার করবেন "। এটি জেনেরিক নিয়মিত এক্সপ্রেশন ফিল্টারিংয়ের পরিবর্তে "ম্যাচস" নামে জার্নালটির খুব নির্দিষ্ট বৈশিষ্ট্যটির দিকে ইঙ্গিত করে।

"ম্যাচগুলি" বৈশিষ্ট্যটি তার বন্ধুত্বপূর্ণ ম্যান পৃষ্ঠাতে অন্যান্য সমস্ত বৈশিষ্ট্যের সাথে পুরোপুরি বিশদভাবে বর্ণিত রয়েছে যা এর শুরুতেই বলেছে:

যদি এক বা একাধিক ম্যাচের আর্গুমেন্টগুলি পাস হয় তবে আউটপুট সেই অনুযায়ী ফিল্টার করা হবে।

"ম্যাচগুলি" বৈশিষ্ট্যটি বোঝা যায় সম্ভাব্য ফিল্টারগুলির উপর নির্ভর করে লগ এন্ট্রি ফিল্টার করে।

মূল প্রশ্নটির মতো মামলার ক্ষেত্রে, আমি কীভাবে এটি করি (আমি আর্চলিনাক্সও চালাই)।

প্রথমত, আপনি যে সেবার নামটি আগ্রহী তা আপনার জানতে হবে I আমি সাধারণত এটি করি:

systemctl | grep sshd

বুঝতে পেরেছি:

sshd.service       loaded active running   OpenSSH Daemon

তারপরে আপনি journalctl"সিস্টেমড ইউনিট নাম" এর মাধ্যমে ফিল্টার করতে বলতে পারেন :

journalctl _SYSTEMD_UNIT=sshd.service

একে বলা হয় "ম্যাচগুলি ফিল্টারিং"। এটা হবে।

যদি " জার্নালেক্টল আউটপুটটিতে কীভাবে প্রয়োগ grepকরতে হয় " তার অর্থ মূল প্রশ্নটি পরিবর্তিত হয় তবে আপনি grep"এতদূর" সঞ্চিত লগগুলিতে আবেদন করতে পারেন

journalctl | grep ssh

অথবা সাথে বর্তমানে আগত লগ এন্ট্রিগুলি দেখুন

journalctl -f | grep ssh

এবং প্রবাহ বন্ধ করতে CTRL-C টিপুন। অবশ্যই, আপনি সূক্ষ্ম দানাদার নিয়মিত নিদর্শন বা একাধিক grepকমান্ডের সাহায্যে আরও জটিল পাইপগুলি ব্যবহার করতে পারেন ।


প্রতিক্রিয়াটির জন্য ধন্যবাদ, তবে __SYTEMD_UNIT নিদর্শন গ্রহণ করে না। আমার মন্তব্য এবং @ টিমের উত্তরে উল্লিখিত হিসাবে এটি ডক্সে একটি বাগ ছিল।
মার্ক গ্রিমস

@ মার্কগ্রিমস, কমপক্ষে আমার জন্য (systemd 239) এটি কাজ করে। আমি যা বলি তা লেখার আগে সর্বদা পরীক্ষা করি। এটি দলিল হিসাবে কাজ করে।
এনজোরআর

প্রশ্ন ব্যবহার সম্পর্কে হয় নিদর্শন , উদাহরণস্বরূপ ssh*। জার্নালটেল ডক্স জানিয়েছিল যে এটি এক সময় সম্ভব ছিল। দস্তাবেজগুলি ভুল ছিল এবং আপডেট করা হয়েছে।
মার্ক গ্রিমস

@MarkGrimes প্রশ্ন সম্পর্কে systemd হল এর journalctl নিদর্শন না কোন চরিত্র প্যাটার্ন । আমার আপডেট করা উত্তর দেখুন দয়া করে। এবং এটি আর্কলিনাক্সের অধীনে নথিভুক্ত হিসাবে কাজ করে।
এনজোরআর

-2

আপনি চালানোর সময় আপনি ইউনিট ফাইলটি সংজ্ঞায়িত করতে পারেন journalctl

জার্নাল্টেল-ফ-ইউ এসএসডিডি। সার্ভিস

আমি কেবল জার্নাল দেখাব sshd


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