كيفية حذف مجلدات / tmp تلقائيًا في Linux؟ برنامج باش لتنظيف سجل القرص التلقائي
نشرت: 2014-03-13
فيما يلي نص برمجي بسيط يقوم بتنظيف سجل القرص تلقائيًا لأي بيئة Linux. عليك فقط تقديم CRUNCHIFY_TMP_DIRS الصحيح. عندما لا توجد مساحة خالية على القرص ، يمكن أن تحدث جميع أنواع المشاكل.
ولكن قبل ذلك ، دعونا نحصل على بعض الفهم الأساسي لبعض الأوامر المهمة.
الخطوة 1)
تحقق من الأمر df -H.
استخدم الأمر df
لعرض معلومات حول إجمالي المساحة والمساحة المتوفرة على نظام الملفات.
تحدد معلمة FileSystem اسم الجهاز الذي يوجد عليه نظام الملفات ، أو الدليل الذي تم تثبيت نظام الملفات عليه ، أو اسم المسار النسبي لنظام الملفات.
إذا لم تحدد معلمة FileSystem ، فسيعرض df command
معلومات لجميع أنظمة الملفات المثبتة حاليًا. إذا تم تحديد ملف أو دليل ، فسيعرض الأمر df معلومات لنظام الملفات الذي يوجد عليه.
انتاج:
1 2 3 |
Filesystem Size Used Avail Capacity iused ifree % iused Mounted on / dev / disk0s2 499G 114G 385G 23 % 27868719 94059510 23 % / devfs 189k 189k 0B 100 % 640 0 100 % / dev |
الخطوة 2)
بعد ذلك ، قم بتصفية نظام الملفات واكتشف النسبة المئوية للمساحة
1 |
df - H | grep - vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' |
انتاج:
1 2 |
23 % / dev / disk0s2 100 % devfs |
لذلك ، في بعض الأحيان قد ترغب في تنظيف الملفات من مجلدات محددة برمجيًا في حالة نفاد المساحة لديك. في هذه الحالة ، تحتاج فقط إلى تنفيذ البرنامج النصي أدناه وسيهتم بتنظيف جميع الملفات غير المستخدمة بناءً على معايير التصفية المذكورة في البرنامج النصي. كما أنه يرسل بريدًا إلكترونيًا إلى المستخدم المحدد في البرنامج النصي.
يجب أن يقرأ آخر:
- كيفية تشغيل أوامر Windows / Mac في جافا وإرجاع نتيجة النص
أكمل برنامج Linux DiskCleanup النصي:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
#!/bin/bash # Diskclean-Linux.sh - Remove unused files from /tmp directories # @author: Crunchify.com # ------------- Here are Default Configuration -------------------- # CRUNCHIFY_TMP_DIRS - List of directories to search # DEFAULT_FILE_AGE - # days ago (rounded up) that file was last accessed # DEFAULT_LINK_AGE - # days ago (rounded up) that symlink was last accessed # DEFAULT_SOCK_AGE - # days ago (rounded up) that socket was last accessed CRUNCHIFY_TMP_DIRS = "/tmp /var/tmp /usr/src/tmp /mnt/tmp" DEFAULT_FILE_AGE =+ 2 DEFAULT_LINK_AGE =+ 2 DEFAULT_SOCK_AGE =+ 2 # Make EMPTYFILES true to delete zero-length files EMPTYFILES = false #EMPTYFILES=true cd / tmp / log "cleantmp.sh[$] - Begin cleaning tmp directories" echo "" echo "delete any tmp files that are more than 2 days old" / usr / bin / find $ CRUNCHIFY_TMP_DIRS \ - depth \ - type f - a - ctime $ DEFAULT_FILE_AGE \ - print - delete echo "" echo "delete any old tmp symlinks" / usr / bin / find $ CRUNCHIFY_TMP_DIRS \ - depth \ - type l - a - ctime $ DEFAULT_LINK_AGE \ - print - delete echo "" if / usr / bin / $ EMPTYFILES ; then echo "delete any empty files" / usr / bin / find $ CRUNCHIFY_TMP_DIRS \ - depth \ - type f - a - empty \ - print - delete fi echo "Delete any old Unix sockets" / usr / bin / find $ CRUNCHIFY_TMP_DIRS \ - depth \ - type s - a - ctime $ DEFAULT_SOCK_AGE - a - size 0 \ - print - delete echo "" echo "delete any empty directories (other than lost+found)" / usr / bin / find $ CRUNCHIFY_TMP_DIRS \ - depth - mindepth 1 \ - type d - a - empty - a ! - name 'lost+found' \ - print - delete echo "" / usr / bin / logger "cleantmp.sh[$] - Done cleaning tmp directories" # send out an email about diskcleanup action mail - s "Disk cleanup has been performed successfully." you @ email .com echo "" echo "Diskcleanup Script Successfully Executed" exit 0 |
أتمنى أن يساعدك هذا. إذا كان لديك أي استفسار حول البرنامج النصي أعلاه ، فيرجى إبلاغي بذلك. أي اقتراحات هي موضع ترحيب. يعمل البرنامج النصي مع Linux و Mac OS X.

هل تريد تشغيل البرنامج النصي فوق البرنامج النصي every 3 days
؟ فقط استخدم أدناه جدول كرون
بدأ البرنامج التعليمي المفصل حول Setting up CronJobs
. يرجى ترقبوا.
1 |
0 0 */ 3 * * / opt / crunchify / crunchify_script . sh |