Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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