مقدمهگاهی اوقات، زمانی که با فایل ها در ترمینال لینوکس سروکار دارید، ممکن است بخواهید محتوای یک فایل را بدون نیاز به باز کردن آن با استفاده از ویرایشگرهای خط فرمان لینوکس پاک کنید. حالا چگونه می توان به این امر دست یافت؟ نحوه پیدا کردن این فایل های حجیم و حذف آن ها چگونه امکان پذیر است؟ در ادامه مقاله به پاسخ این سوالات خواهیم پرداخت، با تلاش نت همراه باشید… |
پیدا کردن فایل های حجیم و حذف آنها
-
گام اول) پیدا کردن فایل های حجیم در سرور لینوکس
برای شروع نیاز است که با توجه به شرایط از طریق اتصال SSH ، VNC و یا سیستم نجات به سرور متصل شوید و بعد از اتصال از طریق دستور df-h وضعیت هارد را بررسی نمایید.
خروجی این دستور میزان فضای استفاده شده از هارد را در یک ستون با عنوان use% نشان می دهد.
بعد از بررسی و مشاهده فضای اشغال شده هارد باید بررسی کرد که بیشترین بخش مربوط به کدام پوشه است.
در این مرحله می بایست با دستور زیر فضای پوشه ها و زیر پوشه ها را بررسی نمایید:
Cd / Du –hsx * | sort –rh | head -10 |
” نکته: لازم به ذکر است که با آگاهی کامل نسبت به حذف فایل ها و پوشه ها در سرور لینوکس اقدام نمایید؛ زیرا در سرور مجازی لینوکس امکان بازگرداندن فایل ها نیست! “
با این دستور می توان فضای اشغال شده تمام فایل ها را بررسی نمود، که به صورت پیش فرض 10 آیتم ابتدایی را به شما نشان می دهد که می توانید بجای 10 عدد دیگری را قرار دهید و در نتیجه تمامی فایل ها را در سطرها و ستون های دیگری بررسی نمایید.
-
گام دوم) حذف فایل های حجیم در سرور لینوکس
برای این کار با استفاده از دستورات زیر نسبت به حذف فایل ها و پوشه ها اقدام نمایید:
دستور حذف فایل ها
rm –f file-name |
دستور حذف پوشه ها
rm-rf dir-name |
در بررسی حجم فایل ها گاهی با پوشه هایی مانند tmp و log مواجه می شویم که دارای حجم بسیار زیادی هستند اما اطلاعات آنها در پیدا کردن لاگ ها و مواردی دیگر لازم و ضروری است.
بنابراین بهتر است با کمک دستور زیر فایل های قدیمی تر را از یک تاریخ معین حذف نمود:
find / tmp –type f –mtime +7 | xaargs rm –f |
با این دستور می توان فایل های موجود در پوشه تمپ (temp) را که آخرین تغییر در آنها قدیمی تر از یک هفته است را حذف نمود. بهتر است از تاریخی بزرگتر از 7 روز استفاده کنید و بعد از هربار حذف خروجی df –h را کنترل کنید و تا جایی که فضای هارد سرور مجازی لینوکس شما به نتیجه دلخواه برسد.
خالی کردن فایل های حجیم در لینوکس
” احتیاط کنید: قبل از اینکه به روشهای مختلف نگاه کنیم، توجه داشته باشید که در لینوکس همه چیز بصورت فایل است، همیشه باید اطمینان حاصل کنید که فایل (هایی) که می خواهید محتویاتش را پاک کنید، برای کاربر یا سیستم مهم نباشد. پاک کردن محتوا یک سیستم بحرانی یا فایل پیکربندی می تواند منجر به یک خطا یا شکست سیستم یا کاربرد سیستم شود. “
ما در این مقاله، در عکس ها از پرونده access.log برای مثال در روش های زیر استفاده کرده ایم…
-
روش اول) محتوای فایل را با تغییر مسیر به Null خالی کنید
ساده ترین راه برای خالی کردن محتوای فایل با استفاده از پوسته null (non-existent object) به فایل است:
> [file-name] # |
-
روش دوم) خالی کردن فایل با استفاده از فرمان “true”
در اینجا ما از نماد “:” استفاده خواهیم کرد که یک فرمان ساخته شده در پوسته است که ذاتا معادل فرمان true است و می تواند به عنوان no-op (no operation) استفاده شود.
روش دیگر این است که خروجی را از نماد”:” یا دستور true ساخته شده در فایل به صورت زیر تغییر دهید:
1 2 3 |
: > [file-name] # OR true > [file-name] # |
-
روش سوم) خالی کردن فایل با استفاده از ابزارهای cat/cp/dd با /dev/null
در لینوکس، دستگاه null اساسا برای رها کردن جریان خروجی ناخواسته یک فرآیند یا به عنوان یک فایل خالی مناسب برای جریان های ورودی مورد استفاده قرار می گیرد. این مورد به طور معمول توسط مکانیزم تغییر مسیر هدایت می شود.
بنابراین فایل دستگاه / dev / null یک فایل خاص است که هر ورودی ارسال شده به آن را حذف می کند و یا خروجی آن مشابه پرونده خالی است.
علاوه بر این، شما می توانید محتویات یک فایل را با هدایت خروجی از / dev / null به آن (فایل) به عنوان ورودی با استفاده از دستور cat خالی کنید:
cat /dev/null > [file-name] # |
بعد، ما از دستور cp برای خالی کردن محتوای فایل به صورت نشان داده شده استفاده خواهیم کرد:
cp /dev/null [file-name] # |
خالی کردن فایل با استفاده از دستور dd، در فرمان زیر، if به معنای فایل ورودی و of به معنای فایل خروجی است.
dd if=/dev/null of=[file-name] # |
-
روش چهارم) خالی کردن فایل با استفاده از فرمان echo
در اینجا شما می توانید یک دستور echo با یک رشته خالی استفاده کنید و آن را به فایل زیر تغییر دهید:
1
2 3 |
echo “” > [file-name] # OR echo > [file-name] # |
” نکته: شما باید مد نظر داشته باشید که یک رشته خالی مساوی با null نیست. یک رشته خالی یک شی است که وجود دارد ولی خالی است، در حالی که null به معنای این است که شی هیچ وجود خارجی ندارد. “
به همین دلیل وقتی شما خارج از فرمان echo در فایل قرار می گیرید و محتویات فایل را با استفاده از دستور cat مشاهده می کنید، یک خط خالی (رشته خالی) را چاپ می کند.
برای ارسال یک خروجی null به فایل، از برچسب -n استفاده کنید که echo را برای خروج خط جدیدی که به خط خالی تولید شده در دستور قبلی منتهی نمی شود، استفاده کنید.
echo -n “” > [file-name] # |
-
روش پنجم) خالی کردن فایل با استفاده از دستور truncate
دستور truncate به کاهش یا گسترش اندازه یک فایل به اندازه مشخصی کمک می کند.
شما می توانید از برچسب -s که اندازه فایل را تعیین می کند، استفاده کنید. برای خالی کردن محتوای فایل، از مقدار 0 (صفر) استفاده کنید، همانطور که در دستور بعدی مشاهده می کنید:
truncate -s 0 [file-name] # |
چکیدههمانطور که در این مقاله توسط تیم فنی تلاش نت اشاره شد، چندین روش پاک کردن یا تخلیه محتوای فایل ها با استفاده از ابزارهای ساده خط فرمان و مکانیزم تغییر مسیر در لینوکس را بررسی کردیم. امیدواریم که این مطلب برای شما مفید واقع شده باشد.
|