Linux에서 /tmp 폴더를 자동으로 삭제하는 방법은 무엇입니까? 자동 디스크 로그 정리 Bash 스크립트
게시 됨: 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 |
따라서 공간이 부족한 경우 프로그래밍 방식으로 특정 폴더에서 파일을 정리하려는 경우가 있습니다. 이 경우 아래 스크립트를 실행하기만 하면 스크립트에 언급된 필터 기준에 따라 사용하지 않는 모든 파일을 정리합니다. 또한 스크립트에 지정된 사용자에게 이메일을 보냅니다.
다른 사람은 다음을 읽어야 합니다.
- JAVA에서 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
실행하고 싶습니까? 아래 cron 일정을 사용하십시오.
Setting up CronJobs
에 대한 자세한 자습서가 준비 중입니다. 채널을 고정하세요.
1 |
0 0 */ 3 * * / opt / crunchify / crunchify_script . sh |