Simplification de cet algorithme ? - Shell/Batch - Programmation
Marsh Posté le 13-04-2021 à 21:43:19
Si testA=faux OU testB=faux alors |
A part ça...
Marsh Posté le 13-04-2021 à 21:49:26
rat de combat a écrit :
|
Merci
Mais là, si jamais les deux dossiers n'existent pas, je ne le saurais pas puisque je n'aurais le message que pour l'un.
Marsh Posté le 15-04-2021 à 15:17:34
|
Ca permet d'éviter de faire 2 appels systèmes pour chaque dossier
Marsh Posté le 15-04-2021 à 15:52:30
Je@nb a écrit :
|
Ha oui ! Super ça
Merci
J'applique cet algorithme
Marsh Posté le 15-05-2021 à 23:43:11
Bonjour MilesTEG1,
à tester la présence des repertoires il y a rien d'important pour les copies,
d'accord tu t'assures de la présence ou existence des 'dossiers'.
Les 'dossiers' existent d'accord.
Quand tu lances tes copies, un disque dur laches, le réseau se déconnectes, le Pc prends une micro-coupure..
tout ce qui peut faire rater ta copie ... ( le pire cas ).
Tu lancerai tes copies avec la commande dédié,
sur le premier fichier,
un défaut te renvoies 'false'
et les milles autres fichiers font la même chose,
l'ensemble des copies a foiré
et pourtant les 2 dossiers sont valides.
en fait, tu aura testé autant de fois que nécessaires,
des 'variables adresse de disque' pour constater qu'aucune copies n'a été correctement réalisée.
en bref :
fais une boucle et envoies toutes tes copies une par une.
sur une erreur , c'est 'false' qui sera retourné.
Dans tes vérifications avant de copier,
tu va faire ( tu peux compter sur tes doigts le nombre de tests ),
4 tests au moins , puis faire une liste
pour ne faire aucune copie ( en cas d'indisponibilité )
donc :
boucle sur ta liste de fichiers,
compte les erreurs dans des logs.
et tu divise le nombre de if if fi if if fi fi par 4 au moins.
c'est parmi les 'erreurs de logique' en algo.
Trop de code en fait.
foreach "file_from" in LIST
bRETurn = true
bRETurn = copy_to( file_to , file_from )
if bRETurn == false then
log ( fail copy :: file_from )
fi
next for
C'est des accès "lecture / écriture" en moins etc ....
A chaque ligne de code , il se passes 1000 test , assignation , création d'objet , chargement , déchargement , instanciation ...
avec tout ça ... diviser par 4 le travail a faire par le CPU ...
ça fait un soft hyper rapide non ?
Marsh Posté le 13-04-2021 à 17:27:38
Salut
Je suis en train de faire un script Bash/Shell permettant de faire une sauvegarde des données de mon conteneur Gitea.
Avant de lancer les commandes, je m'assure que les dossiers nécessaires existent bien, avec cet algorithme :
Si testA=faux OU testB=faux alors
Si TestA=faux alors
On ecrit que le dossier A n'existe pas
Fin
Si TestB=faux alors
On ecrit que le dossier B n'existe pas
Fin
On quitte en donnant un message d'erreur
Sinon
On écrit que tout va bien, les dossiers existent.
Fin
Est-ce qu'il y a moyen de simplifier ça ? (l'algorithme)
Voilà le code que j'ai fait :
Merci d'avance.
---------------
Mes ventes : [FeedBack] http://forum.hardware.fr/hfr/Achat [...] 4599_1.htm