معمولا، برای delete/remove کردن یک فایل از طریق ترمینال لینوکس، ما از دستور rm (برای حذف کردن فایل ها)، یا دستور shred (برای حذف یک فایل به صورت ایمن)، دستور wipe (پاک کردن یک فایل به صورت امن) یا مجموعه ابزار برای حذف ایمن (secure-deletion toolkit) (یک مجموعه ای از ابزارهای حذف فایل به صورت ایمن) استفاده میکنیم.
ما میتوانیم هر یک از ابزارهای بالا را برای فایل های نسبتا کوجک استفاده کنیم. اما اگر بخواهیم یک فایل/دایرکتوری بزرگ را که در حدود 100 الی 200 گیگ است را حذف/پاک کنیم چه؟ این کار به سادگی که به نظر میرسد نیست، با توجه به زمانیکه حذف فایل (برنامه ریزی I/O) و مقدار RAM مورد مصرف در طول انجام عملیات مصرف میشود.
در این مقاله، ما چگونگی حذف موثر و مطمئن فایل ها/دایرکتوریها بزرگ را در لینوکس شرح خواهیم داد.
همچنین توصیه میشود مطالعه کنید :
5 راه برای خالی یا حذف کردن فایل بزرگ در لینوکس (به زودی)
هدف اصلی در اینجا استفاده از تکنیکی است که در طول حذف یک فایل بزرگ، باعث کندی سیستم نخواهد شد و به یک I/O منطقی ختم میشود. ما میتوانیم برای رسیدن به این هدف از دستور ionice استفاده کنیم.
حذف فایل های بزرگ (200 GB) در لینوکس با استفاده از دستور ionice
ionice یک برنامه مفید میباشد که کلاس برنامه ریزی I/O و اولویت برنامه های دیگر را دریافت یا تنظیم میکند. اگر دستور ionice با هیچ آپشنی استفاده نشود و یا با آپشن -p همراه شود کلاس برنامه ریزی I/O موجود و اولویت برای آن پروسه را کوئری خواهد کرد.
اگر ما نام یک دستور مثلا دستور rm را داشته باشیم ionice این دستور را با آپشن داده شده اجرا خواهد کرد. برای مشخص شدن pid های پروسس های در حال اجرا که برای هر کدام پارامترهای برنامه ریزی را دریافت یا تنظیم میکند دستور زیر را اجرا کنید.
برای مشخص کردن نام یا تعداد کلاس های برنامه ریزی دستور زیر را اجرا کنید (عدد 0 برای none، عدد 1 برای realtime، عدد 2 برای best-effort، عدد 3 برای idle)
این به این معناست که rm به کلاس I/O ی idle متعلق خواهد بود و تنها زمانیکه هر پروسه دیگری به آن نیاز نداشته باشد از I/O استفاده میکند.
اگر زمان idle بیشتری روی سیستم موجود نباشد در نتیجه ما ممکن است بخواهیم که از کلاس برنامه ریزی best-effort استفاده کنیم و یک اولویت پایینتر شبیه به زیر تعریف کنیم.
نکته : برای حذف فایل های بزرگ با استفاده از یک روش امن ما باید از shred, wipe و ابزارهای متنوع دیگر secure-deletion toolkit که قبلا به آنها اشاره شد به جای دستور rm استفاده کنیم.
همچنین توصیه میشود مطالعه کنید :
دستور rm برای حذف همه فایل های یک دایرکتوری در لینوکس
دستور rm -rf برای حذف فایل ها و دایرکتوری ها در لینوکس
سه روش برای حذف کردن تمامی فایل های یک دایرکتوری بجز فایل هایی با پسوند خاص
چطور فایل های حذف شده را در Linux ریکاوری (Recovery) کنیم؟
نحوه کلون/بک آپ گرفتن از سرورهای لینوکس با استفاده از ابزار Mondo Rescue Disaster Recovery
برای اطلاعات بیشتر به صفحه man دستور ionice مراجعه کنید.
اگر شما شیوه ای دیگری در رابطه با هدف بالا میشناسید میتوانید آنرا با ما به اشتراک بگذارید.
ما میتوانیم هر یک از ابزارهای بالا را برای فایل های نسبتا کوجک استفاده کنیم. اما اگر بخواهیم یک فایل/دایرکتوری بزرگ را که در حدود 100 الی 200 گیگ است را حذف/پاک کنیم چه؟ این کار به سادگی که به نظر میرسد نیست، با توجه به زمانیکه حذف فایل (برنامه ریزی I/O) و مقدار RAM مورد مصرف در طول انجام عملیات مصرف میشود.
در این مقاله، ما چگونگی حذف موثر و مطمئن فایل ها/دایرکتوریها بزرگ را در لینوکس شرح خواهیم داد.
همچنین توصیه میشود مطالعه کنید :
5 راه برای خالی یا حذف کردن فایل بزرگ در لینوکس (به زودی)
هدف اصلی در اینجا استفاده از تکنیکی است که در طول حذف یک فایل بزرگ، باعث کندی سیستم نخواهد شد و به یک I/O منطقی ختم میشود. ما میتوانیم برای رسیدن به این هدف از دستور ionice استفاده کنیم.
حذف فایل های بزرگ (200 GB) در لینوکس با استفاده از دستور ionice
ionice یک برنامه مفید میباشد که کلاس برنامه ریزی I/O و اولویت برنامه های دیگر را دریافت یا تنظیم میکند. اگر دستور ionice با هیچ آپشنی استفاده نشود و یا با آپشن -p همراه شود کلاس برنامه ریزی I/O موجود و اولویت برای آن پروسه را کوئری خواهد کرد.
اگر ما نام یک دستور مثلا دستور rm را داشته باشیم ionice این دستور را با آپشن داده شده اجرا خواهد کرد. برای مشخص شدن pid های پروسس های در حال اجرا که برای هر کدام پارامترهای برنامه ریزی را دریافت یا تنظیم میکند دستور زیر را اجرا کنید.
کد PHP:
# ionice -p PID
این به این معناست که rm به کلاس I/O ی idle متعلق خواهد بود و تنها زمانیکه هر پروسه دیگری به آن نیاز نداشته باشد از I/O استفاده میکند.
کد PHP:
---- Deleting Huge Files in Linux -----
# ionice -c 3 rm /var/logs/syslog
# ionice -c 3 rm -rf /var/log/apache
کد PHP:
# ionice -c 2 -n 6 rm /var/logs/syslog
# ionice -c 2 -n 6 rm -rf /var/log/apache
همچنین توصیه میشود مطالعه کنید :
دستور rm برای حذف همه فایل های یک دایرکتوری در لینوکس
دستور rm -rf برای حذف فایل ها و دایرکتوری ها در لینوکس
سه روش برای حذف کردن تمامی فایل های یک دایرکتوری بجز فایل هایی با پسوند خاص
چطور فایل های حذف شده را در Linux ریکاوری (Recovery) کنیم؟
نحوه کلون/بک آپ گرفتن از سرورهای لینوکس با استفاده از ابزار Mondo Rescue Disaster Recovery
برای اطلاعات بیشتر به صفحه man دستور ionice مراجعه کنید.
کد PHP:
# man ionice