Αυτοματοποίηση του mounting στο Mac Os X

Published by Petrakeas in Software

Screen-shot-2010-06-01-at-1

Ένα από τα πρώτα πράγματα που ήθελα να κάνω στο mac ήταν να μπορώ να δω τα shared drives των Windows (samba). Το Mac Os X λόγω της φύσης του δίνει τη δυνατότητα να κάνεις κάτι με πολλούς τρόπους. Έτσι βρήκα αυτό το post που δείχνει 10 διαφορετικούς τρόπους για να κάνω αυτό που ήθελα. Εγώ θα επικεντρωθώ σε 2 τρόπους και προεκτάσεις που σκέφτηκα. Η διαδικασία δεν είναι τόσο πολύπλοκη όσο ίσως σας φανεί με την πρώτη ματιά.

Ο πρώτος τρόπος εκμεταλλεύεται το autofs το οποίο ενσωματώθηκε στο Mac os X 10.5 και πάνω. Το mounting γίνεται αυτόματα στην “καρδιά” του filesystem. Το πλεονέκτημα αυτού του τρόπου είναι ότι αν μία εφαρμογή χρειαστεί πρόσβαση στον απομακρυσμένο φάκελο αυτός γίνεται αυτόματα mount. Έτσι αν έχετε εκεί τη βιβλιοθήκη του itunes τα κομμάτια θα είναι συνεχώς διαθέσιμα. Ωστόσο ο finder δεν εμφανίζει τους φακέλους όπου έγινε το mount όπως θα έπρεπε, αλλά τα δείχνει σαν shortcuts που οδηγούν στο mounded drive. Δηλαδή αλλιώς τα εμφανίζει το Gui του Mac Os και αλλιώς είναι στην πραγματικότητα όπως επιβεβαιώνει και το terminal. Το μεγάλο πρόβλημα αυτής τη προσέγγισης είναι ότι αν χαθεί η σύνδεση με τον server τότε το “automount” τρώει κόλλημα και παίρνει μαζί του όποιο άλλο application ζητάει πρόσβαση στους απαμακρυσμένους φακέλους. Το κόλλημα είναι τόσο μεγάλο που ο mac δεν μπορεί καν να κλείσει. Αυτό μου φαίνεται απαράδεκτο για ένα λειτουργικό που ισχυρίζεται ότι είναι το πιο εξελιγμένο του πλανήτη..

Ο δεύτερος τρόπος είναι με bash script και είναι πιο high level. Δουλεύει καλύτερα με τον finder και όταν διακοπεί η σύνδεση βγαίνει (συνήθως) μήνυμα ώστε να γίνει eject το drive. Ωστόσο πρέπει εσείς να προνοείτε για το mount πριν μια εφαρμογή ζητήσει πρόσβαση στον απομακρυσμένο φάκελο, διαφορετικά αυτό που θα δει είναι ένας απλός τοπικός φάκελος. Τις εντολές του terminal τις έσωσα σε ένα bash script (με κατάληξη command) το οποίο μπορεί να εκτελεστεί με διπλό click. Έκανα 2 scripts: mount.command, unmount.command . Το αρνητικό είναι ότι ανοίγει και το terminal.app όταν τα τρέχω με διπλό κλικ. Οπότε αποφάσισα να αυτοματοποιήσω λίγο ακόμα τη διαδικασία.

Έτσι έβαλα τα scripts σε ένα φάκελο που να μπορεί να δει το Quicksilver. Οπότε ανοίγω το QS, αρχίζω να γράφω “mount” πατάω enter και εκτελείται το script εσωτερικά χωρίς να ανοίξει το terminal!! Και εμφανίζονται εκεί που πρέπει τα drives μου! Ένας άλλος τρόπος αυτοματοποίησης με χρήση applescript είναι η αντιστοίχηση του “mount.command” με το άνοιγμα του φακέλου από τον finder. Έτσι όταν πάει να μπει κανείς μέσω Finder στο φάκελο, τα drives γίνονται αυτόματα mount. Μπορεί κανείς να δημιουργήσει και services ώστε με δεξί κλικ να εμφανίζονται οι επιλογές mount, unmount. Το τελευταίο γίνεται εύκολα με τον automator και χρήση των mount, unmount scripts.

Συμπερασματικά το Mac Os δίνει πολλούς τρόπους για το mounting samba (και όχι μόνο) drives, ωστόσο η βασική υλοποίηση στον πυρήνα δεν είναι αυτή που θα έπρεπε. Από αυτά που διαβάζω πριν το Snow Leopard τα πράγματα ήταν χειρότερα, αλλά χρειάζεται περαιτέρω βελτίωση γιατί καλώς ή κακώς στα windows αυτά τα προβλήματα δεν υφίστανται. Παρακάτω ακολουθούν οδηγίες για τις υλοποιήσεις.

1ος τρόπος: autofs

Αυτός είναι ο 8ος τρόπος από το post. Έχω τροποποιήσει το auto_master ώστε στους υποφακέλους του “Users/petrakeas/External2“  να γίνονται τα mounts όπως υπαγορεύει το “auto_sm”. Δηλαδή στο “Users/petrakeas/External2/Documents” γίνεται mount το “My Documents” shared folder από το Windows Pc μου. Το αντίστοιχο συμβαίνει για το φάκελο “workspace”.

Screen shot 2010-06-01 at 1.18.27 PM

Screen shot 2010-06-01 at 1.18.11 PM

Αφού γίνουν οι αλλαγές στα αρχεία αυτά τρέχω από terminal: sudo automount -vc και πλέον έχει ολοκληρωθεί η διαδικασία. Ακόμα και μετά από restart ή ο,τιδήποτε οι αλλαγές παραμένουν.

2ος τρόπος: bash + automation

Αυτός είναι ο 9ος τρόπος από το post. Σε ένα text editor γράφω τις εντολές για το mounting και ονομάζω το αρχείο: mount.command. Το αρχείο πρέπει να είναι εκτελέσιμο (chmod +x). Φτιάχνω και το αντίστοιχο unmount.command.

Screen shot 2010-06-01 at 1.16.24 PM

Screen shot 2010-06-01 at 1.17.01 PMΤώρα βάζω το φάκελο scripts στα catalogs του quicksilver και πλέον μπορώ από εκεί να εκτελώ τα scripts.

Εναλλακτικά φτιάχνω ένα applescript (mnt.scpt) το οποίο καλεί τo mount.command όταν κάποιος ανοίγει έναν φάκελο. Πηγαίνω στο φάκελο “Users/petrakeas/External/” , δεξί click “Folder Action Setup” και εκεί επιλέγω το mnt.scpt. Τώρα όταν κάποιος πηγαίνει στο “External” αυτόματα γίνονται mount τα “My Documents” και “Workspace” στο εσωτερικό του.

Screen shot 2010-06-01 at 1.15.47 PMΤο αποτέλεσμα στον Finder φαίνεται στην κεντρική εικόνα του post και είναι το ίδιο όποιον τρόπο και αν ακολουθήσει κανείς.

Comments (4)

Sleepwatcher: ο Mac κοιμάται και η τύχη του δουλεύει at Wiggler
February 1st, 2011 at 2:19 am

[...] Για παράδειγμα όταν κλείνω το lid το έχω βάλει να κάνει unmount τα network drives και όταν το ανοίγω τα κάνει mount αυτόματα. Το [...]

jewish holidays 2014 australia
July 27th, 2014 at 6:20 pm

Thanks a bunch for sharing this with all folks you really recognize what you are speaking about!
Bookmarked. Please additionally discuss with my website =).
We will have a hyperlink alternate arrangement among us

jewish holidays calendar
August 6th, 2014 at 9:08 am

I have been exploring for a little bit for any high-quality articles or weblog posts
in this kind of house . Exploring in Yahoo I
eventually stumbled upon this web site. Reading this information So i am happy to express that I’ve an incredibly good uncanny
feeling I came upon just what I needed. I such a lot unquestionably will
make sure to do not omit this web site and
provides it a glance regularly.

escortdelux.info
August 9th, 2014 at 7:39 pm

I’m not that much of a online reader to be honest but your
blogs really nice, keep it up! I’ll go ahead and
bookmark your website to come back down the road.

All the best