Bonjour,
dlalleme a écrit:Bonjour Gaston,
Gaston a écrit:A l'évaluation des arguments on part en vrille.
l'empilement des shells fait qu'on explose l'environnement des process.
Supprimer le source de /etc/profile et bash_profile permet de passer outre.
Si tu donnes les droits d'exécution au script et que tu empliles pas un shell supplémentaire
ça passe
Concrètement, que faut-il faire ?
edite le fichier save.sh et commente les 2 lignes
- Code: Tout sélectionner
. /etc/profile
. /root/bash_profile
le bash_profile, finit par sourcer le /etc/bashrc qui contient entre autre des définitions de terminal sans parler des shells de /etc/profile.d appelés par /etc/profile. Ca commence à faire beaucoup de sous shell empilés
Il faut cependant retrouver ce qui était nécessaire dans cette opération. Je pense que seul le chemin absolu vers les commandes, vers le scripts sont nécessaires.
donc remplacer les définitions dans le script save.sh par :
DAR=/usr/bin/dar
MOUNT=/bin/mount
SED=/bin/sed
AWK=/bin/awk
DF=/bin/df
...
ou simplement une définition du PATH :
PATH=/sbin/e-smith:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin
on a pas besoin de plus dans le cron
Gaston a écrit:J'avoue qu'il y a d'autres choses qui me gènent en début de script.
Quoi donc ?
ça :
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/root:/root/save.sh:/usr/local/bin
mais j'ai pas pris le temps de lire le script pour l'instant
dlalemme a écrit:Les soucis ont commencé lors du passage en version 7 (pas de reconnaissance du lecteur de bande)...
Après quelques réglages mineurs, la contribs fonctionne sans problème jusqu'à ce matin où le lancement
manuel du script provoque l'erreur ci-dessous. Donc je pense que ce problème doit être dû à la dernière mise à jour de la SME.
je ne vois pas de quelle mise à jour tu parles, le SME sur lequel j'ai reproduit l'erreur est une machine
virtuelle installé avec l'image de Juillet sans aucune mises à jours.
Le problème ne survient que si tu tapes "
sh save.sh" avec les droits d'exécution pas de problème (mais, encore, j'ai peur)
Pour le lecteur de bande en SCSI, il peut s'agir du module "st" il semble préférable de charger le "sg" (sinon on se prends des codes d'erreur 256, mais j'ai pas encore trouvé la vrai solution)
Bien que si je suis revenu à BC c'est bien parceque ma bande est reconnue par le système et pas par
d'autre softs (backup2 par exemple
)
dlalemme a écrit:Au fait, j'ai la dernière version SME 7 et j'utilise la dernière version Backupcustom version TAR
c'est laquelle
je me prends la tête avec la gestion du "dar" pour des sauvegardes sur bandes
(mais bon je vais m'y mettre vu que c'est la direction que prennent Darell May et les autres)
A mon temps perdu j'essaie de comprendre le code et la logique sous jacente (j'ai un peu décroché depuis 2 ans et les premières version d'Argenlos).
et j'attendais d'avoir assez de bille pour fournir Unillenium (c'est lui qui a repris le flambeau, non?)
Il y a une grande avancée avec la création du fichier de fonctions, avec la séparation de la base de configuration
merci
Pour la gestion de l'espace disque libre (dans le bc-function), je propose :
- Code: Tout sélectionner
[root@srv34 ~]# diff bc-fonction.ori bc-fonction
113,114c113,114
< #CHEMIN=`/sbin/e-smith/db configuration getprop backupcustom chemin`
< CHEMIN=/home/e-smith/files/ibays/save/html
---
> CHEMIN=`/sbin/e-smith/db confBackupCustom getprop backupcustom chemin`
> #CHEMIN=/home/e-smith/files/ibays/save/html
171,178c171
< #détermination de la version de SME
< var=`/sbin/e-smith/db configuration getprop sysconfig ReleaseVersion`
< if [ "$var" == "6.0.1-01" -o "$var" == "6.0" ]
< then
< DISK_FREE_PHY=`df -P -t ext3 -m | awk ' /^\/dev/{sum+=$4} END {printf "%s", sum } '`
< else
< DISK_FREE_PHY=`df $CHEMIN | sed -e '1,2d' | awk ' {sum+=$3} END {printf "%s", sum } '`
< fi
---
> DISK_FREE_PHY=`/bin/df -P $CHEMIN | /bin/sed -e '1,1d' | /bin/awk '{print $4}'`
je ne vois en effet pas la raison de faire la somme de tous les espaces dispo dans tous les points de montage quand un seul nous intéresse.
(en fait j'ai eu le pb car j'ai mis l'ibay sur un autre disque et que le PATH du device de lvol1 est sur 2 lignes en SME7)
la modif est généralisable au deux versions, pas la peine de faire le test.
D'après ce que j'ai vu on peut faire la même chose dans l'interface cgi en récupérant le bc-chemin là aussi + modif de l'appel du perl dans le genre
- Code: Tout sélectionner
sub diskfree () {
my $libre="error";
my $bc_chemin = "/fs1";
#vefication espace disque
#Filesystem 1024-blocks Used Available Capacity Mounted on
#/dev/vx/dsk/gan_dg01/gan_lvol1 49574 810 46204 2% /fs1
if(open(DF, "/bin/df -P $bc_chemin|/bin/grep -v Mounted |")) {
while (<DF>) {
(undef, undef, undef, $libre) = split(/\s+/, $_);
}
return ($libre);
}
}
sauf que là ça ne marche que si on a installé le SME en anglais
et que c'est juste un draft de validation
j'ai aussi trouvé des traductions qui manque mais je sait plus où pour l'instant.
Dès que j'ai un peu de temps je m'y remet. La contrib m'a beaucoup servie en 5.6 et depuis que j'ai migré en 7 je suis un peu géné au entournure
G.
PS désolé pour la longueur du post