Как я могу заставить Automator смонтировать сетевой том?

12

Я пишу «скрипт» Automator, который хранится rsyncна моем MacBook Pro 10.6.3, для моего Ubuntu 10.10 HTPC. Я могу заставить Automator запускать мой сценарий оболочки для rsyncкоманд, но я не могу заставить Automator монтировать три тома на HTPC (папки для музыки, видео и изображений).

Я автоматически монтирую эти тома при входе в систему (эти компьютеры подключаются через сеть Wi-Fi), но иногда тома HTPC отключаются, поэтому я хочу перемонтировать их по умолчанию.

Есть ли способ смонтировать тома в Automator? Я тоже открыт для сценариев оболочки. Благодарность!

Ричард Херрон
источник

Ответы:

9

Я строю автоматизированные рабочие процессы, как это все время. Вам нужно только два действия, и они оба - действия «Файлы и папки».

1) Получить указанные серверы. Это позволит вам создать список общих ресурсов для подключения. Если вы можете сопоставить его из Finder -> Go -> Connect to server, вы можете использовать это.

2) Подключиться к серверам. Это будет подключаться к любым серверам, переданным ему (либо с указанных серверов, либо с серверов).

Бен Уайетт
источник
+ согласен: именно так я делаю это в рабочем процессе rsync, который я использую для синхронизации библиотеки iTunes. Убедитесь, что вы используете Извлечь тома, если не хотите, чтобы сетевой диск оставался подключенным после завершения рабочего процесса.
Роберт С. Чаччо
1
Извлечь тома также удобно, если вы хотите «обратный» рабочий процесс. Я использую описанную выше процедуру как часть рабочего процесса, который я запускаю, когда приступаю к работе (открываю программы, подключаюсь к серверам и даже удаленно в виртуальную машину). В конце дня у меня есть еще один, который отключает все мои серверы и закрывает все мои программы.
Бен Уайетт
6

Я использую следующий appleScript для монтирования каталогов вместе с MarcoPolo, чтобы сетевые общие ресурсы автоматически монтировались, когда я добираюсь и до офиса, и до дома.

Вам нужно изменить ИМЯ ПОЛЬЗОВАТЕЛЯ, ПАРОЛЬ, СЕРВЕР / SHARENAME и, возможно, smb: // в зависимости от типа вашего сервера.

tell application "Finder"
    try
        mount volume "smb://USERNAME:PASSWORD@SERVER/SHARENAME"
        delay 1
    end try
end tell

ОБНОВЛЕНИЕ : опция без MarcoPolo: вы можете сначала пропинговать сервер и пытаться подключиться только при получении ответа. Затем вы можете добавить этот скрипт в ваши элементы входа

(Допустим, вы пытаетесь подключиться к серверу с именем «some_server»)

-- (0) Check to see if there server exists by pinging it
set max_retry to 60
set k to 0
repeat while (do shell script "ping -c 1 some_server") contains "100% packet loss"
    delay 5
    set k to k + 1
    if k > max_retry then error "Server is not responding for predefined period." number 8000
end repeat

-- (1) It exists, mount the volume
tell application "Finder"
    try
        mount volume "smb://USERNAME:PASSWORD@some_server/SHARENAME"
        delay 1
    end try
end tell
Джейсон
источник