আমি CentOS 7 এর অধীনে পূর্ববর্তী বুটগুলির লগ বার্তাগুলি কীভাবে প্রদর্শন করব?


78

journalctlএকটি CentOS 7 সিস্টেমের অধীনে সম্পাদন করা শেষ বুটের পরে উত্পন্ন বার্তাগুলি মুদ্রণ করে।

আদেশ

# journalctl --boot=-1

কপি করে প্রিন্ট

Failed to look up boot -1: Cannot assign requested address

এবং স্থিতি 1 সহ প্রস্থান করে।

এটি একটি বর্তমান ফেডোরা সিস্টেমের সাথে তুলনা করে আমি লক্ষ্য করেছি যে সেন্টোস 7 তে নেই /var/log/journal(এবং সরবরাহ journalctlকরে না --list-boots)।

এইভাবে আমার প্রশ্নটি লগ বার্তাগুলি কীভাবে প্রদর্শন করতে হয় যা সর্বশেষ বুটের তারিখের আগে লেখা হয়েছিল।

বা, সম্ভবত এই কার্যকারিতাটি সেন্টোস 7 এ সক্ষম করতে হবে?

( journalctlম্যান পেজটি সংস্করণ নম্বর হিসাবে 'সিস্টেমড ২০৮' তালিকাভুক্ত করে))

উত্তর:


99

TL; ড

CentOS 7 এ, আপনাকে লগ বার্তাগুলির অবিচ্ছিন্ন স্টোরেজ সক্ষম করতে হবে:

# mkdir /var/log/journal
# systemd-tmpfiles --create --prefix /var/log/journal
# systemctl restart systemd-journald

অন্যথায়, জার্নাল লগ বার্তা বুটের মধ্যে ধরে রাখা হয় না।

বিস্তারিত

কিনা journaldবজায় পূর্ববর্তী বুট থেকে লগ বার্তার মাধ্যমে কনফিগার করা হয়েছে /etc/systemd/journald.conf। CentOS 7 এর অধীনে ডিফল্ট সেটিংসটি হ'ল:

[Journal]
Storage=auto

যেখানে জার্নালডকনফ ম্যান পেজটি ব্যাখ্যা autoকরেছে:

একটি "উদ্বায়ী", "ধ্রুবক", "অটো" এবং "কোনওটিই নয়"। যদি "অস্থির" হয় তবে জার্নাল লগ ডেটা কেবল মেমরিতে সংরক্ষণ করা হবে, যেমন / রান / লগ / জার্নাল শ্রেণিবিন্যাসের নীচে (যা প্রয়োজন হলে তৈরি করা হয়)। যদি "অবিচলিত" থাকে, তবে ডিস্কের উপরে ডেটা সংরক্ষণ করা হবে, যেমন / var / লগ / জার্নাল হায়ারার্কির নীচে (যা প্রয়োজন হলে তৈরি করা হয়), / রান / লগ / জার্নালে (যা প্রয়োজনে তৈরি করা হয়) ফ্যালব্যাক সহ প্রারম্ভিক বুট এবং ডিস্ক লিখনযোগ্য না হলে। " অটো " " ধ্রুবক " এর অনুরূপ তবে ডিরেক্টরি / ভার / লগ / জার্নাল প্রয়োজনে তৈরি হয় না, যাতে লগের ডেটা কোথায় যায় তার অস্তিত্ব নিয়ন্ত্রণ করে

(আমার উপর জোর দিন)

Systemd হল-journald.service man পৃষ্ঠা এইভাবে যে:

ডিফল্টরূপে, জার্নাল লগ ডেটা / রান / লগ / জার্নাল / এ সঞ্চয় করে। যেহেতু / চালানো / অস্থির, লগ ডেটা পুনরায় বুটে হারিয়ে যায়। ডেটা অবিরাম রাখতে, / var / লগ / জার্নাল তৈরি করা যথেষ্ট যেখানে সিস্টেমেড-জার্নাল্ড ডেটা সংরক্ষণ করবে।

স্পষ্টতই, ফেডোরা 19 -তে (পার্সেন্টেন্ট স্টোরেজ হিসাবে) ডিফল্ট পরিবর্তন করা হয়েছিল এবং যেহেতু CentOS 7 ফেডোরা 18 থেকে উদ্ভূত হয়েছে - এটি এখনও ডিফল্টরূপে অবিচল রয়েছে। অধ্যবসায়টি জার্নাল্ডের মাধ্যমে ডিফল্টরূপে প্রয়োগ করা হয় /var/log/messagesএবং ঘূর্ণিত সংস্করণগুলি /var/log/messages-YYYYMMDDযা rsyslogd দ্বারা লিখিত হয় (যা ডিফল্টরূপে চালিত হয় এবং জার্নাল্ড থেকে তার ইনপুট পায়)।

সুতরাং, আরএইচইএল / সেন্টোস 7 এর অধীনে জার্নাল্ডের সাথে অবিচ্ছিন্ন লগিং সক্ষম করতে একজনকে করতে হবে

# mkdir /var/log/journal

এবং তারপরে অনুমতিগুলি স্থির করুন এবং জার্নালিত পুনরায় চালু করুন, উদাহরণস্বরূপ

# systemd-tmpfiles --create --prefix /var/log/journal
# systemctl restart systemd-journald

6
systemctl restart systemd-journaldএটি করা উচিত। সুতরাং কোন রিবুট প্রয়োজন।
এক্সএক্স

@ xx4 ঘন্টা, উত্তরটি আপডেট করেছেন
ম্যাক্সচলেপজিগ

9
ডেবিয়ান এই সময়ে নথিভুক্ত করা /usr/share/doc/systemd/README.Debian: install -d -g systemd-journal /var/log/journal
পেভিক

@ পেভিক, আমি একটি সেন্টোস system সিস্টেমের দিকে নজর রেখেছি (যেখানে আমি সবেমাত্র এমকিডির ব্যবহার করেছি) এবং বর্তমান অনুমতিগুলি drwxr-sr-x. 3 root systemd-journalহ'ল - সম্ভবত জার্নাল্ড প্রাথমিককরণের সময় অনুমতি / মালিকানা ঠিক করে ফেলেছে।
ম্যাক্সচলেপজিগ

8
একটি ঝরঝরে কৌশল শিখেছি: আপনি যদি USR1পুনরায় চালু করার পরিবর্তে একটি সংকেত প্রেরণ করেন তবে আপনি বর্তমান জার্নাল সামগ্রীগুলি হারাবেন না। killall -USR1 systemd-journald
জেমস বি

1
systemctl restart systemd-journald

আপনি আপনার লগগুলি হারাতে পারেন: https://github.com/systemd/systemd/issues/2236 দেখুন

mkdir /var/log/journal

এর মধ্যে একটি পরিবর্তন রয়েছে v208:

সিস্টেমড-জার্নাল্ড আর তৈরি করা জার্নাল ফাইলগুলির গোষ্ঠীটিকে "সিস্টেমড-জার্নাল" গোষ্ঠীতে আর সামঞ্জস্য করবে না। পরিবর্তে আমরা "সিস্টেমেড-জার্নাল" গ্রুপের মালিকানাধীন জার্নাল ডিরেক্টরি এবং তার সেটগিড বিট সেটকে নির্ভর করি, যাতে কার্নেল ফাইল সিস্টেম স্তরটি স্বয়ংক্রিয়ভাবে জার্নাল ফাইলগুলি এই গোষ্ঠী নিয়োগের অধিকারী করে তোলে।

Systemd এ অন্তর্ভুক্ত একটি tmpfiles.d (5) স্নিপেট নিশ্চিত করবে যে প্রতিটি বুটে উপস্থিত থাকলে জার্নাল ডিরেক্টরিতে সেটগিড বিট এবং গোষ্ঠী সঠিকভাবে সেট করা আছে।

সুতরাং, আপনার systemd-tmpfiles --create --prefix /var/log/journalপরে কিছু চালানো উচিতmkdir /var/log/journal

আরও দেখুন :


এইচএম, বা একটি mod chmod 4755 / var / লগ / জার্নাল করুন; কাউন্ট রুট: সিস্টেমড-জার্নাল!: 2 '- বা কেবল একটি রিবুট করুন। আমি আমার উত্তর আপডেট করব।
ম্যাক্সলেপজিগ

@ ম্যাক্সচলেপজিগ, কেবল পুনরায় বুটটি
ইভজেনি

chmod 4755 /var/log/journal; chown root:systemd-journal !:2ঠিকভাবে কাজ করে. কিন্তু tmpfiles ACL এর যাদু জার্নাল ডিরেক্টরি ব্যবহার
Evgeny Vereshchagin

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