Corrigi os erros mais evidentes do seu script.
Eu supus que LOG_FILES
conterá uma lista de arquivos para compactar.
#!/bin/bash
AGE_TO_COMPRESS=2419200 # 28 days
# list of file to compress
LOG_FILES="/tmp/test/test /tmp/test/test2 /tmp/test/test3 /tmp/test/test4"
# Any file older than EDGE_DATE must be compressed
NOW=$( date +%s )
EDGE_DATE=$(( NOW - AGE_TO_COMPRESS ))
for file in $LOG_FILES ; do
# check if file exists
if [ -e "$file" ] ; then
# compare "modified date" of file to EDGE_DATE
if [ $( stat -c %Y "$file" ) -lt ${EDGE_DATE} ] ; then
# create tar file of a single file
# this is an odd way to compress a file
tar -cvzf $file.tar.gz $file
# do we want to delete the old file?
# rm "$file"
fi
fi
done
De qualquer forma, concordo com @dhag que uma solução find
/ bzip2
seria melhor.
Você levou em consideração para usar logrotate
? Por que você quer reescrever a roda quando existe software dedicado?