Y a-t-il mieux, pour supprimer le code d'erreur (pas le message) d'une
commande bash que "commande || true" ?
Pour que ma demande ne semble pas trop surprenante à ceux qui aiment
toujours remettre en cause le bienfondé des questions, c'est pour mettre
dans une configuration de système de sauvegarde (bacula) du genre :
dans une config générique qui sert à toutes les machines, mais qui pour
certaines renvoie une erreur (sans le || true) si le chemin n'existe pas,
mais surtout, interrompt totalement l'ensemble de la sauvegarde.
Ça m'évite de faire une config par machine, plus compliqué à maintenir,
sans toutefois être obligé de créer ces répertoires vides, juste pour que
la sauvegarde n'échoue pas.
Mais s'il n'y a pas mieux/plus propre que le "|| true", je laisse comme
ça.
Christophe PEREZ , dans le message <rffssr$dqp$, a écrit :
mais surtout, interrompt totalement l'ensemble de la sauvegarde.
Je trouve que c'est sur ce point qu'il vaudrait mieux réfléchir avant de cacher l'erreur.
Christophe PEREZ
Le Sat, 25 Jul 2020 08:36:00 +0000, Nicolas George a écrit :
Je trouve que c'est sur ce point qu'il vaudrait mieux réfléchir avant de cacher l'erreur.
Et bien j'ai cherché, mais ça semble être le processus normal de bacula. S'il y a une erreur en résultat d'une commande sur le "fileset", il ne lance pas la sauvegarde. J'utilise bacula depuis pas mal d'années. Tout fonctionne très bien. J'ai juste installé une nouvelle machine, et oublié de créer ces répertoires vides, et du coup, la sauvegarde a échoué. Je me suis dit qu'il serait donc peut-être bien que je fasse en sorte que l'absence de ce répertoire (et là seulement) ne provoque pas l'erreur qui empêche la sauvegarde. Je ne vois pas trop le risque que je prends.
Le Sat, 25 Jul 2020 08:36:00 +0000, Nicolas George a écrit :
Je trouve que c'est sur ce point qu'il vaudrait mieux réfléchir avant de
cacher l'erreur.
Et bien j'ai cherché, mais ça semble être le processus normal de bacula.
S'il y a une erreur en résultat d'une commande sur le "fileset", il ne
lance pas la sauvegarde.
J'utilise bacula depuis pas mal d'années. Tout fonctionne très bien. J'ai
juste installé une nouvelle machine, et oublié de créer ces répertoires
vides, et du coup, la sauvegarde a échoué. Je me suis dit qu'il serait
donc peut-être bien que je fasse en sorte que l'absence de ce répertoire
(et là seulement) ne provoque pas l'erreur qui empêche la sauvegarde.
Je ne vois pas trop le risque que je prends.
Le Sat, 25 Jul 2020 08:36:00 +0000, Nicolas George a écrit :
Je trouve que c'est sur ce point qu'il vaudrait mieux réfléchir avant de cacher l'erreur.
Et bien j'ai cherché, mais ça semble être le processus normal de bacula. S'il y a une erreur en résultat d'une commande sur le "fileset", il ne lance pas la sauvegarde. J'utilise bacula depuis pas mal d'années. Tout fonctionne très bien. J'ai juste installé une nouvelle machine, et oublié de créer ces répertoires vides, et du coup, la sauvegarde a échoué. Je me suis dit qu'il serait donc peut-être bien que je fasse en sorte que l'absence de ce répertoire (et là seulement) ne provoque pas l'erreur qui empêche la sauvegarde. Je ne vois pas trop le risque que je prends.
Stéphane CARPENTIER
Le 25-07-2020, Christophe PEREZ a écrit :
Le Sat, 25 Jul 2020 08:36:00 +0000, Nicolas George a écrit :
Je trouve que c'est sur ce point qu'il vaudrait mieux réfléchir avant de cacher l'erreur.
Et bien j'ai cherché, mais ça semble être le processus normal de bacula. S'il y a une erreur en résultat d'une commande sur le "fileset", il ne lance pas la sauvegarde. J'utilise bacula depuis pas mal d'années. Tout fonctionne très bien. J'ai juste installé une nouvelle machine, et oublié de créer ces répertoires vides, et du coup, la sauvegarde a échoué. Je me suis dit qu'il serait donc peut-être bien que je fasse en sorte que l'absence de ce répertoire (et là seulement) ne provoque pas l'erreur qui empêche la sauvegarde. Je ne vois pas trop le risque que je prends.
Ça me semble plus propre de faire un test sur l'existence du répertoire avant de lancer ta commande. Parce qu'une commande a plusieurs raisons d'échouer. Et puis tu peux en profiter pour éviter de sauvegarder des répertoires vides en t'assurant que si le répertoire existe, il contient des fichiers. -- Si vous avez du temps à perdre : https://scarpet42.gitlab.io
Le 25-07-2020, Christophe PEREZ <chris@novazur.fr> a écrit :
Le Sat, 25 Jul 2020 08:36:00 +0000, Nicolas George a écrit :
Je trouve que c'est sur ce point qu'il vaudrait mieux réfléchir avant de
cacher l'erreur.
Et bien j'ai cherché, mais ça semble être le processus normal de bacula.
S'il y a une erreur en résultat d'une commande sur le "fileset", il ne
lance pas la sauvegarde.
J'utilise bacula depuis pas mal d'années. Tout fonctionne très bien. J'ai
juste installé une nouvelle machine, et oublié de créer ces répertoires
vides, et du coup, la sauvegarde a échoué. Je me suis dit qu'il serait
donc peut-être bien que je fasse en sorte que l'absence de ce répertoire
(et là seulement) ne provoque pas l'erreur qui empêche la sauvegarde.
Je ne vois pas trop le risque que je prends.
Ça me semble plus propre de faire un test sur l'existence du répertoire
avant de lancer ta commande. Parce qu'une commande a plusieurs raisons
d'échouer. Et puis tu peux en profiter pour éviter de sauvegarder des
répertoires vides en t'assurant que si le répertoire existe, il contient
des fichiers.
--
Si vous avez du temps à perdre :
https://scarpet42.gitlab.io
Le Sat, 25 Jul 2020 08:36:00 +0000, Nicolas George a écrit :
Je trouve que c'est sur ce point qu'il vaudrait mieux réfléchir avant de cacher l'erreur.
Et bien j'ai cherché, mais ça semble être le processus normal de bacula. S'il y a une erreur en résultat d'une commande sur le "fileset", il ne lance pas la sauvegarde. J'utilise bacula depuis pas mal d'années. Tout fonctionne très bien. J'ai juste installé une nouvelle machine, et oublié de créer ces répertoires vides, et du coup, la sauvegarde a échoué. Je me suis dit qu'il serait donc peut-être bien que je fasse en sorte que l'absence de ce répertoire (et là seulement) ne provoque pas l'erreur qui empêche la sauvegarde. Je ne vois pas trop le risque que je prends.
Ça me semble plus propre de faire un test sur l'existence du répertoire avant de lancer ta commande. Parce qu'une commande a plusieurs raisons d'échouer. Et puis tu peux en profiter pour éviter de sauvegarder des répertoires vides en t'assurant que si le répertoire existe, il contient des fichiers. -- Si vous avez du temps à perdre : https://scarpet42.gitlab.io
Christophe PEREZ
Le Sat, 25 Jul 2020 21:58:01 +0000, Stéphane CARPENTIER a écrit :
Ça me semble plus propre de faire un test sur l'existence du répertoire avant de lancer ta commande. Parce qu'une commande a plusieurs raisons d'échouer. Et puis tu peux en profiter pour éviter de sauvegarder des répertoires vides en t'assurant que si le répertoire existe, il contient des fichiers.
Certes. Je vais réfléchir à la façon de mettre ça en place. Mais sinon, pour répondre à ma question initiale, tu ne vois pas mieux que le "|| true" ?
Le Sat, 25 Jul 2020 21:58:01 +0000, Stéphane CARPENTIER a écrit :
Ça me semble plus propre de faire un test sur l'existence du répertoire
avant de lancer ta commande. Parce qu'une commande a plusieurs raisons
d'échouer. Et puis tu peux en profiter pour éviter de sauvegarder des
répertoires vides en t'assurant que si le répertoire existe, il contient
des fichiers.
Certes. Je vais réfléchir à la façon de mettre ça en place.
Mais sinon, pour répondre à ma question initiale, tu ne vois pas mieux
que le "|| true" ?
Le Sat, 25 Jul 2020 21:58:01 +0000, Stéphane CARPENTIER a écrit :
Ça me semble plus propre de faire un test sur l'existence du répertoire avant de lancer ta commande. Parce qu'une commande a plusieurs raisons d'échouer. Et puis tu peux en profiter pour éviter de sauvegarder des répertoires vides en t'assurant que si le répertoire existe, il contient des fichiers.
Certes. Je vais réfléchir à la façon de mettre ça en place. Mais sinon, pour répondre à ma question initiale, tu ne vois pas mieux que le "|| true" ?
Stéphane CARPENTIER
Le 25-07-2020, Christophe PEREZ a écrit :
Le Sat, 25 Jul 2020 21:58:01 +0000, Stéphane CARPENTIER a écrit :
Ça me semble plus propre de faire un test sur l'existence du répertoire avant de lancer ta commande. Parce qu'une commande a plusieurs raisons d'échouer. Et puis tu peux en profiter pour éviter de sauvegarder des répertoires vides en t'assurant que si le répertoire existe, il contient des fichiers.
Certes. Je vais réfléchir à la façon de mettre ça en place. Mais sinon, pour répondre à ma question initiale, tu ne vois pas mieux que le "|| true" ?
Ben si, de faire un test sur l'existence du répertoire avant de lancer la commande. Si tu veux avoir ta commande dans le crontab, ça va être assez subtile de faire tout tenir sur une ligne. Mais si le but est de lancer un script à partir du crontab, c'est facile. L'avantage du script, c'est que tu peux le faire évoluer sans avoir à modifier ton crontab. -- Si vous avez du temps à perdre : https://scarpet42.gitlab.io
Le 25-07-2020, Christophe PEREZ <chris@novazur.fr> a écrit :
Le Sat, 25 Jul 2020 21:58:01 +0000, Stéphane CARPENTIER a écrit :
Ça me semble plus propre de faire un test sur l'existence du répertoire
avant de lancer ta commande. Parce qu'une commande a plusieurs raisons
d'échouer. Et puis tu peux en profiter pour éviter de sauvegarder des
répertoires vides en t'assurant que si le répertoire existe, il contient
des fichiers.
Certes. Je vais réfléchir à la façon de mettre ça en place.
Mais sinon, pour répondre à ma question initiale, tu ne vois pas mieux
que le "|| true" ?
Ben si, de faire un test sur l'existence du répertoire avant de lancer
la commande. Si tu veux avoir ta commande dans le crontab, ça va être
assez subtile de faire tout tenir sur une ligne. Mais si le but est de
lancer un script à partir du crontab, c'est facile. L'avantage du
script, c'est que tu peux le faire évoluer sans avoir à modifier ton
crontab.
--
Si vous avez du temps à perdre :
https://scarpet42.gitlab.io
Le Sat, 25 Jul 2020 21:58:01 +0000, Stéphane CARPENTIER a écrit :
Ça me semble plus propre de faire un test sur l'existence du répertoire avant de lancer ta commande. Parce qu'une commande a plusieurs raisons d'échouer. Et puis tu peux en profiter pour éviter de sauvegarder des répertoires vides en t'assurant que si le répertoire existe, il contient des fichiers.
Certes. Je vais réfléchir à la façon de mettre ça en place. Mais sinon, pour répondre à ma question initiale, tu ne vois pas mieux que le "|| true" ?
Ben si, de faire un test sur l'existence du répertoire avant de lancer la commande. Si tu veux avoir ta commande dans le crontab, ça va être assez subtile de faire tout tenir sur une ligne. Mais si le but est de lancer un script à partir du crontab, c'est facile. L'avantage du script, c'est que tu peux le faire évoluer sans avoir à modifier ton crontab. -- Si vous avez du temps à perdre : https://scarpet42.gitlab.io
pehache
Le 25/07/2020 à 23:58, Stéphane CARPENTIER a écrit :
Le 25-07-2020, Christophe PEREZ a écrit :
Le Sat, 25 Jul 2020 08:36:00 +0000, Nicolas George a écrit :
Je trouve que c'est sur ce point qu'il vaudrait mieux réfléchir avant de cacher l'erreur.
Et bien j'ai cherché, mais ça semble être le processus normal de bacula. S'il y a une erreur en résultat d'une commande sur le "fileset", il ne lance pas la sauvegarde. J'utilise bacula depuis pas mal d'années. Tout fonctionne très bien. J'ai juste installé une nouvelle machine, et oublié de créer ces répertoires vides, et du coup, la sauvegarde a échoué. Je me suis dit qu'il serait donc peut-être bien que je fasse en sorte que l'absence de ce répertoire (et là seulement) ne provoque pas l'erreur qui empêche la sauvegarde. Je ne vois pas trop le risque que je prends.
Ça me semble plus propre de faire un test sur l'existence du répertoire avant de lancer ta commande.
Ca ne va pas forcément résoudre le problème, car [ -d dossier ] && ls dossier va renvoyer une erreur si le test échoue. -- "...sois ouvert aux idées des autres pour peu qu'elles aillent dans le même sens que les tiennes." (ST sur fr.bio.medecine) "Je suis ATARIste, et j'ai bien l'intention que l'on me respecte ici." (FLC sur fr.comp.sys.atari)
Le 25/07/2020 à 23:58, Stéphane CARPENTIER a écrit :
Le 25-07-2020, Christophe PEREZ <chris@novazur.fr> a écrit :
Le Sat, 25 Jul 2020 08:36:00 +0000, Nicolas George a écrit :
Je trouve que c'est sur ce point qu'il vaudrait mieux réfléchir avant de
cacher l'erreur.
Et bien j'ai cherché, mais ça semble être le processus normal de bacula.
S'il y a une erreur en résultat d'une commande sur le "fileset", il ne
lance pas la sauvegarde.
J'utilise bacula depuis pas mal d'années. Tout fonctionne très bien. J'ai
juste installé une nouvelle machine, et oublié de créer ces répertoires
vides, et du coup, la sauvegarde a échoué. Je me suis dit qu'il serait
donc peut-être bien que je fasse en sorte que l'absence de ce répertoire
(et là seulement) ne provoque pas l'erreur qui empêche la sauvegarde.
Je ne vois pas trop le risque que je prends.
Ça me semble plus propre de faire un test sur l'existence du répertoire
avant de lancer ta commande.
Ca ne va pas forcément résoudre le problème, car
[ -d dossier ] && ls dossier
va renvoyer une erreur si le test échoue.
--
"...sois ouvert aux idées des autres pour peu qu'elles aillent dans le
même sens que les tiennes." (ST sur fr.bio.medecine)
"Je suis ATARIste, et j'ai bien l'intention que l'on me respecte ici."
(FLC sur fr.comp.sys.atari)
Le 25/07/2020 à 23:58, Stéphane CARPENTIER a écrit :
Le 25-07-2020, Christophe PEREZ a écrit :
Le Sat, 25 Jul 2020 08:36:00 +0000, Nicolas George a écrit :
Je trouve que c'est sur ce point qu'il vaudrait mieux réfléchir avant de cacher l'erreur.
Et bien j'ai cherché, mais ça semble être le processus normal de bacula. S'il y a une erreur en résultat d'une commande sur le "fileset", il ne lance pas la sauvegarde. J'utilise bacula depuis pas mal d'années. Tout fonctionne très bien. J'ai juste installé une nouvelle machine, et oublié de créer ces répertoires vides, et du coup, la sauvegarde a échoué. Je me suis dit qu'il serait donc peut-être bien que je fasse en sorte que l'absence de ce répertoire (et là seulement) ne provoque pas l'erreur qui empêche la sauvegarde. Je ne vois pas trop le risque que je prends.
Ça me semble plus propre de faire un test sur l'existence du répertoire avant de lancer ta commande.
Ca ne va pas forcément résoudre le problème, car [ -d dossier ] && ls dossier va renvoyer une erreur si le test échoue. -- "...sois ouvert aux idées des autres pour peu qu'elles aillent dans le même sens que les tiennes." (ST sur fr.bio.medecine) "Je suis ATARIste, et j'ai bien l'intention que l'on me respecte ici." (FLC sur fr.comp.sys.atari)
Marc SCHAEFER
Stéphane CARPENTIER wrote:
Ben si, de faire un test sur l'existence du répertoire avant de lancer la commande.
non atomique, faire plutôt `cd répertoire && suite', dans ce cas.
Stéphane CARPENTIER <sc@fiat-linux.fr> wrote:
Ben si, de faire un test sur l'existence du répertoire avant de lancer
la commande.
non atomique, faire plutôt `cd répertoire && suite', dans ce cas.
Ben si, de faire un test sur l'existence du répertoire avant de lancer la commande.
Non atomique, faire plutôt `cd répertoire && suite', dans ce cas. ou if cd répertoire; then else; fi si l'on veut éviter l'abort dû au set -e
Jo Engo
Le Sun, 26 Jul 2020 08:11:55 +0200, pehache a écrit :
[ -d dossier ] && ls dossier va renvoyer une erreur si le test échoue.
if [ -d dossier ] ; then ls dossier ; fi ne renverra pas d'erreur intempestive. -- Travailler donc pour la gloire, et qu'un solide gain Ne soit jamais l'objet d'un illustre écrivain. -+- Nicolas Boileau, Art poétique -+-
Le Sun, 26 Jul 2020 08:11:55 +0200, pehache a écrit :
[ -d dossier ] && ls dossier
va renvoyer une erreur si le test échoue.
if [ -d dossier ] ; then ls dossier ; fi
ne renverra pas d'erreur intempestive.
--
Travailler donc pour la gloire, et qu'un solide gain
Ne soit jamais l'objet d'un illustre écrivain.
-+- Nicolas Boileau, Art poétique -+-
Le Sun, 26 Jul 2020 08:11:55 +0200, pehache a écrit :
[ -d dossier ] && ls dossier va renvoyer une erreur si le test échoue.
if [ -d dossier ] ; then ls dossier ; fi ne renverra pas d'erreur intempestive. -- Travailler donc pour la gloire, et qu'un solide gain Ne soit jamais l'objet d'un illustre écrivain. -+- Nicolas Boileau, Art poétique -+-