Скрипт удаления бэкапов по условиям

Есть, к примеру, папка в которой хранятся бэкапы за пару лет. Но нужно ли это ВСЁ? У себя мы решили, что нет =)
Итак, скрипт на bash(shell), который удаляет всё, не трогая лишь файлы, которые являются:
1. файлами первых чисел месяцев;
2. файлами понедельников, т.е. за каждую неделю, но не старше года;
3. всеми файлами младше месяца.

#!/bin/bash
/usr/bin/find /dir/ -type f | while read c
do
  #Если первое число месяца
  #Если Понедельник и младше или равно году
  #Если младше месяца
  if ( [ `date -r $c +%d` -eq "01" ] )\ 
    || ( [ `date -r $c +%u` -eq "1" ] && [ $(( `date +%s`-`date -r $c +%s` )) -le $(( 3600*24*356 )) ] )\
    || ( [ $(( `date +%s`-`date -r $c +%s` )) -le $(( 3600*24*31 )) ] );
    then :;
    else rm -rf "$с" ;
  fi	
done

Комментарии

Вот бы такой скприптик да дял винды))

Так никто ж не запрещает ;-)

Добавить комментарий

CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
Target Image