Résolu le 29-11-18 [RESOLU] créer un journal.log en script bash

Questions concernant les lignes de commandes
Répondre
calixtus06
Messages : 172
Enregistré le : ven. 11 nov. 2016 19:34
Localisation : Vinay (38)

[RESOLU] créer un journal.log en script bash

Message par calixtus06 »

re hello
je suis allé sur ce site pour démarrer le script:
https://abs.traduc.org/abs-fr/ch02s02.html" onclick="window.open(this.href);return false;
Il y a l'exercice mais pas le corrigé.

Code : Tout sélectionner

#!/bin/bash
date
who
uptime
SORTIE_COMMANDE >
exit 0
J'ai un message d'erreur :

Code : Tout sélectionner

nicolasmintkde-desktop nicolasmintkde # ./exercices.sh 
dimanche 26 mars 2017, 01:22:04 (UTC+0100)
nicolasmintkde pts/0        2017-03-25 15:57 (:0)
nicolasmintkde pts/1        2017-03-26 01:14 (:0)
nicolasmintkde pts/2        2017-03-26 01:21 (:0)
 01:22:04 up  9:25,  3 users,  load average: 0,34, 0,31, 0,26
./exercices.sh: ligne 5: erreur de syntaxe près du symbole inattendu « newline »
./exercices.sh: ligne 5: `SORTIE_COMMANDE >'
nicolasmintkde-desktop nicolasmintkde # 
qu'est ce que je dois comprendre ? merci d'avance
Modifié en dernier par calixtus06 le dim. 26 mars 2017 23:27, modifié 1 fois.
ACER ASPIRE M3641,
KDE Plasma 5.6.5, Distro: Linux Mint 18 Sarah, Intel model: DG41CN, Quad core Intel Core2 Quad Q6600, speed/max: 1596/2394 MHz, NVIDIA G73 [GeForce 7600 GT],
Network Card: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller driver: r8169
Drives: HDD Total Size: 160.0GB (34.1% used)
Memory: 3 go DDR2 Synchrone 667 MHz (1,5 ns)
Kernel: 4.4.0-21-generic x86_64 (64 bit),

Avatar du membre
WarLocG
Messages : 96
Enregistré le : mer. 20 avr. 2016 18:39
Localisation : Belgique

Re: créer un journal

Message par WarLocG »

Voila ma version :)

Code : Tout sélectionner

#! /bin/bash

echo "[new]-----------------------" >> journal.log
echo "Date et heure" >> journal.log
echo $(date "+%F %H:%M:%S") >> journal.log
echo "Utilisateurs connectés" >> journal.log
echo $(w -hi) >> journal.log
echo "Temps passé depuis lancement du système" >> journal.log
echo $(uptime) >> journal.log
echo "----------------------------" >> journal.log
Et après on peut faire mail $USER@$HOSTNAME < journal.log pour se l'envoyer par mail postfix :D (accessible depuis la commande mail)

Ce qu'il manque dans ton script c'est la redirection vers le fichier de journal.

calixtus06
Messages : 172
Enregistré le : ven. 11 nov. 2016 19:34
Localisation : Vinay (38)

Re: créer un journal

Message par calixtus06 »

top !
Plusieurs questions tout de même :)
1) Que signifie ce sigle: ">>" ( redirection forcément)
2)celui ci : "(w -hi) "
3)Pourquoi as tu fait le choix de ne pas utiliser la commande si ç'en est une: "SORTIE_COMMANDE >"

enfin est ce que ce script est plus correct :

Code : Tout sélectionner

#!/bin/bash
date
who
uptime
>> journal12
exit 0
Merci à toi !
ACER ASPIRE M3641,
KDE Plasma 5.6.5, Distro: Linux Mint 18 Sarah, Intel model: DG41CN, Quad core Intel Core2 Quad Q6600, speed/max: 1596/2394 MHz, NVIDIA G73 [GeForce 7600 GT],
Network Card: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller driver: r8169
Drives: HDD Total Size: 160.0GB (34.1% used)
Memory: 3 go DDR2 Synchrone 667 MHz (1,5 ns)
Kernel: 4.4.0-21-generic x86_64 (64 bit),

Avatar du membre
WarLocG
Messages : 96
Enregistré le : mer. 20 avr. 2016 18:39
Localisation : Belgique

Re: créer un journal

Message par WarLocG »

Question 1:
tu as plusieurs redirection:
a) sortie standard

Code : Tout sélectionner

>    j'envois vers fichier et j'écrase ce qu'il contient
>>  j'envois vers fichier mais je rajoutes à la suite du contenu déjà présent
b) entrée standard

Code : Tout sélectionner

<    je récupère le contenu de fichier dans ma commande
<<  je stoppe le "mode machine à écrire" lorsque je rencontre la chaîne suivante
exemple: cat <<eof> fichier. J’arrête d'envoyer du flux vers mon fichier des que j'aurai écris eof<touche Entrer>

c) erreurs standard

Code : Tout sélectionner

2>      redirige les erreurs
2>&1  transfert les erreurs sur la sortie standard ( 1> == > )
Question 2:
w c'est une autre commande comme who, le -h signifie que j'affiche pas la bannière, -i c'est pour afficher les ip des utilisateurs connectés à distance (par ssh)

Question 3:
Parce qu'elle ne veut rien dire, encore si c'était une variable elle commencerait par un $

Question 4:
enfin est ce que ce script est plus correct
Il suffit de regarder ce que contient ton fichier journal12 pour en être fixé :)
Modifié en dernier par WarLocG le dim. 26 mars 2017 23:55, modifié 1 fois.

Avatar du membre
débitant
modérateur
Messages : 11534
Enregistré le : mar. 14 juil. 2015 18:22
Localisation : Lorraine France

Re: [RESOLU] créer un journal.log en script bash

Message par débitant »

Si le sujet est résolu, merci d'éditer le premier message du sujet et mettre un petit Image, comme suit: Image
et un [résolu] (entre crochets et à gauche) dans le titre voir tuto ici

Répondre