المحتويات

المقدمة

الحد الأدنى للبرامج والأجهزة الأساسية

وصف الميزة والتنقل عبر

نظرة عامة

شركة FMC Diskcleaner

برنامج FTD Diskcleaner

عرض نصوص Diskcleaner النصية المتوفرة

تشغيل Diskcleaner يدويا

حذف السجلات المدارة

مصرف تقسيم مدير الأقراص

مصرف صوامع مدير الأقراص

اقتطاع الملفات المحذوفة

إيقاف تشغيل Diskcleaner

تقنية البرامج

ديسكن أنظف

diskcleaner.sh

تحت الأغطية

أستكشاف أخطاء Diskcleaner وإصلاحها

ملفات النظام

خطوات أستكشاف الأخطاء وإصلاحها

المقدمة

يوضح هذا المستند كيفية تنظيف الملفات من قرص النظام.

الحد الأدنى للبرامج والأجهزة الأساسية

المدير (المدراء) والإصدار (الإصدارات): واجهة سطر الأوامر (CLI) من FMC/FDM 7.6.0 التي يتم تنفيذها في واجهة سطر الأوامر (CLI) من FMC أو FTD

التطبيق (ASA/FTD) والحد الأدنى لإصدار التطبيق: FTD 7.6.0

الأنظمة الأساسية المدعومة: وتحتوي جميع أجهزة FMC و FTD على هذه الميزة.

تم الترحيل من: https://confluence-eng-rtp2.cisco.com/conf/display/IFT/Diskcleaner

وصف الميزة والتنقل عبر

نظرة عامة

يتم تثبيت Diskcleaner والبرامج النصية الخاصة به عند التثبيت/الترقية. إنه ليس جزءا من البرامج النصية للترقية. يتم بدء تشغيل العملية diskcleaner.py بواسطة مدير العملية عند بدء تشغيل النظام. تعمل كعملية برنامج تشغيل يتم إدارتها بواسطة "إدارة العملية" ويتم تشغيلها حتى يتم إيقاف تشغيل النظام. يحتوي عامل تنظيف القرص على برامج نصية للقرص يتم استدعاؤها عندما تتجاوز النسبة المئوية لوحدة تخزين القرص= الاستخدام الحدود التي تم تكوينها. على سبيل المثال، حاليا هناك برامج نصية لتنظيف الأقراص يتم استدعاؤها عندما يصل اكتمال إستخدام وحدة التخزين إلى 85٪ وأخرى يتم استدعاؤها عندما يصل إكمال إستخدام القرص إلى 95٪. إذا وصل ملء القرص إلى 95٪، فإنه يقوم بتشغيل البرامج النصية لتنظيف كامل بنسبة 95٪ وإذا ظل ملء القرص أكبر من 85٪، فإنه يقوم بتشغيل البرامج النصية لتنظيف كامل بنسبة 85٪.

شركة FMC Diskcleaner

هذا ما يتم تكوين Diskcleaner حاليا لتشغيله على FMC:

- إجراءات تنظيف إستخدام القرص بنسبة 85٪:

- اقتطاع أي ملفات محذوفة (إلى 0 بايت) (الملفات التي تم حذفها ولكنها لا تزال مفتوحة بواسطة عملية قيد التشغيل). يمكن عرض هذه الملفات باستخدام الأمر lsof+L1.

- فرض إدارة الأقراص على إستنزاف كافة الأقراص.

- حذف كافة ملفات السجل المدارة (تلك التي تحتوي على ملحقات ملفات xxxxxxx.n.gz مثل messages.1.gz)

- إجراءات تنظيف إستخدام القرص بنسبة 95٪:

- إجبار إدارة الأقراص على تنفيذ عملية إستنزاف لأقصى حد من جميع وحدات التخزين. هذه تصرف الصوامع إلى 25٪ من علامة المياه المنخفضة.

برنامج FTD Diskcleaner

هذا ما تم تكوين DISKCLEANER حاليا لتشغيله على FTD:

- إجراءات تنظيف إستخدام القرص بنسبة 85٪:

- اقتطاع أي ملفات محذوفة (إلى 0 بايت) (الملفات التي تم حذفها ولكنها لا تزال مفتوحة بواسطة عملية قيد التشغيل). يمكن عرض هذه الملفات باستخدام الأمر lsof+L1.

- فرض إدارة الأقراص على إستنزاف كافة الأقراص.

- حذف كافة ملفات السجل المدارة (تلك التي تحتوي على ملحقات ملفات xxxxxxx.n.gz مثل messages.1.gz)

- إجراءات إستخدام الأقراص بنسبة 95٪:

- إجبار إدارة الأقراص على تنفيذ عملية إستنزاف لأقصى حد من جميع وحدات التخزين. هذه تصرف الصوامع إلى 25٪ من علامة المياه المنخفضة.

NOTE: At the current time, FXOS files and logs are outside of the scope of the diskcleaner!!!

عرض نصوص Diskcleaner النصية المتوفرة

أستخدم أمر دعم النظام diskcleaner-show لعرض البرامج النصية المنظفة للقرص المتوفرة للتشغيل. يمكن تشغيل البرامج النصية المعروضة هنا يدويا باستخدام الأمر diskcleaner-run لتحرير مساحة على القرص يدويا. يتم وصف كل من هذه البرامج النصية لتطهير القرص في هذه الشرائح مع أمثلة على الاستدعاء.

> system support diskcleaner-show

sfims-file-mgmnt-infra-delete-rotated-logs.sh

sfims-file-mgmnt-infra-diskmanager-partition-drain-max.sh

sfims-file-mgmnt-infra-diskmanager-silo-drain-all.sh

sfims-file-mgmnt-infra-truncate-deleted-files.py

تشغيل Diskcleaner يدويا

أدخل الأمر diskcleaner. لا تكفي طرق DiskManager لإدارة الأقراص وموزع الأقراص لهذه المهمة الجديدة. تم تصميم برنامج إدارة الأقراص للتحكم في مستويات ملء القرص في الوقت الفعلي عند فتح الملفات وإغلاقها. تتسم ملفات تكوين مدير القرص بأنها انتقائية ومعقدة وهشة. تم تصميم عملية التقليم لقطع إستخدام مساحة الملف لمكونات الميزات الفردية دون إدراك مستويات امتلاء قرص النظام ككل. تم إنشاء إطار عمل Diskcleaner الجديد لتوفير إمكانية إزالة الملفات استنادا إلى مستويات امتلاء قرص النظام المشابهة لطريقة إدارة القرص مع بساطة إستخدام لغة برمجة نصية مماثلة لتلك المستخدمة في عملية "مقص القرص".

أستخدم الأمر diskclean-run لتشغيل نص diskcleaner يدويا. والأمر هو:

system support diskcleaner-run

حيث اسم الملف هو اسم البرنامج النصي diskcleaner الذي سيتم تشغيله. يمكن أن يكون مسار كامل مع دليل واسم ملف، مسار نسبي (من /etc/sf/dc)، أو اسم برنامج نصي (كما تم تسميته في /etc/sf/dc). تم قبول الملفات القياسية. يخضع اسم الملف لمتطلبات الأمان التي يمكن أن تقيد مجموعة الأحرف المسموح بها (مثل عدم إستخدام العلامات الخلفية '). تذكر أن جهاز تنظيف الديسكو يقوم فقط بتشغيل البرامج النصية بشكل أعمى. إذا، يمكنك إنشاء نص تنفيذي جديد يقوم بتشغيل العديد من نصوص Diskcleaner ثم يتم تشغيل ذلك النص التنفيذي الجديد (بحيث يتم تنفيذ كل النصوص غير النظيفة المتضمنة فيه).

حذف السجلات المدارة

حذف كافة ملفات السجل التي تم تدويرها على نقطة التحميل المحددة.

> system support diskcleaner-run sfims-file-mgmnt-infra-delete-rotated-logs.sh --help

حذف كافة ملفات السجل التي تم تدويرها على نقطة التحميل المحددة.

sfims-file-mgmnt-infra-delete-rotated-logs.sh [--debug] [--help] <mount point>

> system support diskcleaner-run sfims-file-mgmnt-infra-delete-rotated- logs.sh --debug /ngfw/Volume

Deleting all rotated log files on mount point '/ngfw/Volume'.

Deletion of all rotated log files on mount point '/ngfw/Volume' has

completed - 0 bytes.

مصرف تقسيم مدير الأقراص

جعل إدارة الأقراص تقوم بتنفيذ عملية تصفية كحد أقصى على كافة الأقسام

> system support diskcleaner-run sfims-file-mgmnt-infra-diskmanager-partition-drain-max.sh --help

أجعل إدارة الأقراص تقوم باستخراج أقصى قدر من كافة أقسامها.

sfims-file-mgmnt-infra-diskmanager-partition-drain-max.sh [--debug] [--help]

> system support diskcleaner-run sfims-file-mgmnt-infra-diskmanager-partition-drain-max.sh

Performing a maximum drain on all disk manager partitions - current disk usage:

Partition:Silo Used Minimum Maximum

/ngfw/var:Temporary Files 0 KB 121.704 MB 486.817 MB

...

Performing a maximum drain on disk manager partition '/ngfw/var'.

Partition /ngfw/var has been drained.

Maximum drain on all disk manager partitions has completed - current disk usage:

Partition:Silo Used Minimum Maximum

/ngfw/var:Temporary Files 0 KB 121.704 MB 486.817 MB

...

>

مصرف صوامع مدير الأقراص

جعل إدارة الأقراص تقوم بتنفيذ عملية إستنزاف كحد أقصى على كافة وحدات التخزين

> system support diskcleaner-run sfims-file-mgmnt-infra-diskmanager-silo-drain-all.sh --help

أجعل إدارة الأقراص تقوم باستنزاف كل خيوطها إلى أقصى حد.

sfims-file-mgmnt-infra-diskmanager-silo-drain-all.sh [--debug] [--help]

> system support diskcleaner-run sfims-file-mgmnt-infra-diskmanager-silo-drain-all.sh

Draining all disk manager silos to their low-water mark - current disk usage:

Partition:Silo Used Minimum Maximum

/ngfw/var:Temporary Files 0 KB 121.704 MB 486.817 MB

...

Draining all disk manager silos..

All silos have been drained.

Draining all disk manager silos to their low-water mark has completed - current disk usage:

Partition:Silo Used Minimum Maximum

/ngfw/var:Temporary Files 0 KB 121.704 MB 486.817 MB

>

اقتطاع الملفات المحذوفة

اقتطاع كافة الملفات المحذوفة المخفية الموجودة بسبب فتح مقابض الملفات إلى صفر بايت.

> system support diskcleaner-run sfims-file-mgmnt-infra-truncate-deleted-files.py -h

usage: sfims-file-mgmnt-infra-truncate-deleted-files.py [-h] [--debug]

[ignored]

Truncate all deleted (zombie) files to zero-length.

positional arguments:

ignored

optional arguments:

-h, --help show this help message and exit

--debug If specified, the script will output lots of debug information.

> system support diskcleaner-run sfims-file-mgmnt-infra-truncate-deleted-files.py

Truncating all deleted (zombie) files.

Deleted file '/run/nscd/dbGG9F8K' is on the deleted files exclude list - NOT truncating.

All deleted (zombie) files have been truncated - total size = 0 bytes.

>

إيقاف تشغيل Diskcleaner

أستخدم الأمر pmtool لإيقاف تشغيل Diskcleaner.

> pmtool disablebyid diskcleaner

>

> pmtool status

...

diskcleaner (normal) - User Disabled

...

> pmtool enablebyid diskcleaner

>

> pmtool status

...

diskcleaner (normal) – Running 17086

...

تقنية البرامج

ديسكن أنظف

هذا البرنامج هو البرنامج الرئيسي لمنظف الديسكو. هذا البرنامج النصي للبايثون يعمل هكذا:

diskcleaner.py [--debug] [--help] [--interval <interval>]

حيث إذا تم تحديد تصحيح الأخطاء، فإن البرنامج النصي ينتج معلومات تصحيح الأخطاء، والمساعدة هي معلومات إستخدام المخرجات والخروج.

الفاصل الزمني (بالثواني) بين دورات تنظيف القرص. إن لا يعين، التقصير 600 ثاني. يتم بدء تشغيل DISKCLEANER.py من قبل "مدير العملية" عند بدء تشغيل النظام. يتم تشغيله كعملية برنامج تشغيل يتم إدارتها بواسطة "إدارة العملية" ويتم تشغيله حتى يتم إيقاف تشغيل النظام. عندما بدأ ال diskcleaner يكون، هو يركض أنشوطة أن يركض كل فاصل ثاني. كل دورة، يقوم ال diskcleaner بمسح كل نقاط التركيب (/، /volume، ...) المحددة ب DF -a أمر والحصول على إستخدام القرص الحالي (حسب القياس ب DF أمر).

يتنقل نظام تنظيف القرص من خلال كل مستوى تنظيف يبدأ من المستوى 0 ويعمل به حتى يصبح رقم المستوى أكبر من نسبة إستخدام القرص لنقطة التحميل تلك. تحتاج فقط إلى القيام بالتنظيف للمستوى إذا كان إستخدام نقطة التحميل عند أو أكبر من رقم المستوى. لذلك، إذا كان الاستخدام 55٪، فقم بتنفيذ كل مستوى لتنظيف الأقراص بالترتيب - 0 و 1 و 2 و... و 55.

عند الحاجة إلى القيام بالتنظيف، يتم إستدعاء برنامج Shell script diskcleaner.sh (راجع أدناه) للقيام بالتنظيف الفعلي. ذلك النص التنفيذي يدعو بشكل أعمى كل نص تنفيذي موجود في دليل ديسكنظف لنقطة التحميل للمستوى المحدد.

- على سبيل المثال، دعنا نقول أن / نقطة التحميل تستخدم حاليا بنسبة 96٪. عندما يبدأ Diskcleaner دورته، فإنه يقوم بتشغيل أمر df ويكتشف أن / نقطة التحميل عند إستخدام 96٪. تم تعيين مستوى الاستخدام لتنظيف المستوى 0 ل 0٪، لذلك يقوم Diskcleaner بتشغيل كافة نصوص المستوى 0 المحددة لنقطة / التحميل. عند هذه النقطة، يعيد Diskcleaner تشغيل أمر df. افترض أن المستوى 0 من التنظيف لم يفعل شيئا، لذلك لا يزال الاستخدام 96٪. يقوم جهاز تنظيف القرص الآن بتشغيل كافة البرامج النصية للمستوى 1، ثم المستوى 2 وهكذا.

- لنقل أن هناك نصوص تنفيذية في المستوى 50 تقلل من إستخدام /نقطة التحميل إلى 90٪. تستمر مطهر الديسكو مع المستوى 51، 52، ....

- دعنا نفترض أن هناك نصوص تنفيذية في المستوى 80 تقلل من إستخدام /نقطة التحميل إلى 75٪. الآن ينتهي مركز ديسكرين /نقطة التحميل لأن 75٪ أقل من المستوى التالي وهو 81.

diskcleaner.sh

Diskcleaner.sh هو برنامج نصي أساسي يقوم ببدء حدث تنظيف القرص.

diskcleaner.sh <mount point> <level>

حيث تكون نقطة التحميل هي نقطة التحميل التي سيتم تنظيفها ويشير المستوى إلى مستوى التنظيف الذي سيتم إجراؤه. هذه هي النسبة التي تتم فيها عملية التنظيف. على سبيل المثال، إذا تم إدخال 85، سيتم تشغيل كاشف البيانات بنسبة 85٪.

كافة البرامج النصية لتنظيف القرص الموجودة في الدليل:

[/ngfw]/etc/sf/dc/<mount point>/dc<clean level>

المطابق لملف glob dc* يتم تنفيذه (بالترتيب الهجائي).

لاحظ أنه نظرا لأن أسماء نقاط التحميل تحتوي عادة على شرط (/) بها، فإن إستخدام اسم نقطة التحميل الفعلي في مسار الدليل يعد أمرا محرجا (أو غير قانوني). إذا، قم بتغيير أي / إلى _. لذلك، لتنظيف نقطة التحميل /dev/shm عند مستوى نظيف 85 (لاستخدام الأقراص بنسبة 85٪)، يجب أن تتطابق البرامج النصية: [/ngfw]/etc/sf/dc/dev_shm/85/dc*

يستند هذا النموذج إلى نموذج RC init النصي حيث يتم تنفيذ كافة البرامج النصية المطابقة في دليل RCN.d بشكل أعمى. كما أن بادئة وحدة التحكم بالمجال DC هي أيضا نسخة من نموذج وحدة التحكم بالمجال RC Init - تبدأ هذه البرامج النصية كلها إما ب S (start) أو K (kill). أعتقد أنه يبقيك من التقاط ملفات مهملة التي تركت للتو في الدليل. إذا، أستخدم بادئة DC.

تحت الأغطية

يستخدم ال diskcleaner أمر linux df للتحقق من إستخدام القرص:

أستكشاف أخطاء Diskcleaner وإصلاحها

ملفات النظام

- يمكن أستكشاف مشكلات جهاز إلغاء البيانات وحلها من خلال النظر في:

/var/log/process_stdout.log and /var/log/process_stderr.log

- تحتوي الإدخالات التي تم تسجيلها من قبل Diskcleaner على Diskcleaner كاسم العملية ومعرف PID Diskcleaner.

- هذه هي الطريقة القياسية للنظر في تسجيل الدخول لعملية قائمة على PM.

خطوات أستكشاف الأخطاء وإصلاحها

تم تسجيل ما يقوم به Diskcleaner إلى process_stdout.log. عادة، لا يوجد إخراج لأنه لا يوجد تنظيف للقرص ليتم القيام به. ولكن إذا كان يجب القيام بعملية تنظيف القرص، فسيتم تسجيل أية ملفات يتم حذفها في process_stdout.log. في الصفحة التالية مثال على ما يمكن أن يحتويه process_stdout.log. GREP على diskcleaner.  ̌نموذج للإخراج في process_stdout.log:

Feb 9 04:10:23 uhura diskcleaner[2639]: Starting level 85 disk cleaning for mount point '/ngfw/Volume': current usage = 97%.

Feb 9 04:10:23 uhura diskcleaner[2639]: Starting disk cleaning scripts in directory '/etc/sf/dc/_ngfw_Volume/dc85' for mount point '/ngfw/Volume'.

Feb 9 04:10:23 uhura diskcleaner[2639]: Filesystem 1K-blocks Used Available Use% Mounted on

Feb 9 04:10:23 uhura diskcleaner[2639]: /dev/sda5 40511148 39040764 1470384 97% /ngfw/Volume

Feb 9 04:10:23 uhura diskcleaner[2639]: Executing '/etc/sf/dc/_ngfw_Volume/dc85/DC660-truncate-deleted- files.py' ...

Feb 9 04:10:23 uhura diskcleaner[2639]: Truncating all deleted (zombie) files.

Feb 9 04:10:23 uhura diskcleaner[2639]: Deleted file '/run/nscd/dbZ5hobS' is on the deleted files exclude list - NOT truncating.

Feb 9 04:10:23 uhura diskcleaner[2639]: All deleted (zombie) files have been truncated - total size = 0 bytes.

Feb 9 04:10:23 uhura diskcleaner[2639]: Filesystem 1K-blocks Used Available Use% Mounted on

Feb 9 04:10:23 uhura diskcleaner[2639]: /dev/sda5 40511148 39040764 1470384 97% /ngfw/Volume

Feb 9 04:10:23 uhura diskcleaner[2639]: '/etc/sf/dc/_ngfw_Volume/dc85/DC660-truncate-deleted-files.py' completed in 0.43 seconds - status = 0.

Feb 9 04:10:23 uhura diskcleaner[2639]: Executing '/etc/sf/dc/_ngfw_Volume/dc85/DC663-delete-rotated- logs.sh' ...

Feb 9 04:10:23 uhura diskcleaner[2639]: Deleting all rotated log files on mount point '/ngfw/Volume'.

Feb 9 04:10:24 uhura diskcleaner[2639]: Deleted file '/ngfw/Volume/root1/ngfw/var/log/top.log.1.gz' - 2771386 bytes.

Feb 9 04:10:24 uhura diskcleaner[2639]: Deleted file '/ngfw/Volume/root1/ngfw/var/log/test/fake-rotated- log.log.1.gz' - 1073741824 bytes.

Feb 9 04:10:24 uhura diskcleaner[2639]: Deleted file '/ngfw/Volume/root1/ngfw/var/log/test/fake-rotated- log.log.2.gz' - 1073741824 bytes.

Feb 9 04:10:24 uhura diskcleaner[2639]: Deleted file '/ngfw/Volume/root1/ngfw/var/log/test/fake-rotated- log.log.3.gz' - 1073741824 bytes.

Feb 9 04:10:24 uhura diskcleaner[2639]: Deletion of all rotated log files on mount point '/ngfw/Volume' has completed - 25772575162 bytes.

Feb 9 04:10:24 uhura diskcleaner[2639]: Filesystem 1K-blocks Used Available Use% Mounted on

Feb 9 04:10:24 uhura diskcleaner[2639]: /dev/sda5 40511148 13872228 26638920 35% /ngfw/Volume

Feb 9 04:10:24 uhura diskcleaner[2639]: '/etc/sf/dc/_ngfw_Volume/dc85/DC663-delete-rotated-logs.sh' completed in 0.21 seconds - status = 0.

Feb 9 04:10:24 uhura diskcleaner[2639]: Completed disk cleaning scripts in directory '/etc/sf/dc/_ngfw_Volume/dc85' for mount point '/ngfw/Volume' in 0.69 seconds.

Feb 9 04:10:24 uhura diskcleaner[2639]: Finished level 85 disk cleaning for mount point '/ngfw/Volume': current usage = 35%.