লোগ্রোটেট কনফিগারেশন ফাইল সিনট্যাক্স - একাধিক ওয়াইল্ডকার্ড এন্ট্রি সম্ভব?


83

যেহেতু মেন পৃষ্ঠাটি আমার প্রশ্নের উত্তর দেয় না এবং আমি কোনও ঘূর্ণনচক্রকে জোর করতে চাই না, তাই আমি এখানে প্রশ্ন জিজ্ঞাসা করার সিদ্ধান্ত নিয়েছি।

লোগ্রোটেটের জন্য ম্যান পৃষ্ঠাটি নিম্নলিখিত উদাহরণ দেয়:

   "/var/log/httpd/access.log" /var/log/httpd/error.log {
       rotate 5
       mail www@my.org
       size 100k
       sharedscripts
       postrotate
           /usr/bin/killall -HUP httpd
       endscript
   }

ওয়াইল্ডকার্ড সহ সমস্ত উদাহরণে কেবল একটি একক প্রবেশ থাকে। এখন, আমি যা সম্পর্কে আগ্রহী তা হ'ল এটির অনুমতিও রয়েছে কি না:

   /var/log/httpd/*.log /var/log/httpd/*/*.log {
       # ... same as above
   }

এখানে যুক্তিটি রয়েছে: আমার একাধিক vhosts রয়েছে এবং আমি সেই vhosts "মালিকানাধীন" ব্যবহারকারীর দ্বারা এগুলিকে বিভক্ত করেছি। যেহেতু লগ ফাইলগুলি বিশ্ব-পঠনযোগ্য, তাই আমি একটি ফোল্ডারটি ব্যবহারকারীর হোম ডিরেক্টরিতে বাঁধতে চাই, তবে এটি লগ ফাইলগুলিতে সীমাবদ্ধ করুন যা ব্যবহারকারীর "মালিকানাধীন", যা লগগুলি ফোল্ডারে পৃথক করে সবচেয়ে সহজ অর্জন (এবং বাঁধাই) - মাউন্টিংয়ে যেভাবেই সেই পরিকল্পনা প্রয়োজন requires তাই আমি একটি সমাধান খুঁজছি অধীনে উভয় লগ ফাইল ঘোরাতে /var/log/httpdসেইসাথে যে ডিরেক্টরি সাবডিরেক্টরি অধীনস্থ সকল লগ ফাইল - ছাড়া নামে প্রতিটি সাব তালিকা হচ্ছে।

সাধারণভাবে ম্যান পেজ কোনও প্রমাণ দেয় না যে একাধিক এন্ট্রিগুলি ওয়াইল্ডকার্ড নিয়মের জন্য বা শুধুমাত্র পুরো পথের জন্যই সম্ভব। আমি লোগ্রোটেট সংস্করণটি ৩.-6.৮--6 ব্যবহার করছি যা দেবিয়ান "স্কিজ" এর সাথে আসে তবে আমি মনে করি এটি কোনও ডিস্ট্রো বা প্রোগ্রাম সংস্করণের জন্য নির্দিষ্ট নয়।

উত্তর:


119

হ্যাঁ, আপনি একাধিক ওয়াইল্ড কার্ড ব্যবহার করতে পারেন। এটি করে প্রকৃত ঘূর্ণন সম্পাদন না করে আপনি নিজের ফাইলটি পরীক্ষা করতে পারেন:

logrotate -d -f /etc/logrotate.conf
  • -d = ডিবাগ মোড চালু করে। ডিবাগ মোডে, লগগুলিতে বা লোগ্রোটেট স্টেট ফাইলটিতে কোনও পরিবর্তন করা হবে না।

  • -f = লোগ্রোটেটকে ঘূর্ণনটি বাধ্য করার জন্য বলছে, যদিও এটি এটি প্রয়োজনীয় মনে করে না। লোগ্রোটেটে নতুন এন্ট্রি যুক্ত করার পরে কখনও কখনও এটি কার্যকর হয় বা পুরানো লগ ফাইলগুলি যদি হাত দ্বারা মুছে ফেলা হয়, কারণ নতুন ফাইলগুলি তৈরি হবে, এবং লগিং সঠিকভাবে চলতে থাকবে `


3
অনেক ধন্যবাদ! স্রেফ চেষ্টা করেছেন এবং এটি কাজ করে। আউটপুট থেকে এটি প্রদর্শিত হবে যে শেলের মতো ওয়াইল্ডকার্ডগুলি যেমন কাজ করবে আশা করা যায়।
0xC0000022L

24

আমি কেবল স্পষ্ট করে বলতে চেয়েছিলাম, কারণ আমি এখানে কীভাবে করব তা দেখতে পেয়েছি,

একক কনফিগারেশনের জন্য একাধিক লগ ফাইল নির্দিষ্ট করার অনুমতি রয়েছে, যেমন

/var/log/httpd/access.log
/var/log/httpd/error.log
/var/log/httpd/mysite/*.log
{
    rotate 5
    mail nobody@example.org
    size 100k
    sharedscripts
    postrotate
        /usr/bin/killall -HUP httpd
    endscript
}

//, একাধিক লাইনে ঘটে যাওয়া বিভিন্ন পাথের সমস্যা নেই?
নাথান বাসানিজ

@ নাথানবাশানিজ আমি আপনার প্রশ্নটি পুরোপুরি বুঝতে পারি না, আমি মনে করি যে আপনি ডিস্কে যে কোনও জায়গায় ফাইলগুলিতে পাথ লাইনগুলি নির্দেশ করতে পারেন, সেগুলি সমস্ত একই ডিরেক্টরি উপসর্গে থাকতে হবে না।
থারস্মমনার

@ নাথানবাশানিজ ওহ, আমি মনে করি যে আমি বুঝতে পেরেছি যে বিভিন্ন লাইনে একাধিক লগ রোটেশন লক্ষ্যমাত্রা থাকা একটি সাধারণ ব্যবহার হিসাবে দেখা যায়, আমি অন্য লোগ্রোটেট.ডি স্ক্রিপ্ট থেকে এই ফর্মটি অনুলিপি করেছি, উদাহরণস্বরূপ /etc/logrotate.d/rsyslog
থারস্মমনার

4

লোগ্রোটেটের জন্য ম্যান পৃষ্ঠা থেকে :

নোট করুন যে লগ ফাইলের নামগুলি উদ্ধৃতিতে আবদ্ধ থাকতে পারে (এবং যদি নামটি ফাঁকা থাকে তবে উক্ত আবশ্যকগুলি প্রয়োজন)। ', ", এবং \ অক্ষর সমর্থিত সহ সাধারণ শেল উদ্ধৃতি বিধিগুলি প্রয়োগ হয়।

একক থেকে একাধিক নিদর্শনগুলিতে যাওয়ার সময় দয়া করে উদ্ধৃতি চিহ্নগুলি সংশোধন বা সরিয়ে ফেলতে ভুলবেন না:

এইটা কাজ করে:

/var/log/*.log /var/log/*.blog {

এটিও কাজ করে:

/var/log/*.log
/var/log/*.blog {

এটা কাজ করে না:

'/var/log/*.log /var/log/*.blog' {

এবং এটিও নয়:

"/var/log/*.log /var/log/*.blog" {

একক প্যাটার্ন কেসের সাথে তুলনা করুন।

এইটা কাজ করে:

'/var/log/*.log' {

এবং এটিও কাজ করে:

"/var/log/*.log" {

লোগ্রোটেট ৩.১০.০ দিয়ে পরীক্ষা করা হয়েছে


2
এটি কাজ করে কিনা তা জানতে আকর্ষণীয় হবে:"/var/space /log/*.log" "/var/log/*.blog"
KajMagnus
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.