# Script de copie sur le réseau, ptit soucis



## sfeltan (29 Juin 2006)

voila, j'utilise le script backup_afp.sh chopé sur http://xrings.net/xrings/article.php3?id_article=325 , ça marche pas mal sauf qu'il ne démonte pas lecteur après chaque copie...
Qq1 aurait une idée??? Car à chaque fois ça ouvre une page finder et comme ce script va étre placé sur un poste rarement utilisé, ça serait cool d'éviter 50 fenétres finder quand on se sert du mac serveur sur lequel il va étre installé...


----------



## sfeltan (29 Juin 2006)

En fait le problème est: quand je lance ce script par le terminal, il démonte bien le lecteur réseau qu'il créé. Mais dès qu'il est programmé dans crontab avec un autre script (un script qui sauvegarde un fichier qui est envoyé sur le réseau par le script backup_afp.sh), non seulement il ne démonte jamais le lecteur réseau mais il ouvre une page finder, qui donne accès au poste réseau, à chaque éxécution du script...


----------



## sfeltan (29 Juin 2006)

Et la ligne umount -fv /Volumes/"${nom_volume}" est bien en place, non commentée...


----------



## sfeltan (29 Juin 2006)

S'il vous plait! Quelqu'un pour éclairer ma lanterne??? 
Ca devient urgent, c'est ma dernière tache en tant que stagiaire, mon stage finit demain soir et je voudrais bien que ça marche.
Ca fait plusieurs jours que je travaille là dessus, je me prend là téte dessus, j'ai pas arréter d'arceler supermoquette (que je remercie sincérement de sa patiente et de ses supers conseils).
Ayez pitié d'un pauvre chtit stagiaire qu'on a largué sur des macs alors qu'il n'en avait jamais touché  y a encore 1 mois!!!


----------



## sfeltan (29 Juin 2006)

Voila mon script:



#! /bin/sh

# Script de sauvegarde automatique sur le serveur
# www.xrings.net - 2004 

serveur="123.123.123.123"         # utiliser l'un ou l'autre.

nom="admin" 
# nom avec lequel on se connecte au serveur

pass="" 
# Attention ce mot de passe est écrit en clair.

nom_volume="mac1" 
# C'est le nom du volume sur lequel vous allez vous connecter par défaut

source="Users/nathalie/wikidb.sql" 
# Ici on décide de sauvegarder tout le dossier de l'utilisateur Moi

cible="/Volumes/"${nom_volume}"/Backup" 
# on va stocker l'archive dans le sous-dossier Moi, du dossier archives qui se trouve sur volume_cible

nom_archive=$(basename "${source}") 
# récupère le nom exact du dossier

#***********************************************************************************

# Connexion au serveur via afp
open afp://"${nom}":"${pass}"@"${serveur}"/"${nom_volume}"

#    on fait une pause de 5 sec pour laisser le temps au volume de monter 
#+ dans le finder si ca ne suffit pas (réseau charger on peut passer à 10
sleep 5

/Library/MySQL/bin/mysqldump -u root -pobiwan wikidb > /Users/nathalie/wikidb.sql

# Archivage et compression

cp -f wikidb.sql "${cible}"/"${nom_archive}"


# Deconnexion du serveur
umount -fv /Volumes/mac1

exit 0


----------



## sfeltan (29 Juin 2006)

y a vraiment personne qui aurait un ptit coup de main à donner?


----------



## molgow (29 Juin 2006)

Peut-&#234;tre que le probl&#232;me vient du fait qu'un lecteur ne peut pas &#234;tre d&#233;mont&#233; par n'importe qui et cron n'a pas les permissions pour le umount mais pour le "open afp".
Je te d&#233;place dans Unix.


----------



## bompi (29 Juin 2006)

Par d&#233;faut, un &#233;l&#233;ment de la crontab est ex&#233;cut&#233; avec les droits de l'utilisateur de la crontab.
Si c'est 'root' (ce qui n'est pas tr&#232;s conseill&#233, le script devrait avoir le droit de monter le volume.

Mais ce que je ne comprends pas est l'utilisation de la commande 'open' pour ouvrir le volume distant ... Pour s&#251;r que 'open' a tendance &#224; ouvrir une fen&#234;tre du Finder. Pourquoi ne pas utiliser 'mount' ? Un probl&#232;me technique ?


----------



## sfeltan (30 Juin 2006)

pour étre honnéte, j'ai chopé le script sur http://xrings.net/xrings/article.php3?id_article=325  et j'ai juste efféctué les changements de paramétre (adresse IP...) vu que j'avais jamais touché à des script avant...
Je vais déja essayé en utilisateur root voir ce que ça donne.
Quand au mount, j'ai fait une tentative hier mais la doc du man mount m'a un peu découragé, je vais m'y repencher là dessus.


----------



## sfeltan (30 Juin 2006)

bon ba en planifiant dans crontab, en utilisateur root, ça ne change rien à mon probleme...


----------



## sfeltan (30 Juin 2006)

Autre fait bizarre, c'est que quand je lance la tahce manuellement (sh /backup2.sh) il me demande rien, fait la connection tt seul et démonte le lecteur, alors que quand c'est planifié dans crontab, il me demande la confirmation de connection et ne démonte pas le lecteur...


----------



## sfeltan (30 Juin 2006)

mais en fait le fait qu'il démonte pas le lecteur réseau, ça vient de quoi??? Du fait qu'il est "monté" avec open et démonté avec umount et du coup umount n'arrive pas à s'éxécuter? En gros c'est ça ou je me plante?


----------



## bompi (30 Juin 2006)

Le fait d'utiliser l'un (_open_) puis l'autre (_umount_) n'est pas g&#234;nant.
Mais il est plus logique, dans un script, d'utiliser la commande UN*X classique _mount_. Elle doit te permettre de faire ce que tu veux. Et elle ne devrait pas provoquer l'ouverture d'une fen&#234;tre de Finder. Tandis que _open_, par d&#233;faut, ouvre une fen&#234;tre de Finder quand on lui passe un dossier en param&#232;tre.
Disons que _mount_ est _exactement_ la commande &#224; utiliser. Aussi devrais-tu faire l'effort d'essayer de comprendre la page de manuel (ou regarder un _howto_ ou une FAQ sur Internet).


----------



## sfeltan (30 Juin 2006)

c'est ce que je fais, sur la page http://forums.macg.co/vbulletin/showthread.php?t=74758 je me suis inspiré de la ligne tapée pour mount mais mon terminal me renvois tjr l'erreur mount: afp://nathalie192.168.3.39/pao11: unknown special file or file system.


----------



## bompi (30 Juin 2006)

J'oubliais : tu devrais tatouiller ton script pour le debugger : en mettant des commandes qui &#233;crivent des choses int&#233;ressantes dans un fichier quelconque que tu lirais ensuite.
Par exemple pour voir la diff&#233;rence de contexte entre le lancement &#224; la main et le lancement par _cron_. Par exemple : 
	
	



```
set > /tmp/bof.log
```
Dans le fichier tu retrouves toutes les variables d'environnement : peut-&#234;tre y a-t-il une diff&#233;rence de contexte due au profil (_~/.bashrc_ ou _~/.profile_ ou _~/.bash_profile_ par exemple) de l'utilisateur concern&#233;.


----------



## bompi (30 Juin 2006)

Et la sous-commande _mount_afp_ ?


----------



## sfeltan (30 Juin 2006)

ba je viens de mater l'aide de mount_afp... Franchement c du chinois pour moi ces docs! bon je vais continuer à mater ça


----------



## sfeltan (30 Juin 2006)

j'ai tapé ceci:

mount afp://mac2:a@192.168.3.59/Users/JP

mac2 = poste à atteindre
a = mot de passe du poste
192.168.3.59 = adresse IP du mac à atteindre
/JP = répertoire à monter

Il me met cette erreur: mount: afp://pao8:a@192.168.3.49/Users/nathalie: unknown special file or file system.

D'après ce que j'ai compris c'est la bonne manip. Enfin apparement non


----------



## supermoquette (30 Juin 2006)

essaie deja 

afp://pao8:a@192.168.3.49

seul


----------



## sfeltan (30 Juin 2006)

ça fait tjr pareil: /backup.sh: line 33: afp://pao8:a@192.168.3.49: No such file or directory


----------



## supermoquette (30 Juin 2006)

la commande afp est du style

afp://username: pasword@adresseIP

ton pao8 est un username ou un nom de poste r&#233;seau ?


----------



## FjRond (30 Juin 2006)

supermoquette a dit:
			
		

> la commande afp est du style
> 
> afp://usernameasword@adresseIP
> 
> ton pao8 est un username ou un nom de poste r&#233;seau ?


Comment on fait pour ins&#233;rer un smiley dans une ligne de commande ?  

Je plaisante  

[edit]Je vois que c'est corrig&#233;; mais attention &#224; l'espace[/edit]


----------



## sfeltan (30 Juin 2006)

c le nom du mac, quand je vais sur Aller/Réseau, j'accéde a ce poste en cliquant sur PAO8. Donc je suppose que c'est un nom réseau.


----------



## sfeltan (30 Juin 2006)

FjRond a dit:
			
		

> Comment on fait pour insérer un smiley dans une ligne de commande ?
> 
> Je plaisante




On vera ça quand j'arriverais à monter le disque lol !!!!! ce qui est pas gagné


----------



## supermoquette (30 Juin 2006)

->

afp://nathalie:a@192.168.3.59/nathalie

ou

afp://nathalie:a@192.168.3.59


----------



## sfeltan (30 Juin 2006)

mais c'est pas possible!!!!!!!!!!!!!!!!!!!!!!!!!!
je fais copier coller de ce que tu me marque et mon terminal répond toujour: No such file or directory


----------



## sfeltan (30 Juin 2006)

je récapitule: nathalie = nom d'utilisateur du mac distant
a = mot de passe du mac distant
192.168.3.59 = adresse IP du mac distant. 
Théoriquement ce sont bien les valeurs a mettre dans les lignes que tu me donne, non?


----------



## supermoquette (30 Juin 2006)

a ben faut mettre le open devant 

open afp://.....

©'est bon ta partoche monte chez moi


----------



## sfeltan (30 Juin 2006)

ca monte??? bizarre, j'ai pas filé la vraie IP...


----------



## supermoquette (30 Juin 2006)

Je rigole...


----------



## sfeltan (30 Juin 2006)

ba ouai mais justement la manip est d'utiliser mount. 
Le hic c que quand je planifie mon script, tt marche bien sauf qu'il démonte pas et à l'execution suivante il me dit que la manip est impossible car le disque est déja monté.


----------



## sfeltan (30 Juin 2006)

supermoquette a dit:
			
		

> Je rigole...



je me disais aussi  
bon moi je me retape pour la 10eme fois la doc unix car ça m'énerve quand ça marche pas!!!


----------



## supermoquette (30 Juin 2006)

```
open afp://nathalie:a@192.168.3.59
```
marche pas ?


----------



## sfeltan (30 Juin 2006)

ça marche en lencement manuel, je tente en lancement par un crontab


----------



## da capo (30 Juin 2006)

Et est-ce qu'une commande comme celle l&#224; ferait l'affaire ?
pour monter

```
mount -t afp afp://utilisateur:mot_de_passe@adresse_ip/chemin nom_de_partage
```

et pour d&#233;monter

```
umount nom_de_partage
```

Je ne garantis rien.


----------



## sfeltan (30 Juin 2006)

Bon!!! Ca marche pas, tant pis, je me résous à la méthode simple: je monte le lecteur réseau en permanence (Aller/Se connecter au serveur...), je supprime les lignes de montage et démontage de mon script et comme on dit par chez moi, bastaaaaaaaaaaaa!!!


----------



## sfeltan (30 Juin 2006)

starmac a dit:
			
		

> Et est-ce qu'une commande comme celle là ferait l'affaire ?
> pour monter
> 
> ```
> ...





Ca ne marche pas non plus, j'ai quand même testé...
Bon je vais rester sur la méthode du lecteur tout le temps monté, ça marche, c'est pas le top top mais bon le résultat est le même...


----------



## molgow (30 Juin 2006)

sfeltan a dit:
			
		

> ba je viens de mater l'aide de mount_afp... Franchement c du chinois pour moi ces docs! bon je vais continuer à mater ça



Il faut prendre le temps de lire !
C'est pourtant pas une commande qui a l'air compliquée (très peu d'options), et il y a des exemples :



> EXAMPLES
> The following example illustrates how to mount the afp volume server.com-
> pany.com/volumename/ at the mount point /Volumes/mntpnt:
> 
> ...


----------



## da capo (30 Juin 2006)

Donc dans son cas : (guest repr&#233;sente le nom choisi pour le point de montage)

mkdir /Volumes/guest
mount_afp afp://nom_abr&#233;g&#233;:mot_de_passe@adresse_IP/nom_abr&#233;g&#233;/ /Volumes/guest

et pour d&#233;monter
umount /Volumes/guest

PS : j'ai essay&#233; et &#231;a marche.


----------



## bompi (1 Juillet 2006)

Ah bon ? Il y aurait donc des choses int&#233;ressantes dans les documentations  ? 

Tssss ... ces jeunes, &#231;a ne fait pas beaucoup d'effort pour lire ... (quoique ... mon fils lit tr&#232;s efficacement les notices de jeux GBA/DS  )


----------

