Skript, mis otsib üles failid mille poole ei ole ammu pöördutud ja arhiveerib(bash)

From ICO wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
#!/bin/bash
# Lauri Liibert AK21 2010
# Skript mis leiab kõik vanad failid ja arhiveerib need

#Kuvame kasutusjuhendi kui vaja
usage()
{
/bin/cat << EOF
Usage: aof.sh options

This script archives old files!

OPTIONS:
   -h      show this message
   -p      path (default: pwd)
   -a      archive name (default: archive_date.tar.gz)
   -r      time (default: 356)

EOF
}

#Kontrollime kas programmiga tuli kaasa argumente
if [ $# -eq 0 ] ; then
    usage
    exit 1
fi

#Määrame vaike väärtused muutujatele
PATH=/bin/pwd
ARCHIVE=archive_$(/bin/date +%Y%m%d).tar.gz
TIME="356"

#Kontrollime argumente ja vajadusel väärtustame
while getopts "hrvp:a:t:e:" OPTION
do
    case $OPTION in
        h)
          usage
          exit 1
          ;;
        p)
          PATH=$OPTARG
          ;;
        t)
          TIME=$OPTARG
          ;;
        a)
          ARCHIVE=$OPTARG
          ;;
        r)
          REMOVE="--remove-files"
          ;;
        ?)
          usage
          exit 1
          ;;
    esac
done

# Kuvame kasutajale informatsiooni
echo "Path: "$PATH
echo "Archive name: "$ARCHIVE
echo "Last acces time: " $TIME "days"

# Skripti põhi funktsioon
/usr/bin/find $PATH -type f -mtime +$TIME -print0 | /usr/bin/xargs -0 /bin/tar rvf $ARCHIVE $REMOVE

#Kontrollime kas oli üldse faile
if [ $(/bin/tar tvf $ARCHIVE | /usr/bin/wc -l) -gt 0 ] ; then
    echo "Found: " $(/bin/tar tvf $ARCHIVE | /usr/bin/wc -l)" files"
    echo "Archive name is "$ARCHIVE
else
    echo "No files found!"
    /bin/rm -f $ARCHIVE
fi