Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 01-04-2016 16:24:47

guyhometal
Membre
Inscription : 15-04-2012

[RESOLU] - 2 commandes dans un fichier de log sur la même ligne.

Hello ^^

Comment je peux copier l'information de 2 commandes dans un fichier de log avec la date et l'heure.

C'est a dire :

#du -sB K backup/ >> log/backup.log | date



ou

#du -sB K backup/ >> log/backup.log | date >> log/backup.log


bloc à supprimer si la commande n’affiche rien





mais sur la même ligne ?

Merci pour votre savoir faire


Guillaume

Dernière modification par guyhometal (08-04-2016 10:46:17)

Hors ligne

#2 01-04-2016 16:34:14

wlourf
Membre
Distrib. : Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : awesome
Inscription : 19-07-2010

Re : [RESOLU] - 2 commandes dans un fichier de log sur la même ligne.

Hello,
Quelque chose comme ça devrait faire l'affaire :

echo `date;du -sB K tondossier/` >> tonfichier.log



regarde les paramètres de date pour modifier son format d'affichage, par exemple  :


echo `date +'%x %X';du -sB K tondossier/` >> tonfichier.log
 

Dernière modification par wlourf (01-04-2016 16:35:12)

Hors ligne

#3 01-04-2016 17:00:23

guyhometal
Membre
Inscription : 15-04-2012

Re : [RESOLU] - 2 commandes dans un fichier de log sur la même ligne.

Super c'est exactement ce que je cherchais à faire.

donc pour moi sa sera :

#echo `date +'+%d/%m/%y %H:%M';du -sB K tondossier/` >> tonfichier.log




Merci beaucoup big_smile

je pense que tu as compris ce que je veux faire et j'ai chercher aussi pour pouvoir effacer tout le contenu ou de ce fichier de log à une date précise ou encore toutes semaines, mois, années.

J'aimerais pouvoir conserver une partie de ce fichier de log et qu'il ne prennent pas de l'espace du disque au bout de x temps.

Soit je l'intègre dans le script que je vais créer pour cela et utiliser une cron pour récupérer tout les x temps.

aurait tu une idées ?

merci d'avance.

Guillaume

Dernière modification par guyhometal (01-04-2016 17:08:21)

Hors ligne

#4 01-04-2016 18:12:36

wlourf
Membre
Distrib. : Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : awesome
Inscription : 19-07-2010

Re : [RESOLU] - 2 commandes dans un fichier de log sur la même ligne.

tout d'abord, pour la date tu peux arriver au même résultat en utilisant:

date +'%D %R'


fais un

man date


pour voir toutes les options.

Personnellement, quand j'ai besoin de créer des logs journaliers, j'intègre le nom du fichier dans le script ( je n'utilise donc pas une redirection avec > en dehors du script) , par exemple :


DATE=`date +'%Y%m%d'`
echo "tes commandes" >> /chemin/fichier.$DATE.log
 


donnera fichier.20160401.log


Je ne le fais pas mais tu peux supprimer tes anciens fichiers automatiquement, par exemple, pour supprimer les fichiers vieux d'1 mois :


OLDDATE=`date +'%Y%m%d' -d "1 month ago"`
rm /chemin/fichier.$OLDDATE.log
 


Ça ne supprime qu'un fichier à la fois, si tu utilises cette commande aujourd'hui, ça ne supprimera que ton fichier du 1er mars, pas ceux d'avant. Si ton script est exécuté tous les jours ça ne posera pas de problème, sinon il faudra appronfondir un peu !

Bon courage smile

Dernière modification par wlourf (01-04-2016 18:17:43)

Hors ligne

#5 05-04-2016 11:43:30

guyhometal
Membre
Inscription : 15-04-2012

Re : [RESOLU] - 2 commandes dans un fichier de log sur la même ligne.

Merci pour toutes ces précisions. J'ai pas encore eu l’occasion d'y retoucher

Mais alors, si j'ai bien compris tu créer un fichier par date dans lequel il y a le contenu du résultat de la commande.

Je n'y avais pas pensé mais du coup sa créer une liste interminable de fichier de log. C'est pour cela que je cherchais à supprimé des log pour le coup ma question se porte pourquoi tu ne le fait pas ? Y a t'il une raison ?

J'utilise rdiff-backup pour sauvegarder mes données sur un serveur distant chez OVH. La connexion est un peu lente car j'ai pris un kimsufi avec un espace de 2To d'espace disque. J'aimerais surveiller ce qui transite, comme surveiller que le disque se rempli bien de jour en jour. J'aimerais dans la mesure du possible pouvoir aussi envoyer un mail du fichier créer. Je cherche encore la procédure.

Par ailleurs, je n'arrive pas à trouvé d'information sur la synthaxe d'un commande. j'en comprend le sens mais ce qui m’interpelle c'est surtout les  signes ` " '  qui compose une ligne.

j'ai essayé de faire :

#echo "date +'+%d/%m/%y %H:%M';du -sB K tondossier/" >> tonfichier.log



a la place de :

#echo `date +'+%d/%m/%y %H:%M';du -sB K tondossier/` >> tonfichier.log



mais le résultat n'est pas le même.

Je comprends juste que les signes ` " ' ont une importance comme en mathématique : (1+1)x2 = 4 mais j'en comprends pas l’ordre avec ` " ' . Je me documente déjà sur les fonctions (ou c'est pas encore tout à fait claire) et les variables.   

J'avance doucement mais surement.

- Aurait tu des conseils à me données ou une méthode afin d'avoir un ligne conductrice me permettant de continuer d'apprendre.


Cordialement

Guillaume

Dernière modification par guyhometal (05-04-2016 11:44:58)

Hors ligne

#6 05-04-2016 20:16:16

wlourf
Membre
Distrib. : Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : awesome
Inscription : 19-07-2010

Re : [RESOLU] - 2 commandes dans un fichier de log sur la même ligne.

guyhometal a écrit :

Merci pour toutes ces précisions. J'ai pas encore eu l’occasion d'y retoucher

Mais alors, si j'ai bien compris tu créer un fichier par date dans lequel il y a le contenu du résultat de la commande.



oui, un fichier par jour

Je n'y avais pas pensé mais du coup sa créer une liste interminable de fichier de log. C'est pour cela que je cherchais à supprimé des log pour le coup ma question se porte pourquoi tu ne le fait pas ? Y a t'il une raison ?


Ça dépend de tes besoins, moi j'ai besoin d'un fichier par jour, tu peux faire un fichier par mois ou par semaine en modifiant les paramètres de date.
Je ne les supprime pas car j'ai besoin de conserver ces fichiers. Tu verras qu'avec un peu d'habitude, il est très facile de manipuler des centaines de fichiers avec la ligne de commande.

J'utilise rdiff-backup pour sauvegarder mes données sur un serveur distant chez OVH. La connexion est un peu lente car j'ai pris un kimsufi avec un espace de 2To d'espace disque. J'aimerais surveiller ce qui transite, comme surveiller que le disque se rempli bien de jour en jour. J'aimerais dans la mesure du possible pouvoir aussi envoyer un mail du fichier créer. Je cherche encore la procédure.


Désolé, je ne connais pas rdiff-backup, j'utilise rsync.
Tu peux diriger la sortie de ta commande vers un fichier avec > ou juste les erreurs avec 2>

Pour les mails, tu peux regarder du côté de msmtp

Par ailleurs, je n'arrive pas à trouvé d'information sur la synthaxe d'un commande. j'en comprend le sens mais ce qui m’interpelle c'est surtout les  signes ` " '  qui compose une ligne.

j'ai essayé de faire :

#echo "date +'+%d/%m/%y %H:%M';du -sB K tondossier/" >> tonfichier.log



a la place de :

#echo `date +'+%d/%m/%y %H:%M';du -sB K tondossier/` >> tonfichier.log



mais le résultat n'est pas le même.

Je comprends juste que les signes ` " ' ont une importance comme en mathématique : (1+1)x2 = 4 mais j'en comprends pas l’ordre avec ` " ' . Je me documente déjà sur les fonctions (ou c'est pas encore tout à fait claire) et les variables.   

J'avance doucement mais surement.

- Aurait tu des conseils à me données ou une méthode afin d'avoir un ligne conductrice me permettant de continuer d'apprendre.


Cordialement

Guillaume



Il me semble que toutes les réponses à tes questions sont dans le wiki wink

Puisque tu places tes commandes dans un script, ça sera plus lisible si tu les scindes en plusieurs lignes, par exemple :



MADATE=`date +'%D %R'`
DU=`du -sB K tondossier/`

echo "$MADATE $DU" >> tonfichier.log
 



Bon courage smile

Hors ligne

#7 07-04-2016 10:40:06

guyhometal
Membre
Inscription : 15-04-2012

Re : [RESOLU] - 2 commandes dans un fichier de log sur la même ligne.

Merci, j'ai enfin compris plein de chose. J'ai pas encore fini d'étudier mais il y a un truc qui m'interpelle sans le wiki que tu m'as envoyé.

extrait du wiki :

Anti-quote ou apostrophe inversée

bash considère que les anti-quotes (`) délimitent une commande à exécuter.
Les noms de variable et les commandes sont donc interprétés.

Par exemple en mettant toute cette commande entre deux Anti-quotes2) :

echo  `variable="connu"; echo "Mon mot de passe est $variable."



On obtiendra :


retour de la commande

    Mon mot de passe est connu.






Il n 'y aurais pas une erreur ? Si j'ai bien compris le tuto je pense que sa serais plutôt :


echo  `variable="connu"; echo "Mon mot de passe est $variable."`



big_smile

Guillaume

Dernière modification par guyhometal (07-04-2016 10:45:09)

Hors ligne

#8 07-04-2016 10:48:15

guyhometal
Membre
Inscription : 15-04-2012

Re : [RESOLU] - 2 commandes dans un fichier de log sur la même ligne.

Puisque tu places tes commandes dans un script, ça sera plus lisible si tu les scindes en plusieurs lignes, par exemple :



MADATE=`date +'%D %R'`
DU=`du -sB K tondossier/`

echo "$MADATE $DU" >> tonfichier.log
 



Bon courage smile




Beaucoup plus lisible ^^ smile

Hors ligne

#9 07-04-2016 11:05:04

wlourf
Membre
Distrib. : Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : awesome
Inscription : 19-07-2010

Re : [RESOLU] - 2 commandes dans un fichier de log sur la même ligne.

guyhometal a écrit :


Il n 'y aurais pas une erreur ? Si j'ai bien compris le tuto je pense que sa serais plutôt :

echo  `variable="connu"; echo "Mon mot de passe est $variable."`


Tout juste, j'ai corrigé le wiki smile

Hors ligne

#10 15-04-2016 16:21:28

guyhometal
Membre
Inscription : 15-04-2012

Re : [RESOLU] - 2 commandes dans un fichier de log sur la même ligne.

Salut Wlourf, j'ai testé tout ça. C'est vraiment intéressant mais sa implique des tests avant d'avoir un résultat finale.

Voilà mes tests :

test 1 :

#!/bin/bash

DATE=`date +'%d/%m/%y %H:%M'`
# MADATE=`date +'%D %R'`
DU=`du -sB K /home/backup/spaces/space1/backup/`
echo "$DATE $DU" >> /home/backup/spaces/space1/log/backup.$DATE.log

exit 0
 



lorsque je lance ce script il me dit que j'ai une erreur :

ligne6: /home/backup/spaces/space1/log/backup.$DATE.log : redirection ambiguë



Test 2 :

#!/bin/bash

DATE=`date +'%d/%m/%y %H:%M'`
# MADATE=`date +'%D %R'`
DU=`du -sB K /home/backup/spaces/space1/backup/`
echo "$DATE $DU" >> /home/backup/spaces/space1/log/backup."$DATE".log

exit 0
 



ce qui me semble logique. Il me dit qu'il y a une erreur.

ligne6: /home/backup/spaces/space1/log/backup.15/04/16 16:19.log: Aucun fichier ou dossier de ce type


Pour le coup je pense qu'll me dit qu'il ne peux pas car ce fichier n'existe pas. hummm! comment le créer

avec la commande touch ?


Guillaume

Hors ligne

#11 15-04-2016 16:34:08

Firy
Membre
Distrib. : Debian Jessie 8.3
Noyau : 3.16.0
(G)UI : Openbox
Inscription : 22-01-2016

Re : [RESOLU] - 2 commandes dans un fichier de log sur la même ligne.

Ton flux de redirection crée le fichier s'il n'existe pas.

Es-tu sûr que tous tes dossiers existent bien ? Et accessoirement, je n'aime pas trop le nom de tes fichiers avec des espaces, ça peut être une source d'erreur, privilégie les underscores ou les tirets.

Hors ligne

#12 15-04-2016 16:36:32

guyhometal
Membre
Inscription : 15-04-2012

Re : [RESOLU] - 2 commandes dans un fichier de log sur la même ligne.

Je viens d'essayé ça :

#!/bin/bash

DATE=`date +'%d/%m/%y %H:%M'`
MADATE=`date +'%D'`
DU=`du -sB K /home/backup/spaces/space1/backup/`
echo "$DATE $DU" >> /home/backup/spaces/space1/log/backup."$MADATE".log

exit 0
 



retour du script :

ligne6: /home/backup/spaces/space1/log/backup.04/15/16.log: Aucun fichier ou dossier de ce type

Hors ligne

#13 15-04-2016 16:45:35

wlourf
Membre
Distrib. : Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : awesome
Inscription : 19-07-2010

Re : [RESOLU] - 2 commandes dans un fichier de log sur la même ligne.

hello guyohmetal, c'est normal, ta date contient des /, bash croit qu'il s'agit de dossiers.
Essaye plutôt ce format :

MADATE=`date +%F`


2016-04-15
En plus tes fichiers seront triés dans le bon ordre quand tu les listeras smile

Perso, j'utilise ce format :

date +%Y%m%d


20160415

Dernière modification par wlourf (15-04-2016 16:48:26)

Hors ligne

#14 15-04-2016 16:49:20

guyhometal
Membre
Inscription : 15-04-2012

Re : [RESOLU] - 2 commandes dans un fichier de log sur la même ligne.

La on est bon ^^

#!/bin/bash

DATE=`date +'%d/%m/%y %H:%M'`
MADATE=`date +'%d%m%y'`
DU=`du -sB K /home/backup/spaces/space1/backup/`
touch backup."$MADATE".log &&
echo "$DATE $DU" >> /home/backup/spaces/space1/log/backup."$MADATE".log

exit 0
 

Hors ligne

#15 15-04-2016 17:00:54

guyhometal
Membre
Inscription : 15-04-2012

Re : [RESOLU] - 2 commandes dans un fichier de log sur la même ligne.

Je pense avoir compris héhé!

#!/bin/bash

# Variables
BACKUP='/home/backup/spaces/space1/backup/'
DATE=`date +'%d/%m/%y %H:%M'`
MADATE=`date +'%d%m%y'`
DU=`du -sB K "$BACKUP"`

# commandes
touch backup."$MADATE".log &&
echo "$DATE $DU" >> /home/backup/spaces/space1/log/backup."$MADATE".log

exit 0



Je peux ajouter différents log

Hors ligne

#16 15-04-2016 17:02:45

wlourf
Membre
Distrib. : Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : awesome
Inscription : 19-07-2010

Re : [RESOLU] - 2 commandes dans un fichier de log sur la même ligne.

hmm, pas tout à fait !

Cette ligne ne sert à rien :

touch backup."$MADATE".log &&

car comme écrivait Firy :

Ton flux de redirection crée le fichier s'il n'existe pas.


Le flux de redirection, c'est ça : >>

T'es sûr de ne pas vouloir mettre tes fichiers au format %y%m%d , c'est nettement plus pratique pour les manipuler (je trouve)

Dernière modification par wlourf (15-04-2016 17:03:38)

Hors ligne

#17 15-04-2016 17:49:08

guyhometal
Membre
Inscription : 15-04-2012

Re : [RESOLU] - 2 commandes dans un fichier de log sur la même ligne.

ok merci je vais essayé ça ^^

Hors ligne

#18 15-04-2016 17:50:55

guyhometal
Membre
Inscription : 15-04-2012

Re : [RESOLU] - 2 commandes dans un fichier de log sur la même ligne.

Firy a écrit :

Ton flux de redirection crée le fichier s'il n'existe pas.

Es-tu sûr que tous tes dossiers existent bien ? Et accessoirement, je n'aime pas trop le nom de tes fichiers avec des espaces, ça peut être une source d'erreur, privilégie les underscores ou les tirets.



oui il existe bien ^^
Tu parles des mes dossiers ?

Peux tu est plus précis ? big_smile

Hors ligne

Pied de page des forums