#1 Le 20/07/2010, à 11:46
- Chido42
[Résolu] Crontab + script : tar vide
Bonjour à tous,
Alors voici mon problème :
Lorsque j'éxécute mon script a la main tout fonctionne, mais lorsque le script est éxécuter par le crontab les archives créer sont vides.
Je lance un script à l'aide du fichier crontab suivant (j'ai essayer avec différents user dont root le résultat est le même) :
# m h dom mon dow command
*/59 * * * * /etc/snort/rotatesnortlog.sh
Le script qui est éxécuter sert a effectuer la rotation des logs si la taille d'un fichier snort dépasse 10Mo et les compresses alors de manière séparer dans des .tar.gz
#!/bin/bash
declare SIZELIMIT=10000000
declare SIZE=0
INTERFACES=`cat /etc/snort/common/interfaces`;
for file in /var/log/snort/snort*; do
SIZE=`stat -c %s $file`;
if [ $SIZE -gt $SIZELIMIT ]
then
echo "$file HAS REACHED THE SIZE LIMIT"
killall snort > /dev/null
echo "SNORT KILLED"
rm /var/run/snort* > /dev/null
echo "PIDFILE DELETED"
for IFACE in $INTERFACES; do
tar -cf - snort.$IFACE.* | gzip -9 > snort.$IFACE.`date '+%d%m%y-%H%M'`.tar.gz
echo "snort.$IFACE.`date '+%d%m%y-%H%M'`.tar.gz CREATED"
done;
mv *.gz /var/log/snort/old
rm /var/log/snort/*.out.*
echo "LOGROTATE DONE"
/etc/init.d/snort start > /dev/null
echo "SNORT RESTARTED"
exit 0
fi
done
Donc si vous avez une idée d'ou viens le problème toute aide est la bienvenue.
Merci d'avance
Dernière modification par Chido42 (Le 20/07/2010, à 12:17)
Hors ligne
#2 Le 20/07/2010, à 11:49
- credenhill
Re : [Résolu] Crontab + script : tar vide
hello
capturer d'éventuels message ou erreurs
*/59 * * * * /etc/snort/rotatesnortlog.sh >> /tmp/log1 2>&1
Hors ligne
#3 Le 20/07/2010, à 11:59
- Chido42
Re : [Résolu] Crontab + script : tar vide
J'ai en effet de nombreuses erreur merci pour l'astuce j'aurais du y penser.
Cependant je ne sais pas comment faire car lorsque j'éxécute ce script normalement mes fichiers sont trouvés, les processus snort aussi... Enfin je n'ai pas d'erreur dans le cas d'une éxécution manuelle.
Voici le fichier de log
/var/log/snort/snort.eth0.200710-1200.tar.gz HAS REACHED THE SIZE LIMIT
snort: no process found
SNORT KILLED
PIDFILE DELETED
tar: snort.eth0.*: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
snort.eth0.200710-1252.tar.gz CREATED
tar: snort.eth1.*: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
snort.eth1.200710-1252.tar.gz CREATED
rm: cannot remove `/var/log/snort/*.out.*': No such file or directory
LOGROTATE DONE
SNORT RESTARTED
/var/log/snort/snort.eth0.out.1279623127 HAS REACHED THE SIZE LIMIT
SNORT KILLED
PIDFILE DELETED
tar: snort.eth0.*: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
snort.eth0.200710-1254.tar.gz CREATED
tar: snort.eth1.*: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
snort.eth1.200710-1254.tar.gz CREATED
LOGROTATE DONE
SNORT RESTARTED
Hors ligne
#4 Le 20/07/2010, à 12:03
- NooP
Re : [Résolu] Crontab + script : tar vide
Bonjour,
Attention avec CRON : Il faut impérativement utiliser des chemins absolus partout.
Dernière modification par NooP (Le 20/07/2010, à 12:03)
Votez Macron, vous l'aurez dans le fion !
Hors ligne
#5 Le 20/07/2010, à 12:05
- credenhill
Re : [Résolu] Crontab + script : tar vide
tu n'es pas dans le répertoire où se trouvent les fichiers snort.$IFACE.*
faire un cd /var/log/snort au début du script
pour supprimer des fichiers sans message si ils n'existent pas : rm -f /var/run/snort*
@NooP : non
Dernière modification par credenhill (Le 20/07/2010, à 12:09)
Hors ligne
#6 Le 20/07/2010, à 12:13
- Chido42
Re : [Résolu] Crontab + script : tar vide
Merci beaucoup !
En effet il me manquait quelques chemins a mettre en absolu et voila problème résolu tout fonctionne. Voici le nouveau script au cas ou ça intéresse quelqu'un :
#!/bin/bash
declare SIZELIMIT=10000
declare SIZE=0
INTERFACES=`cat /etc/snort/common/interfaces`;
for file in /var/log/snort/snort*; do
SIZE=`stat -c %s $file`;
if [ $SIZE -gt $SIZELIMIT ]
then
echo "$file HAS REACHED THE SIZE LIMIT"
killall snort > /dev/null
echo "SNORT KILLED"
rm /var/run/snort* > /dev/null
echo "PIDFILE DELETED"
for IFACE in $INTERFACES; do
tar -cf - /var/log/snort/snort.$IFACE.* | gzip -9 > /var/log/snort/old/snort.$IFACE.`date '+%d%m%y-%H%M'`.tar.gz
echo "snort.$IFACE.`date '+%d%m%y-%H%M'`.tar.gz CREATED"
done;
rm /var/log/snort/*.out.*
echo "LOGROTATE DONE"
/etc/init.d/snort start > /dev/null
echo "SNORT RESTARTED"
exit 0
fi
done
Bye et merci à tous
Hors ligne
#7 Le 20/07/2010, à 12:17
- Chido42
Re : [Résolu] Crontab + script : tar vide
En fait ce qui me surprend le plus c'est que le script fonctionnait manuellement alors qu'il se situait dans le repertoire /etc/snort
Hors ligne