Quante volte combattiamo con files di nohup che crescono a dismisura?!
Con il seguente script inserito a crontab possiamo far in modo che un file nohup ruoti e si archivi automaticamente:
l'unica variabile da settare è $file nel quale va inserito il path e il nome file da ruotare
Inoltre è possibile settare il limite di grandezza dopo il quale il file routa
#!/usr/bin/bash
#10M
max_f_size=10000000
file=/product/logs/nohup.out
ls ${file}
RESULT=$?
if [ "$RESULT" != 0 ]
then
echo "file not present"
exit
fi
file_size=$(ls -latr ${file} | awk awk '{ print $5 }' )
echo "file size is ${file_size}"
echo "max file size is ${max_f_size}"
if [ "${file_size}" -gt "${max_f_size}" ]
then
#ruoto file
echo "ruotato con nome ${file}.$(date +%d%m%Y.%H%M%S)"
cp ${file} ${file}.$(date +%d%m%Y.%H%M%S)
#svuoto il contenuto
cat /dev/null > ${file}
fi