#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
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