51 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #!/bin/sh -e
 | |
| 
 | |
| RM='rm -f'
 | |
| #RM='echo rm -f'
 | |
| 
 | |
| LOG_START="$1"
 | |
| LOG_EXT="$2"
 | |
| 
 | |
| NOW="$(/bin/date +%Y%m%d)"
 | |
| NOW_YEAR="$(echo $NOW | cut -c-4)"
 | |
| NOW_MONTH="$(echo $NOW | cut -c5-6)"
 | |
| NOW_DAY="$(echo $NOW | cut -c7-8)"
 | |
| 
 | |
| LOG_START_LEN="$(echo $LOG_START | wc -c | awk '{print$1}')"
 | |
| 
 | |
| YEARS="$(ls $LOG_START*$LOG_EXT | cut -c$LOG_START_LEN-$[LOG_START_LEN+3] | sort -u)"
 | |
| 
 | |
| for YEAR in $YEARS; do
 | |
|   if [ "$YEAR" = "$NOW_YEAR" ]; then
 | |
|     # only keep one per day 
 | |
|     for MONTH in `seq -f "%02g" 12`; do
 | |
|       for DAY in `seq -f "%02g" 31`; do
 | |
|         if [ "$NOW_MONTH" = "$MONTH" ] && [ "$NOW_DAY" = "$DAY" ]; then
 | |
|           # if now is today, dont prune anything
 | |
|           :; 
 | |
|         else
 | |
|           # save only the first report per day 
 | |
|           FILES="$(ls -rt ${LOG_START}${YEAR}-${MONTH}-${DAY}T*${LOG_EXT} 2>/dev/null | tail -n +2)"
 | |
|           #FILES="$(ls -rt ${LOG_START}${YEAR}-${MONTH}-${DAY}T*${LOG_EXT} | tail -n +2)"
 | |
|           if [ -n "$FILES" ]; then
 | |
|             set -x
 | |
|             $RM $FILES
 | |
|             set +x
 | |
|           fi 
 | |
|         fi
 | |
|       done # DAY
 | |
|     done # MONTH
 | |
|   else # not current year
 | |
|     # only keep one per month
 | |
|     for MONTH in `seq -f "%02g" 12`; do
 | |
|       FILES="$(ls -rt ${LOG_START}${YEAR}-${MONTH}-*${LOG_EXT} 2>/dev/null | tail -n +2)"
 | |
|       #FILES="$(ls -rt ${LOG_START}${YEAR}-${MONTH}-*${LOG_EXT} | tail -n +2)"
 | |
|       if [ -n "$FILES" ]; then
 | |
|         set -x
 | |
|         $RM $FILES
 | |
|         set +x
 | |
|       fi 
 | |
|     done # MONTH
 | |
|   fi
 | |
| done # YEAR
 |