আমার nohup.out
ফাইল দ্রুত বাড়ছে।
আমি পটভূমিতে একটি অ্যাপ্লিকেশন চালাচ্ছি, এটি nohup.out
ফাইল লিখছে ,
এখন nohup.out
আমার অ্যাপ্লিকেশনটি না মেরে ফাইলটি ঘোরানো দরকার । এই কাজ করা যাবে?
আমার nohup.out
ফাইল দ্রুত বাড়ছে।
আমি পটভূমিতে একটি অ্যাপ্লিকেশন চালাচ্ছি, এটি nohup.out
ফাইল লিখছে ,
এখন nohup.out
আমার অ্যাপ্লিকেশনটি না মেরে ফাইলটি ঘোরানো দরকার । এই কাজ করা যাবে?
উত্তর:
আপনি কটাক্ষপাত করা উচিত প্রহার সঙ্গে একযোগে logrotate
। আপনি যদি এর মাধ্যমে আপনার অ্যাপ্লিকেশন আউটপুটটি পাইপ করেন তবে আপনি SIGHUP
আপনার চলমান অ্যাপ্লিকেশনটি না মেরে ফ্ল্যাগ প্রক্রিয়াটি করতে পারেন।
ফ্ল্যাগ (ফাইল লগার) এমন একটি প্রোগ্রাম যা এসটিডিআইএন থেকে ইনপুট পড়ে এবং একটি ফাইলে লেখে।
যদি সাইনগআপ গৃহীত হয়, লগ রোটেশনের জন্য অনুমতি দিয়ে ফাইলটি আবার খোলা হবে [আরএইচ-তে লোগ্রোটেট (8) দেখুন।]
লগ ফাইলটি কেবল তখনই পুনরায় খোলা হবে যখন ফ্ল্যাগ সনাক্ত করে যে ঘূর্ণন হয়েছে (যেমন, পুরানো ফাইল চলে গেছে বা ইনোড পরিবর্তন হয়েছে)। ফ্ল্যাগ চূড়ান্তভাবে ছোট (500 বাইটের কম মেমরির পদচিহ্ন)
To save output to FILE, use 'nohup COMMAND > FILE'
আপনি এটিকে ঘোরাতে পারবেন না। আপনি এটি কমান্ড দিয়ে ছাঁটাই করতে পারেন >nohup.out
, যা ফাইলের সমস্ত সামগ্রী মুছে ফেলবে।
আপনি যদি প্রথমে ফাইলটি অনুলিপি করতে পারেন এবং তারপরে এটি কেটে ফেলতে পারেন, যদি আপনার আউটপুট সংরক্ষণ করতে হয়। তবে একটি দৌড়ের জন্য একটি ছোট উইন্ডো রয়েছে, যেখানে আপনি ফাইলটি অনুলিপি করার পরে আউটপুট লেখা যেতে পারে তবে এটি কেটে দেওয়ার আগে। সেই উইন্ডোর সময় লেখা যে কোনও আউটপুট চিরতরে হারিয়ে যাবে।
copytruncate
মধ্যে logrotate
। তবে nohup.out
খুব কমই আপনি যে ধরণের ফাইলটি ক্রোন জবটি ঘোরার জন্য কনফিগার করবেন।
আপনি পারবেন না।
আপনি ফাইলটি (লিঙ্ক) লিঙ্কমুক্ত করতে পারেন তবে ডেটাটিতে এখনও ডিস্কে একটি পায়ের ছাপ রয়েছে এবং যতক্ষণ না খোলা ফাইল হ্যান্ডেল থাকে ততক্ষণ তা লেখা যেতে থাকবে।
আপনি ফাইলটির নাম পরিবর্তন করতে পারেন - তবে আবার এটি এতে লেখা বন্ধ করে দেয় না (তবে আপনি যদি নিয়মিত পটভূমির কাজ শুরু করেন তবে নতুনরা একই ফাইলটিতে লিখবেন)।
সত্যিই আপনার স্পষ্টভাবে কাজের আউটপুটটিকে হ্যান্ডেল করার জন্য ডিজাইন করা কিছুতে (যেমন অ্যাপাচি রোটেটেলগস ) ডাইরেক্ট করা উচিত ।
আমি এই বিষয়ে খুব দেরি করেছি কিনা তা নিশ্চিত নয়। তবে অন্যদের জন্য যারা এই ফোরামে এখন হোঁচট খাচ্ছেন তাদের জন্য, আমাকে বেত্রাঘাত বা কোনও কিছু দিয়ে চেষ্টা করার দরকার নেই।
আমার কাজটি এভাবে শুরু হয়:
nohup <my process> &
এটি আমার কাজ শুরু করে এবং সেই ডিরেক্টরিতে একটি nohup.out এ যুক্ত করা শুরু করে।
আমাকে যা করতে হয়েছিল তা হ'ল একটি লোগ্রোটেট সেটআপ করা যা সাধারণত ডিস্ট্রো সহ আসে এবং এ জাতীয় কিছু কনফিগার করে /etc/logrotate.conf
~/my abosolute path/nohup.out {
size 1024k
copytruncate
rotate 100
maxage 100
}
এবং এটা কাজ করে!! nohup.out একই ফাইলটিতে নতুন সংযোজন পাওয়ার সময় ছাঁটাচ্ছিল। প্রক্রিয়াটিও মারা যায়নি। এবং এর মতো একটি নতুন nohup.out nohup.out-20190528
তৈরি হয়েছিল।
আশাকরি এটা সাহায্য করবে.
লোগ্রোটেটের একটি কপিরআরঙ্কেট বিকল্প রয়েছে, যা আপনার নির্দিষ্ট ফাইলটিকে সাধারণ ঘূর্ণায়নের (এবং সেট করা থাকলে, সংক্ষেপণ) স্কিমে অনুলিপি করার পরে কাটবে (খালি)।
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 can not 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 log-
ging data might be lost. When this option is used, the create
option will have no effect, as the old log file stays in place.
লোগ্রোটেট ম্যানপেজ থেকে ।
আপনি এর মতো কিছু করতে পারেন:
cp nohup.out nohup.out.save # save it somewhere
echo "" > nohup.out
আপনার অ্যাপ্লিকেশনটি মারার দরকার নেই।