Bonjour,
j’ai un cron qui tourne et j’aimerais lui dire d’à chaque fois écrire son résultat sur un log dédié.
Quel commande bash utiliser pour ouvrir un fichier et y rajouter une ligne?
echo "mon texte qui va bien">>/mon/fichier/de/log
merci !
en parlant d’echo comment on vide un fichier en ligne de commande?
j’ai essayé
echo “”>>monlog.log
mais ca ne fonctionne pas
Non alors
«>>» = concaténation
«>» = remplacement
Du coup pour vider un fichier tu peux faire
echo -n >/mon/fichier/a/ecraser
Le «-n» est là pour éviter à écho de faire un retour à la ligne et donc d’avoir une ligne vide dans ton fichier.
D’ailleurs c’est la commande standard pour créer un fichier, utiliser «touch» ou «vi» est un détournement de leur utilisation normal.
Tu dois utiliser “truncate” c’est fait pour ça:
$ truncate -s0 monfichier.log
michel@debg53sw:~$ ls -la aeff
-rw-r--r-- 1 michel michel 11 août 15 11:09 aeff
michel@debg53sw:~$ > aeff
michel@debg53sw:~$ ls -la aeff
-rw-r--r-- 1 michel michel 0 août 15 11:09 aeff
michel@debg53sw:~$
Donc, il suffit de faire :
> /mon/fichier/a/mettreAzéro
si tu veux aller plus loin pour gérer les logs, je te conseille d’utiliser les outils système. Tu peux meme packager ton outil pour faciliter son déploiement et la config des autres outils.
les outils à configurer sont:
- Pour écrire dans syslog il y a la commande logger.
- pour séparer le log tu peux configurer rsyslog
- logrotate qui est pas mal pour faire tourner les logs et définir combien de temps de sauvegarde tu souhaites.
- si tu developpe en Perl, il y a la lib syslog pour l’écriture de log ;o)
amuses toi bien ;o)