লোগ্রোটেট: "লগ ঘোরানোর প্রয়োজন হয় না" কেন?


57

আমার নিম্নলিখিত নতুন লোগ্রোটেট কনফিগারেশন রয়েছে:

/var/log/nexus/nexus.log {
    rotate 7
    missingok
    compress
    delaycompress
    copytruncate
    daily
}

আমি যখন দৌড়ে যাই logrotate -d nexus, তখন আমি নিম্নলিখিতগুলি পাই:

reading config file nexus
reading config info for /var/log/nexus/nexus.log

Handling 1 logs

rotating pattern: /var/log/nexus/nexus.log  after 1 days (7 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/nexus/nexus.log
  log does not need rotating

আমার / var / লগ / নেক্সাস / ফোল্ডারে নিম্নলিখিতটি রয়েছে:

nexus.log
oldlogs.tar.gz

কেন লগরোটেট Nexus.log ফাইলটি ঘুরছে না? আমি যা প্রত্যাশা করছিলাম তা হ'ল nexus.log ফাইলটি কেটে ফেলা হত এবং একটি নতুন ফাইল, nexus.log-201106241000 এর মতো কিছু তৈরি করা হয়েছিল।


এছাড়াও, মনে রাখবেন, আপনি যখন -d বিকল্পটি ব্যবহার করেন, এটি লগগুলি ঘোরান না। এটি আপনাকে দেখায় যে এটি কোনও গেম পরিকল্পনার মতো বিকল্প ছাড়া চলবে। যখন আমি ভেবেছিলাম যে আমি তাদের ঘোরানো দেখতে পাচ্ছি তখন তারা আমার তীব্র মাথাব্যথার কারণ হয়েছিল এবং তারপরে তারা এখনও সেখানে রয়েছে।
ম্যাক্সওয়েল ফ্ল্যান্ডার্স

উত্তর:


64

সম্ভবত, লগ ফাইলটি এক দিনেরও কম পুরানো এবং / অথবা শেষ দিনের মধ্যে ঘোরানো হয়েছিল এবং লোগ্রোটেট ইতিহাস মনে রাখে।

যদি আপনি যুক্ত করেন -fতবে আপনি যদি সত্যিই চান তবে এটি কোনও রোটেশনকে বাধ্য করবে (যদিও এটি কীভাবে এর সাথে ইন্টারেক্ট করে 100% নিশ্চিত নয় -d)।

আপনি ইতিহাসটি দেখতে পারেন, অবস্থানটি আপনার বিতরণের উপর নির্ভর করে তবে তা হতে পারে /var/lib/logrotate/status। লগগুলি সর্বশেষ ঘোরানো হয়েছিল তখন এই ফাইলটি দেখায়।


4
ফ্রিবিএসডি-তে এটি /var/run/logrotate.status
ক্যালিসিন

স্থিতি ফাইল অবস্থানের জন্য
অনুরোধে

2
-d+ -fলোগ্রোটেট রিপোর্ট সমস্ত ফাইলের জন্য "ঘোরানো দরকার" তৈরি করে, এমনকি মেলে না এমনগুলিও
ফ্লফি

এটি যুক্ত করতে, ঘূর্ণন নীতির চেয়ে পুরনো হওয়ার জন্য স্ট্যাটাস ফাইলে তারিখ সম্পাদনা করা logrotateযখন এটি আবার চালিত হয় তখন লগটি ঘোরানো দরকার তা বোঝাতে যথেষ্ট ।
সেন্টটিমান

CentOS এ, লোগ্রোটেটের কাজ পেতে আমি /var/lib/logrotate.status সংশোধন করেছি। আটবিটটনি দ্বারা নির্দেশিত হিসাবে, দৈনিক লোগ্রোটেট ইতিহাসটি মনে রাখবে। ইতিমধ্যে ফাইলটি ইতিহাসে ইতিমধ্যে অতীতের কোনও তারিখ না থাকলে লোগ্রোটেট ফাইলটি ঘোরবে না।
চিহ্নিত করুন

58

আপনি প্রথমবার যখন কোনও নতুন লগ কনফিগারেশন দিয়ে লোগ্রোটেট চালাবেন এটি কখনই শেষ লগ ঘূর্ণনটি ঘটেছে তা জানে না, তাই এটি /var/lib/logrotate/statusআজ একটি স্ট্যাটাস লাইন লিখেছিল যে এটি আজ চালানো হয়েছিল।

পরের দিন এটি যখন পরের দিনটি চালায় তখন দেখা যায় যে লগটি পুরানো একটি দিনের এবং এটি প্রত্যাশা অনুযায়ী ঘোরে। আপনি যদি অপেক্ষা করতে না চান, লোগ্রোটেটের স্থিতি ফাইলটি সম্পাদনা করুন এবং আপনার লগের জন্য স্থিতির তারিখটি আগের দিনটিতে ফিরে যান।

আপনি যখন লোগ্রোটেট ম্যানুয়ালি চালান, এটি প্রত্যাশার মতো কাজ করবে


5

কখনও কখনও আপনি লোগ্রোটেট ম্যানুয়ালি চালানো হলেও, যদি আপনি একই দিনে এটি করেন এবং dateextডিফল্ট মানটিতে সানকন্ডগুলি অন্তর্ভুক্ত না থাকে তবে এটি কাজ করবে না (উদাঃ -%Y%m%d)। এমনকি আপনি লোগ্রোটেটের স্থিতি ফাইলটি পরিবর্তন করেন বা আকার নির্দেশিকা ব্যবহার করার সময়ও (যেমন size 200M)। কমপক্ষে CentOS 6 এ, লোগ্রোটেট আপনার লগ ফাইলটি ঘোরতে ব্যর্থ হবে কারণ এটি ইতিমধ্যে বিদ্যমান।

এই সমাধানের জন্য, আপনি ব্যবহার করতে হবে dateformatপরিবর্তে dateextমত একটি মান সহ: %Y%m%d%s

দেখুন man logrotateআরও তথ্যের জন্য।


1

দৌড়ে যে সাবধান

logrotate -vdf /etc/logrotate.conf

ইভেন্টটি যদিও কেবল সিমুলেটেড লগইন হবে /var/lib/logrotate.status এবং পরবর্তী লোগ্রোটেট রানগুলি উল্লিখিত সাথে জবাব দেবে

log does not need rotating

1
আমি উবুন্টুতে (16.04 এবং 17.04) পুনরুত্পাদন করতে পারি না। যদি "/var/lib/logrotate.status" ব্যবহার করা হয় তবে আপনাকে অবশ্যই অন্য ডিস্ট্রো ব্যবহার করতে হবে। উবুন্টু "/ var / lib / লোগ্রোটেট / স্থিতিতে" লগ করে।
ফিলিপ ক্লেইন

2
@ ফিলিপ ক্লেইন: আপনি ঠিক বলেছেন এই /var/lib/logrotate.statusডকারের ধারকটির মধ্যে আলপাইন লিনাক্স on.৩ এ লোগ্রোটেট ৩.১০ এর কনফিগারেশনটি ডিবাগ করার সময় দেখা গেছে (স্ট্যাটাস ফাইলটি স্থাপন করা হয়েছে)। তবে প্রশ্নের সংজ্ঞায় কোনও উবুন্টু পতাকা নেই, তাই না?
হেলভেট

1
হ্যাঁ, ঠিক আছে। আমি কেবল এটি উল্লেখ করব কারণ উবুন্টু এত জনপ্রিয়। আমি ধরে নিয়েছি যে অনেকে এই প্রশ্নটি পড়েছেন কারণ তারা তাদের সার্ভারটি ঠিক করতে চান যা বর্তমানে প্রায়শই উবুন্টু দিয়ে চলে।
ফিলিপ ক্লেইন

1
ঠিক আছে এটাই সঠিক. সম্পূর্ণ হওয়ার জন্য আমি যুক্ত করতে পারি যে /var/lib/logrotate/logrotate.status
সেন্টোস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.