খোলা এবং সর্বদা লিখিত থাকা একটি ফাইল ঘোরান


10

আমার একটি লিনাক্স অ্যাপ্লিকেশন রয়েছে যা নিয়মিত একটি লগ ফাইলে লগিংয়ের তথ্য লেখেন। /var/log/application.log। অ্যাপ্লিকেশনটি স্বয়ংক্রিয়ভাবে ফাইলটি ঘোরান না বলে এই লগ ফাইলটি কয়েক সপ্তাহের মধ্যে একটি গিগাবাইটের আকারে পৌঁছতে পারে, তাই আমি এই ফাইলটি সঠিকভাবে ঘোরানোতে সক্ষম হতে চাই

এখানে আমার প্রধান উদ্বেগ হ'ল অ্যাপ্লিকেশন দ্বারা সর্বদা খোলা একটি ফাইল ঘোরানোর জন্য, আমার সম্ভবত এটির প্রয়োজন হবে:

  1. ফাইলটিকে তার ঘোরানো আকারে সরান /var/log/application.log -> /var/log/application.log.2013-01-28

  2. একটি খালি তৈরি করুন /var/log/application.logওবস: এই মুহুর্তে আবেদন প্রক্রিয়াটি এখনও লিখছে/var/log/application.log.2013-01-28

  3. আবার নির্দেশ করতে অ্যাপ্লিকেশন প্রক্রিয়ার ফাইল বিবরণকারী পরিবর্তন করুন /var/log/application.log

তো, আমি ঠিক আছি? যদি তা হয় তবে আমি কীভাবে এটি করতে পারি? (মূলত ফাইল বর্ণনাকারীর অংশ পরিবর্তন করা)

আমি না থাকলে সঠিক উপায় কী এবং কীভাবে এটি করা যায়?


আপনার কি ফাইলটি সাফ করা বা কেবল এটি ঘোরানোর দরকার?
ew white

কি আবেদন? এটি সঠিকভাবে করার জন্য অ্যাপ্লিকেশনটিকে সহায়তা সরবরাহ করতে হবে। (অন্যথায়, আপনি একটি খুব কুরুচিপূর্ণ জিনিস করতে পারেন - প্রক্রিয়াটি সংযুক্ত করুন, নতুন ফাইলটি খুলুন, dup2পুরানোটির উপরে নতুন বর্ণনাকারী, তারপরে নতুন বর্ণনাকারী বন্ধ করুন))
ডেভিড শোয়ার্জ

আকর্ষণীয় অ্যাপ্রোচ শোয়ার্জ আমি এটি দেখতে পেয়েছি আগ্রহী এবং এটি কিছুক্ষণ খেলব। যাইহোক, অ্যাপ্লিকেশনটি ঘরে রয়েছে এবং আমি আরও সাধারণ সমাধান খুঁজছি। আমি kormoc´s উত্তর বিটিডব্লু পছন্দ করি
ব্রুনো

@ নতুন আমাকে এটি ঘোরানো দরকার, আমি লগের ডেটা হারাতে পারি না
ব্রুনো পোলাকো

উত্তর:


11

logrotateব্যবহারের জন্য একটি কনফিগারেশন লিখুনcopytruncate

copytruncate
    Truncate the original log file in place after creating a copy, instead of moving the 
    old log file and optionally creating a new one. It can be used when some program
    cannot be told to close its logfile and thus might continue writing (appending) to
    the previous log file forever. Note that there is a very small time slice between
    copying the file and truncating it, so some logging data might be lost. When this
    option is used, the create option will have no effect, as the old log file stays
    in place.

আকর্ষণীয়, অনুলিপি করার পরে ফাইলটি কেটে ফেলা বেশ চালাক বলে মনে হয়, এমনকি ডেটা লোকসানের মার্জিনের সাথেও। আমি লোগ্রোটেটে এই বিকল্পটি লক্ষ্য করিনি। অন্তর্দৃষ্টি জন্য Thx :)
ব্রুনো পোলাকো

1

এই জাতীয় বেশিরভাগ অ্যাপ্লিকেশনগুলি সিগন্যালের প্রতিক্রিয়া জানায়, যেমন SIGHUP, এবং সংকেত প্রাপ্তির পরে তাদের লগ ফাইলগুলি বন্ধ করে আবার খোলা হবে। প্রেরণের জন্য সঠিক সংকেতের জন্য আপনার অ্যাপ্লিকেশনটির ডকুমেন্টেশন পরীক্ষা করুন।


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