লগগুলি ঘণ্টায় ঘোরাতে আমি লোগ্রোটেট কীভাবে সেট আপ করতে পারি?


23

ইউনিক্স এবং Linux প্রশাসন হ্যান্ডবুক অনুযায়ী এবং manজন্য, logrotate বিকল্প রয়েছে daily, weeklyএবং monthly, কিন্তু একটি যোগ করার জন্য একটি উপায় hourlyবিকল্প?

এই ব্লগ পোস্ট আপনি সেট করতে পারেন উল্লেখ size 1এবং সময় বিকল্প অপসারণ (উদাহরণ: daily) এবং তারপর নিজে কল logrotateসঙ্গে cron- আমি ভালো কিছু অনুমান করা

logrotate -f /etc/logrotate.d/my-hourly-file

তবে লগগুলি প্রতি ঘন্টা ঘোরানোর জন্য আরও কি মার্জিত সমাধান আছে?


অবশ্যই। আপনার অপারেটিং সিস্টেমটি কী, কোন সংস্করণ?
নীল

উবুন্টু 10.04 এবং 11
cwd

উত্তর:


20

আপনার ওএসের উপর নির্ভরশীল। কিছু (সমস্ত?) লিনাক্স ডিস্ট্রিবিউশনের একটি ডিরেক্টরি রয়েছে /etc/cron.hourlyযেখানে আপনি প্রতি ঘন্টা ঘন্টা ক্রোন জবগুলি কার্যকর করতে পারেন।

অন্যের একটি ডিরেক্টরি আছে /etc/cron.d/। ক্রোনটব এন্ট্রি (এবং আপনাকে ব্যবহারকারীর নাম উল্লেখ করতে হবে) হিসাবে ক্রোন-জবগুলি যে কোনও বিশেষ ব্যবহারকারী হিসাবে কার্যকর করা হবে তা কোনও ক্রন্টব এন্ট্রি (এবং আপনার ব্যবহারকারীর নাম নির্দিষ্ট করতে হবে) রাখতে পারেন।

আপনি যদি স্ট্যান্ডার্ড লগ রোটেশন স্ক্রিপ্টের পরিবর্তে এর মধ্যে দুটি ব্যবহার করেন তবে /etc/cron.daily/আপনাকে সেই স্ক্রিপ্টটি সেখানে এবং cp /dev/nullমূল অবস্থানে অনুলিপি করতে হবে । অন্যথায় এটি লোগ্রোটেট প্যাচ-আপডেট দ্বারা পুনরায় সক্রিয় করা হবে।

যথাযথ প্রতি ঘন্টার আবর্তনের জন্য, dateextনির্দেশটি সেট না করা আছে সেদিকেও খেয়াল রাখুন । যদি তা হয় তবে ডিফল্টরূপে প্রথম আবর্তিত ফাইলটি ওয়াইওয়াইওয়াইএমএমডিডি-র মতো বর্তমান তারিখের এক্সটেনশন পাবে। তারপরে, দ্বিতীয়বার লোগ্রোটেট একই দিনের মধ্যে সক্রিয় হয়ে উঠবে, এটি কেবল sizeপ্রান্তিকতা অতিক্রম করলেও ঘূর্ণনটি এড়িয়ে যায় ।

কারণটি হ'ল ফাইলটি ঘোরানোর জন্য নতুন নামটি ইতিমধ্যে বিদ্যমান এবং লোগ্রোটেট বিদ্যমান পুরানো ফাইলটিতে সামগ্রী যুক্ত করে না। উদাহরণস্বরূপ আরএইচইএল এবং সেন্টোস-এ, dateextনির্দেশিকাটি ইন-ডিফল্টরূপে দেওয়া হয় /etc/logrotate.conf। এই লাইনটি সরিয়ে বা মন্তব্য করার পরে, ঘোরানো ফাইলগুলি কেবল মানটিতে পৌঁছানো অবধি এক্সটেনশন হিসাবে একটি চলমান নম্বর পাবে rotate। এইভাবে, দিনে একাধিক আবর্তন করা সম্ভব।


5

কেবল নীল উত্তরের সাথে যুক্ত করতে, যদি logrotateকোনও দেবিয়ান বা উবুন্টু বাক্সে স্ক্রিপ্টের অবস্থানটি পরিবর্তন করা হয় তবে dpkg-divertকেবল ফাইলটি অনুলিপি /dev/nullকরে এবং আসল অবস্থানে অনুলিপি না করে ব্যবহার করা সম্ভবত নিরাপদ eg

dpkg-divert --add --rename --divert /etc/cron.hourly/logrotate /etc/cron.daily/logrotate

আমি এই সম্পর্কে জানতাম না এবং আমি উবুন্টু কয়েক বছর ধরে ব্যবহার করে আসছি। ধন্যবাদ. :)
ভোগানি

2

অন্য একটি বিকল্প লোগ্রোটেট কমান্ড ক্রন্টব তালিকায় যুক্ত করবে। তারপরে এটি প্রতি ঘন্টার জন্য কার্যকর করা হবে।

crontab -e

ক্রন্টব তালিকায় লাইনের নীচে যুক্ত করুন

0 * * * * /usr/sbin/logrotate /etc/logrotate.d/my-hourly-file
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.