আমি গ্রাফাইটের স্টোরেজ হুইসারের ডেটা মুছতে চাই তবে গ্রাফাইট ডক্সে কিছুই নেই।
আমি একটি উপায় হ'ল /opt/graphite...../whispers/stats...
ম্যানুয়ালি ফাইলগুলি মুছে ফেলা ।
তবে এটি ক্লান্তিকর, তাই আমি কীভাবে এটি করব?
আমি গ্রাফাইটের স্টোরেজ হুইসারের ডেটা মুছতে চাই তবে গ্রাফাইট ডক্সে কিছুই নেই।
আমি একটি উপায় হ'ল /opt/graphite...../whispers/stats...
ম্যানুয়ালি ফাইলগুলি মুছে ফেলা ।
তবে এটি ক্লান্তিকর, তাই আমি কীভাবে এটি করব?
উত্তর:
বর্তমানে, / অপ্ট / গ্রাফাইট / স্টোরেজ / ফিসফিসি / থেকে ফাইলগুলি মুছে ফেলা ফিস ফিস তথ্য পরিষ্কার করার সঠিক উপায়।
প্রক্রিয়াটির ক্লান্তিকর দিকটি হিসাবে, যদি আপনার সরিয়ে দেওয়ার চেষ্টা করা হয় এমন কোনও নির্দিষ্ট প্যাটার্ন থাকে তবে আপনি ফাইন্ড কমান্ডটি ব্যবহার করতে পারেন।
সন্ধান / অপ্ট / গ্রাফাইট / স্টোরেজ / ফিস ফিস-নাম loadavg.wsp- মুছুন
.wsp
ফাইলগুলি সরাতে ?
আমি মনে করি এটি সার্ভার ফল্ট অঞ্চলে চলেছে, তবে আমি আমাদের পুরানো ম্যাট্রিকগুলি মুছে ফেলার জন্য নিম্নলিখিত ক্রোন কাজটি যুক্ত করেছি যা ৩০ দিনেরও বেশি সময় ধরে লিখিত হয়নি (যেমন মেঘের উদাহরণগুলি নিষ্পত্তি হয়েছে):
find /mnt/graphite/storage -mtime +30 | grep -E \ "/mnt/graphite/storage/whisper/collectd/app_name/[^/]*" -o \ | uniq | xargs rm -rf
এটি বৈধ ডেটা রয়েছে এমন ডিরেক্টরিগুলি মুছবে।
প্রথম:
find whisperDir -mtime +30 -type f | xargs rm
এবং তারপরে খালি ডায়ারগুলি মুছুন
find . -type d -empty | xargs rmdir
এই শেষ পদক্ষেপটি পুনরাবৃত্তি করা উচিত, কারণ নতুন খালি ডিরেক্টরিগুলি বামে থাকতে পারে।
find /opt/graphite/storage/whisper -type f -mtime +120 -name \*.wsp -delete; find /opt/graphite/storage/whisper -depth -type d -empty -delete
লোকেরা যেমন উল্লেখ করেছে, ফাইলগুলি অপসারণ করার উপায় the পূর্ববর্তী উত্তরগুলিতে প্রসারিত করে, আমি এই স্ক্রিপ্টটি তৈরি করেছি যা যে কোনও ফাইল সরিয়ে দেয় যা তার সর্বোচ্চ ধারণের বয়স অতিক্রম করেছে। cronjob
মোটামুটি নিয়মিত এটি চালান ।
#!/bin/bash
d=$1
now=$(date +%s)
MINRET=86400
if [ -z "$d" ]; then
echo "Must specify a directory to clean" >&2
exit 1
fi
find $d -name '*.wsp' | while read w; do
age=$((now - $(stat -c '%Y' "$w")))
if [ $age -gt $MINRET ]; then
retention=$(whisper-info.py $w maxRetention)
if [ $age -gt $retention ]; then
echo "Removing $w ($age > $retention)"
rm $w
fi
fi
done
find $d -empty -type d -delete
সচেতন হতে কয়েকটি বিট - whisper-info
কলটি বেশ ভারী ওজনের। এর কলগুলির সংখ্যা কমাতে আমি মাইনরেটকে ধ্রুবক রেখেছি যাতে কোনও ফাইল 1 দিনের পুরানো না হওয়া অবধি মুছে ফেলার জন্য বিবেচিত হবে না (24 * 60 * 60 সেকেন্ড) - আপনার প্রয়োজন অনুসারে সামঞ্জস্য করুন। সম্ভবত আরও কিছু জিনিস রয়েছে যা কাজটি তীক্ষ্ণ করতে বা সাধারণত এর দক্ষতা উন্নত করার জন্য করা যেতে পারে তবে আমার এখনও তেমন প্রয়োজন হয়নি।
Must specify a directory to clean
একটি ত্রুটি বার্তা। যেমন, এটি সঠিক জায়গা লিখতে হবে: echo "Must ..." >&2
।