Bonjour, voici un petit problème que je ne maîtrise pas.
Je n'ai jamais appris de rpogrammation sur quoi que ce soit, donc, j'eesaie
d'apprendre avec les exercices trouvés ça et là dans les magazines...
Donc, j'ai créé un petit programme shell comme indiqué dans un magazine pour
éradiquer les fichiers log en trop et éviter qu'il ne saturent mes partitions.
L'exemple est pour faire un script shell qui se lance tous les mois et me
vire les fichiers logs sélectionnés dans un fichier "/etc/cleantab" que j'ai
défini. Ce script me permet en outre de ne garder que les 200 dernières
lignes de chaque fichier log sélectionné.
J'ai écrit le script en suivant l'exemple donné, mais avant de l'installer
dans mon "cron monthly", j'ai voulu le tester en tapant: ./cleaner (son nom)
et là j'ai eu deux messages d'erreur:
le premier concerne la ligne 14
./cleaner: line 14: unexpected EOF while looking for matching ",
Qu'est-ce que cela veut dire ? (pour moi c'est du chinois)
le second concerne la ligne 24
./cleaner: line 24: syntax error: unexpected end of file
Or mon fichier ne comprends que 23 lignes ??
Voici maintenant le script:
-----------------------------------------------------------
#! /bin/bash
# d'abord s'assurer que la cleantab existe
if [ ! -e /etc/cleantab ]
then
exit 0
fi
#créer un fichier temporaire qui servira de tampon
temporaire=$(mktemp /tmp/cleantemp.XXXXXX)
#lire chaque entrée dans la cleantab et conserver
#seulement les 200 dernières lignes de chaque fichier
for fichier in $(awk `{ print $0 }' /etc/cleantab)
do
tail -lines=200 $fichier >$temporaire
cat <$temporaire >$fichier
done
#effacer le fichier temporaire
rm -f $temporaire
exit 0
-----------------------------------------------------------
Si une âme charitable pouvait m'expliquer ce qui se passe et m'indiquer le
moyen de m'en sortir, merci d'avance.
A ciao, serge.
--
T'as le bonjour de LEO!
http://leoloden.citeweb.net/