X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=scripts%2Fnightly-clean-trash.sh;h=026d0190d0ad223dc87db9f980b0913eba460b04;hb=96464688bd852745a37705dd06994e1ab1c275c7;hp=d4f7614cf7af4a1c456d54733398ed0d7dbb5026;hpb=ca9a22623e4c408094be753758a0ffb5e11fcc84;p=infrastructure.git diff --git a/scripts/nightly-clean-trash.sh b/scripts/nightly-clean-trash.sh index d4f7614..026d019 100755 --- a/scripts/nightly-clean-trash.sh +++ b/scripts/nightly-clean-trash.sh @@ -1,2 +1,35 @@ #!/bin/bash -find /build/trash -maxdepth 1 -mtime 1 -print | xargs rm -rf +# -maxdepth 1 : scans dir and immediate sons +# -mtime +1 : older than one day +# grep -v : preserve the top directory + +exec >> /root/.nightly-clean-trash.log +exec 2>&1 + +date + +[[ -n "$@" ]] && [ "$1" = "-n" ] && set -x + +todelete=$(find /build/trash -maxdepth 1 -mtime +1 -print | grep -v 'trash/*$') +potential_vservers=$(find /build/trash -maxdepth 1 -type d -print 2> /dev/null | grep -v 'trash/*$') + +# clean the vservers first +[ -d /vservers ] && for vserver in $potential_vservers ; do + vname=$(basename $vserver) + vname=$(basename $vname .log.txt) + vname=$(basename $vname .timestamp) + if [ -d /vservers/$vname ] ; then + vserver --silent $vname delete + rm -f /vservers/${vname}.log.txt + rm -f /vservers/${vname}.timestamp + fi +done &> /dev/null + +echo $todelete | xargs rm -rf + +daily_vnames=$(find /vservers/ -maxdepth 1 -type d -name '20*' -mtime +14 -print 2> /dev/null | sed -e 's,^/vservers/,,') +for vname in $daily_vnames; do + [ -f /vservers/${vname}.log.txt ] && rm /vservers/${vname}.log.txt + [ -d /vservers/$vname ] && vserver --silent $vname delete +done +