Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- MAINDIR=$1
- shift
- UNDIR=$@
- containsElement () {
- for i in ${UNDIR[@]}
- do
- if [ $1 == $i ]; then
- echo "Este directorio se ignora por peticion del usuario"
- return 1
- fi
- done
- echo "Se van a comprimir los ficheros de este directorio"
- return 0
- }
- #añadir sufijo con la fecha a todos los ficheros que acaben en puppet-bak
- for fichero in `find $1 -type f -name '*puppet-bak'`
- do
- mv $fichero ${fichero}_`date +%Y%m%d_%H%M%S`
- done
- #Por cada directorio con ficheros .puppet-bak_$(date), si hay mas de 10 ficheros, comprimirlos.
- for directorio in `find $1 -type f -name '*puppet-bak_*' | xargs dirname | uniq`
- do
- if containsElement ${directorio}; then
- for fichero_b in `find ${directorio} -maxdepth 1 -type f -name '*puppet-bak_*' | xargs basename -a | sed 's/\.puppet-bak_.\+$//g' | uniq`
- do
- COUNT=$(find ${directorio} -maxdepth 1 -type f -name "*${fichero_b}.puppet-bak_*" | wc -l)
- if [ $COUNT -ge 4 ]; then
- OWNER=`stat -c %U ${fichero_b}`
- cd ${directorio}
- sudo -u ${OWNER} tar -czf ${fichero_b}_`date +%Y%m%d_%H%M%S`.tar.gz ${fichero_b}.puppet-bak_*
- rm ${fichero_b}.puppet-bak_*
- fi
- done
- fi
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement