IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Décaler légèrement le montage auto d'un lecteur réseau au démarrage [Résolu]
Options
_Panta
posté 20 Jan 2023, 18:54
Message #1


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 7 796
Inscrit : 24 Dec 2006
Lieu : "Over The Rainbow"
Membre no 76 401



Salut,

Sur le nouvel iMac M1 d'un client, sous Ventura, il y a un gros NAS connecté et son dossier principal se monte automatiquement au démarrage sur le MAC.
Le souci que j'ai est que la requête du montage du lecteur réseau semble se faire avant la négociation du bail IP et donc ne monte pas et affiche une erreur. Quand je relance ca marche, normal vu que le bail est donné. ca monte un boot sur 3 ou 4 seulement. Le poste est en Wi-Fi, passant par une Livebox fibre. Le poste étant distant j'ai pas le moyen de passer le cabler en ethernet pour l'instant (faut-y pas être *c*o*n*, j'ai cherché rapidement le port RJ45 quand je l'ai installé, en vain, je me suis r rapidement dit "ca y est, ils ont passé les iMac en tout Wifi" - Sauf que le port RJ45 est dans le bloc d'alimentation externe, passant par le cordon électrique, cela semble encapsulé dans un espèce de PoE maintenant - Donc j'essayerais si il récupère plus rapidement le bail en ethernet, mais je pourrais aller sur place avant 2 semaines tongue.gif )

Bref, c'est pas vraiment gênant car on peut toujours le monter à la main, mais c'est "pas propre" - Et j'aime bien quand c'est propre. Y a t'il moyen de décaler de 10 secondes, ou de lui dire de monter une fois le bail ip obtenu et pas avant ?

Merci et j'en profite pour vous souhaiter à tous une bonne année 2023 à tous

Ce message a été modifié par _Panta - 20 Jan 2023, 18:57.


--------------------
- Macbook Pro M1 Pro 16.2"
- Macbook Pro TouchBar 15.4" T1 - 512GB/core i7@2,7Ghz - A VENDRE - Clavier neuf et batterie neuve, changés début 2023 (Garanti 6 mois) - SSD Samsung nVme toujours à 2,5GB/s - Gris sidéral
- Macbook Air 13,3" core i5 - iMac 27" core i5 - iPhone14 - Apple Watch 8
- Fbx Delta Devialet
Go to the top of the page
 
+Quote Post
fmereo
posté 20 Jan 2023, 18:57
Message #2


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 497
Inscrit : 4 Oct 2002
Membre no 3 936



Hello,

un montage par AppleScript avec un petit "delay" au début de quelques secondes pourrait faire l'affaire non ?

L'AS devra être placé dans les ouvertures de session et basta.

A+

Ce message a été modifié par fmereo - 20 Jan 2023, 18:57.
Go to the top of the page
 
+Quote Post
_Panta
posté 20 Jan 2023, 19:03
Message #3


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 7 796
Inscrit : 24 Dec 2006
Lieu : "Over The Rainbow"
Membre no 76 401



Citation (fmereo @ 20 Jan 2023, 18:57) *
Hello,

un montage par AppleScript avec un petit "delay" au début de quelques secondes pourrait faire l'affaire non ?

A+

Oui je pensais à un truc du genre, ou modifier l'init.

Code
tell application "Finder"
    try
        mount volume "smb://URL_du_dossier_reseau" as user name "mon_login"
    end try
    delay 2
end tell


Je vais essayer ça, cela vous semble correct ? Ou je commence par le delay ?

Ce message a été modifié par _Panta - 20 Jan 2023, 19:06.


--------------------
- Macbook Pro M1 Pro 16.2"
- Macbook Pro TouchBar 15.4" T1 - 512GB/core i7@2,7Ghz - A VENDRE - Clavier neuf et batterie neuve, changés début 2023 (Garanti 6 mois) - SSD Samsung nVme toujours à 2,5GB/s - Gris sidéral
- Macbook Air 13,3" core i5 - iMac 27" core i5 - iPhone14 - Apple Watch 8
- Fbx Delta Devialet
Go to the top of the page
 
+Quote Post
_Panta
posté 20 Jan 2023, 19:21
Message #4


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 7 796
Inscrit : 24 Dec 2006
Lieu : "Over The Rainbow"
Membre no 76 401



Super, ça marche tres bien.
par contre quelle est la syntaxe AS pour pré remplir le password après as user name "mon_login"
pas besoin, il s'enregistre au premier login du script, pas besoin de laisser en clair dans le script, ce qui n'est jamais une bonne chose

Ce message a été modifié par _Panta - 20 Jan 2023, 19:43.


--------------------
- Macbook Pro M1 Pro 16.2"
- Macbook Pro TouchBar 15.4" T1 - 512GB/core i7@2,7Ghz - A VENDRE - Clavier neuf et batterie neuve, changés début 2023 (Garanti 6 mois) - SSD Samsung nVme toujours à 2,5GB/s - Gris sidéral
- Macbook Air 13,3" core i5 - iMac 27" core i5 - iPhone14 - Apple Watch 8
- Fbx Delta Devialet
Go to the top of the page
 
+Quote Post
g4hd
posté 20 Jan 2023, 19:52
Message #5


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 9 746
Inscrit : 9 Nov 2001
Lieu : Pays d’Aix
Membre no 1 255



Citation (_Panta @ 20 Jan 2023, 19:21) *
Super, ça marche tres bien.
par contre quelle est la syntaxe AS pour pré remplir le password après as user name "mon_login"
pas besoin, il s'enregistre au premier login du script, pas besoin de laisser en clair dans le script, ce qui n'est jamais une bonne chose

Intéressant !
Du coup, peux-tu indiquer la nouvelle écriture d'AS sans le mdp ?


--------------------
 Mac Studio M1max 32 Go 1 To - Sonoma - Eizo 27" + Nec 21" - usage PAO
 MBp14 M2pro 16 Go 1 To - Sonoma - iPhone 15 128 - iWatch 6
 abonné VVMac
Go to the top of the page
 
+Quote Post
_Panta
posté 20 Jan 2023, 20:30
Message #6


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 7 796
Inscrit : 24 Dec 2006
Lieu : "Over The Rainbow"
Membre no 76 401



Oui, le voila.

Il faut donc bien commencer par le delay, car sinon il va créer un dossier sur le bureau mais le montera plus tard (j'ai associé une icône particulière à ce nas, et donc au lancement du script il créait le dossier bleu classique au nom du dossier distant, et 15sec plus tard l'icône du NAS apparait une fois monté - C'est donc plus propre en commençant par delay, ca me monte l'icône personnalisé après 15sec, mais directement et pas en 2 étapes.
Il faut l'enregistrer en tant qu'app également, puis la glisser dans user/ouverture

Code
tell application "Finder"
    delay 15
    try
        mount volume "smb://nas.xxxxx.com/xxxxx-nas" as user name "xxxxx"
    end try
end tell


Au premier lancement au prompt de login, cocher "mémoriser le mot de passe" et tout roule.

Ce message a été modifié par _Panta - 20 Jan 2023, 20:37.


--------------------
- Macbook Pro M1 Pro 16.2"
- Macbook Pro TouchBar 15.4" T1 - 512GB/core i7@2,7Ghz - A VENDRE - Clavier neuf et batterie neuve, changés début 2023 (Garanti 6 mois) - SSD Samsung nVme toujours à 2,5GB/s - Gris sidéral
- Macbook Air 13,3" core i5 - iMac 27" core i5 - iPhone14 - Apple Watch 8
- Fbx Delta Devialet
Go to the top of the page
 
+Quote Post
_Panta
posté 20 Jan 2023, 21:30
Message #7


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 7 796
Inscrit : 24 Dec 2006
Lieu : "Over The Rainbow"
Membre no 76 401



Je l'ai un peu enrichi, 3 essais à 15/30/60 sec et abandon, avec notification.Je vais aussi lui mettre une petite alerte mail à mon encontre pour m'avertir d'un éventuel dysfonctionnement

Code
tell application "Finder"
    delay 15
    try
        mount volume "smb://nas.xxxx.com/xxxx-nas" as user name "xxxx"
    on error
        display dialog "NAS Injoignable" & return & "Nouvel essai dans 30 secondes"
        try
            delay 30
            mount volume "smb://nas.xxxx.com/xxxx-nas" as user name "xxxx"
        on error
            display dialog "NAS Injoignable" & return & "Dernier essai dans 60 secondes"
            try
                delay 60
                mount volume "smb://nas.xxxx.com/xxxx-nas" as user name "xxxxx"
            on error
                display dialog "connexion impossible: " & return & "Abandon"
                return
            end try --dernier essai
        end try --second Esai
    end try --premier Essai
end tell


Ce message a été modifié par _Panta - 20 Jan 2023, 21:44.


--------------------
- Macbook Pro M1 Pro 16.2"
- Macbook Pro TouchBar 15.4" T1 - 512GB/core i7@2,7Ghz - A VENDRE - Clavier neuf et batterie neuve, changés début 2023 (Garanti 6 mois) - SSD Samsung nVme toujours à 2,5GB/s - Gris sidéral
- Macbook Air 13,3" core i5 - iMac 27" core i5 - iPhone14 - Apple Watch 8
- Fbx Delta Devialet
Go to the top of the page
 
+Quote Post
PBell
posté 20 Jan 2023, 21:44
Message #8


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 264
Inscrit : 7 Dec 2013
Lieu : Ile de France
Membre no 188 169



Bonsoir,
Une petite suggestion: au lieu d'attendre systématiquement 15 ou 20 secondes avec la commande delay, on pourrait tester si le Mac est connecté ou pas.

Lorsque le Mac est connecté (Ethernet ou Wifi), la commande shell "ifconfig" renvoie en principe le masque réseau et l'adresse broadcast. En associant cette commande à la commande grep pour filtrer le résultat, on obtient soit une chaine vide (pas connecté) soit une chaine non vide (avec l'adresse Ip, le masque et l'adresse broadcast).

Le script ci-dessous boucle en attendant que la connexion se fasse ou s'arrête après 20 secondes (si il n'y a aucun réseau).

CODE
set NbEssais to 20 -- 20 secondes max !
set T to 0
set R to ""
repeat until (T > NbEssais) or (R is not "")
    delay 1
    set T to T + 1
    set R to do shell script "ifconfig -m | grep broadcast"
end repeat


A la fin de ce script, si R est vide, tu dois signaler une erreur (ou arrêter le script ?), sinon, tu peux mettre la suite de ton script avec le mount de ton NAS.

Cordialement


--------------------
iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8
iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11
Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8
Go to the top of the page
 
+Quote Post
_Panta
posté 20 Jan 2023, 23:23
Message #9


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 7 796
Inscrit : 24 Dec 2006
Lieu : "Over The Rainbow"
Membre no 76 401



Citation (PBell @ 20 Jan 2023, 21:44) *
Bonsoir,
Une petite suggestion: au lieu d'attendre systématiquement 15 ou 20 secondes avec la commande delay, on pourrait tester si le Mac est connecté ou pas.

Lorsque le Mac est connecté (Ethernet ou Wifi), la commande shell "ifconfig" renvoie en principe le masque réseau et l'adresse broadcast. En associant cette commande à la commande grep pour filtrer le résultat, on obtient soit une chaine vide (pas connecté) soit une chaine non vide (avec l'adresse Ip, le masque et l'adresse broadcast).

Le script ci-dessous boucle en attendant que la connexion se fasse ou s'arrête après 20 secondes (si il n'y a aucun réseau).

Code
set NbEssais to 20 -- 20 secondes max !
set T to 0
set R to ""
repeat until (T > NbEssais) or (R is not "")
    delay 1
    set T to T + 1
    set R to do shell script "ifconfig -m | grep broadcast"
end repeat


A la fin de ce script, si R est vide, tu dois signaler une erreur (ou arrêter le script ?), sinon, tu peux mettre la suite de ton script avec le mount de ton NAS.

Cordialement

C'est effectivement bien plus élégant, je vais tester ta solution.Merci smile.gif

J'ai rajouté une alerte iMessage à mon script précédent plutôt qu'un mail, et ça marche nickel.


--------------------
- Macbook Pro M1 Pro 16.2"
- Macbook Pro TouchBar 15.4" T1 - 512GB/core i7@2,7Ghz - A VENDRE - Clavier neuf et batterie neuve, changés début 2023 (Garanti 6 mois) - SSD Samsung nVme toujours à 2,5GB/s - Gris sidéral
- Macbook Air 13,3" core i5 - iMac 27" core i5 - iPhone14 - Apple Watch 8
- Fbx Delta Devialet
Go to the top of the page
 
+Quote Post
_Panta
posté 21 Jan 2023, 00:06
Message #10


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 7 796
Inscrit : 24 Dec 2006
Lieu : "Over The Rainbow"
Membre no 76 401



Alors j'y suis presque, une fois qu'il chope l'ip le nas se monte, mais ca coince si je n'ai pas de connection, j'ai immédiatement et pas après 20 secondes une erreur "la commande s'est arrêté avec un état non nul" (car R est vide) et semblent pas boucler, l'alerte iMessage n'est pas envoyé. Je corrige comment ?

Code
set NbEssais to 20 -- 20 secondes max !
set T to 0
set R to ""
repeat until (T > NbEssais) or (R is not "")
    delay 1
    set T to T + 1
    set R to do shell script "ifconfig -m | grep broadcast"
end repeat

tell application "Finder"
    try
        mount volume "smb://nas.lxxxxx.com/xxxx-nas" as user name "xxxxx"
    on error
        display dialog "NAS Injoignable"
        tell application "Messages"
            set targetBuddyPhone to "+336xxxxx"
            set targetMessage to "Erreur de connexion au NAS"
            set targetService to 1st account whose service type = iMessage
            set targetBuddy to participant targetBuddyPhone of targetService
            send targetMessage to targetBuddy
        end tell
    end try
end tell


Ce message a été modifié par _Panta - 21 Jan 2023, 00:07.


--------------------
- Macbook Pro M1 Pro 16.2"
- Macbook Pro TouchBar 15.4" T1 - 512GB/core i7@2,7Ghz - A VENDRE - Clavier neuf et batterie neuve, changés début 2023 (Garanti 6 mois) - SSD Samsung nVme toujours à 2,5GB/s - Gris sidéral
- Macbook Air 13,3" core i5 - iMac 27" core i5 - iPhone14 - Apple Watch 8
- Fbx Delta Devialet
Go to the top of the page
 
+Quote Post
PBell
posté 21 Jan 2023, 08:47
Message #11


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 264
Inscrit : 7 Dec 2013
Lieu : Ile de France
Membre no 188 169



Bonjour,

Si, à l'issue des 20 tentatives (donc 20 secondes), R est toujours vide, c'est que l'établissement de la connexion est soit impossible, soit très lent.
Si je suppose qu'il est très lent, je commencerai pas augmenter le nombre de tentatives: pour cela, il suffit d'augmenter la valeur de la variable NbEssais de 20 à...30 ?
Bien que ne connaissant pas ton réseau, il me semble toutefois surprenant que ton serveur DHCP mette plus de 20s pour répondre. Mais peut être as tu un réseau particulier ?

Le dernier cas est que ton Mac ne se connecte pas du tout (absence de réseau ou toutes autres raisons).
Dans ce cas, ton script ne doit pas chercher à monter le NAS, mais s'arrêter avec une alerte.

Il te suffit d'ajouter au script un test if sur la valeur de R.
J'ai repris l'essentiel de ton script, mais j'ai mis le bloc d'envoi du message et l'information à l'utilisateur en sous routine ("Handler" pour les puristes). Cela me permet de l'appeler 2 fois avec des messages différents selon l'origine du problème.
Dans le cas où la connexion réseau est faite, mais la connexion au NAS ne se fait pas, j'ai mis un message qui me semble plus explicite avec la valeur de R. A toi d'adapter.

CODE
set NbEssais to 20 -- 20 secondes max !
set T to 0
set R to ""
repeat until (T > NbEssais) or (R is not "")
    delay 1
    set T to T + 1
    set R to do shell script "ifconfig -m | grep broadcast"
end repeat

if R = "" then
    envoie_erreur("Connexion au réseau impossible après " & NbEssais & " tentatives.")
    return -- fin du script
end if

try
    tell application "Finder" to mount volume "smb://nas.lxxxxx.com/xxxx-nas" as user name "xxxxx"
on error
    envoie_erreur("Connection NAS impossible, malgré la connexion au réseau: " & R)
end try


on envoie_erreur(Mtexte)
    display dialog "NAS Injoignable"
    tell application "Messages"
        set targetBuddyPhone to "+336xxxxx"
        set targetMessage to Mtexte
        set targetService to 1st buddy whose service type = iMessage
        set targetBuddy to participant targetBuddyPhone of targetService -- erreur de compilation chez moi !
        send targetMessage to targetBuddy
    end tell
end envoie_erreur


J'ai une erreur de compilation sur la ligne indiquée en commentaire. Mais comme elle fonctionne dans ton script, je l'ai laissée.

Enfin, il se peut que ton réseau aie des caractéristiques très particulières (surtout ton serveur DHCP). Dans ce cas, dis moi quelle valeur de R tu récupères.

Ultime hypothèse: ta connexion réseau se fait, ton NAS (ou ton routeur) sont particulièrement lents à répondre (vraiment lents !)
Tu pourrais envisager de faire une boucle sur le mount pour faire plusieurs tentatives et n'envoyer l'erreur qu'à l'issue du nombre de tentatives choisi. Pour cela, c'est la partie try/end try qui doit être mise en boucle Repeat until/End repeat, similaire à la boucle de connexion réseau.

Cordialement


--------------------
iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8
iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11
Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8
Go to the top of the page
 
+Quote Post
_Panta
posté 21 Jan 2023, 14:36
Message #12


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 7 796
Inscrit : 24 Dec 2006
Lieu : "Over The Rainbow"
Membre no 76 401



Alors smile.gif

Merci beaucoup, c'est nickel. Je n'avais fait d'Apple script depuis une bonne dizaine d'année, le dernier pour le montage d'un ram disque, avec sauvegarde du contenu et reintegration au bout.

Les tests que je faisais la nuit dernière étaient en distant, donc resolution dns du domaine pour l'afficher chez moi, sur une machine qui elle même tapait le NAS en distant (l'iMac du client est chez lui, mais pas sur site du NAS); la j'ai pushé le script sur l'iMac distant, et après une demi douzaine de reboot test sans aucune erreur , on peut consider que c'est parfait, j'ai plus de souci.
Un avantage collatérale (y a pas que des damages) par rapport à un classique montage du volume par MacOS, c'est qu'il n'ouvre pas le fenêtre du dossier monté. Il récupère rapidement l'icône personnalisé, et pas besoin de fermer le finder. Comme j'en monte 3, 3 clics de moins . Et c'est plus propre.

Merci d'avoir pris le temps, j'apprécie wink.gif


--------------------
- Macbook Pro M1 Pro 16.2"
- Macbook Pro TouchBar 15.4" T1 - 512GB/core i7@2,7Ghz - A VENDRE - Clavier neuf et batterie neuve, changés début 2023 (Garanti 6 mois) - SSD Samsung nVme toujours à 2,5GB/s - Gris sidéral
- Macbook Air 13,3" core i5 - iMac 27" core i5 - iPhone14 - Apple Watch 8
- Fbx Delta Devialet
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 26th April 2024 - 07:33