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 06/11/2014, à 16:41

Cyrille_tux

[shell script] - Trouver le jour d'une sauvegarde [résolu]

Bonjour,

Soit le fichier suivant, où :

- Une sauvegarde "Full-Mens" est exécutée le Samedi
- Une sauvegarde "Full" est exécutée le Samedi
- Une sauvegarde " Differential-Inc" est exécutée du mardi au vendredi

Schedule              Full-Mens
   Saturday            006:00:00  024:00:00   150:00:00  168:00:00 
Schedule              Full
   Saturday            006:00:00  024:00:00   150:00:00  168:00:00 
Schedule              Differential-Inc
   Tuesday             001:00:00  011:00:00   049:00:00  059:00:00 
   Wednesday       001:00:00  011:00:00   073:00:00  083:00:00 
   Thursday            001:00:00  011:00:00   097:00:00  107:00:00 
   Friday              001:00:00  011:00:00   121:00:00  131:00:00 

Par quel moyen puis-je récupérer ces informations dans un fichier, ou des variables ?

Je voudrais qu'en sortie de script, j'obtienne quelques chose comme :
"Full-Mens" lancé le samedi
"Full" lancé le samedi
"Differential-Inc" lancé le mardi, mercredi, jeudi, vendredi

Dernière modification par Cyrille_tux (Le 03/12/2014, à 20:17)

Hors ligne

#2 Le 07/11/2014, à 11:08

serged

Re : [shell script] - Trouver le jour d'une sauvegarde [résolu]

Ben, en fin de script quelque chose comme :

Echo -n Full-Mens >>/var/log/sauvegardes.log
date >>/var/log/sauvegardes.log

Peut être prévoir un nettoyage du fichier log avec tail.


LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne

#3 Le 07/11/2014, à 15:23

Hizoka

Re : [shell script] - Trouver le jour d'une sauvegarde [résolu]

Voila un code pas forcement ultra light mais bon...

unset jours var

# Boucle lisant les lignes une a une
while read ligne
do
    if [[ -n $(grep -w "Full-Mens" <<< ${ligne}) ]]
    then
      # S'il y a eu changement de var, on affiche les anciennes valeurs
      [[ -n ${jours} ]] && (echo "${var} : ${jours}"; unset jours)
      
      # Nouvelle valeur
      var="Full-Mens"

    elif [[ -n $(grep -w "Full" <<< ${ligne}) ]]
    then
      # S'il y a eu changement de var, on affiche les anciennes valeurs
      [[ -n ${jours} ]] && (echo "${var} : ${jours}"; unset jours)
      
      # Nouvelle valeur
     var="Full"

    elif [[ -n $(grep -w "Differential-Inc" <<< ${ligne}) ]]
    then
      # S'il y a eu changement de var, on affiche les anciennes valeurs
      [[ -n ${jours} ]] && (echo "${var} : ${jours}"; unset jours)
      
      # Nouvelle valeur
      var="Differential-Inc"

    else
      # Ajout du jour
      jours+="$(sed "s/ *\([^ ]*\).*/\1/" <<< "${ligne}") "
    fi
done < test

[[ -n ${jours} ]] && echo "${var} : ${jours}"

KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#4 Le 08/11/2014, à 02:16

Cyrille_tux

Re : [shell script] - Trouver le jour d'une sauvegarde [résolu]

Merci Hizoka pour ce bout de code.
Il est presque fonctionnel.

Par contre, c'est vrai que dans mon exemple, je prenais 3 types de sauvegarde.
Dans la réalité, j'en ai une dizaine.

Je pourrais donc utiliser le test "if elif" avec une liste exhaustive des types de sauvegarde existants, mais, une boucle for serait certainement mieux (?).

L'idée est que je ne connais pas forcément les différents noms des schedules.

Hors ligne

#5 Le 08/11/2014, à 10:55

credenhill

Re : [shell script] - Trouver le jour d'une sauvegarde [résolu]

hello
et avec

$ awk '/Schedule/ {if(n++)print ""; printf $2 OFS ; next} {printf $1 OFS} END {print ""}' fichier
Full-Mens Saturday 
Full Saturday 
Differential-Inc Tuesday Wednesday Thursday Friday 

Hors ligne

#6 Le 08/11/2014, à 13:31

Hizoka

Re : [shell script] - Trouver le jour d'une sauvegarde [résolu]

en effet tu peux faire une boucle qui reccupere tous les types de sauvegarde, là dans mon exemple c'était plus simple.

Ha le fameux awk et son langage incompréhensible mais tellement puissant smile


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#7 Le 03/12/2014, à 20:11

Cyrille_tux

Re : [shell script] - Trouver le jour d'une sauvegarde [résolu]

Avec un peu de retard, je vous remercie pour l'aide apportée.

J'ai pu tester les différentes méthodes proposées.
J'ai finalement utilisée la méthode avec 'awk'.

A part  "awk '{print $1}'" classique, je ne suis pas du tout à l'aise avec cette commande.
Mais elle sert tellement !

Merci encore.

Hors ligne