如何使Automator挂载网络卷?


12

我正在写一个Automator“脚本”,该脚本将rsync我的10.6.3 MacBook Pro上的媒体传输到我的Ubuntu 10.10 HTPC。我可以使Automator运行Shell脚本来执行rsync命令,但不能使Automator在HTPC上安装三个卷(用于存储音乐,视频和图片的文件夹)。

登录时(这些计算机通过wifi网络连接),我会自动挂载这些卷,但是有时HTPC卷会被挂载,因此我想默认情况下重新挂载。

有没有办法在Automator中挂载卷?我也愿意使用Shell脚本。谢谢!


杰森(Jason),您能解释一下在Mac上将其添加到“登录项”中该怎么做,我的意思是:1.如何创建此脚本?2.我应该怎么做才能在Mac上启动时运行它?先感谢您!
sergio1974

Answers:


9

我一直都在构建自动化程序工作流。您只需要两个操作,它们都是“文件和文件夹”操作。

1)获取指定的服务器。这将使您构建要连接的共享列表。如果可以从Finder-> Go-> Connect to server进行映射,则可以使用它。

2)连接到服务器。这将连接到传递给它的任何服务器(从获取指定服务器或从询问服务器)。


+同意:这正是我在用于同步iTunes资料库的rsync工作流程中执行的操作。如果您不希望工作流程完成后网络驱动器保持连接状态,请确保使用“弹出卷”。
罗伯特·西亚乔

1
如果您需要“反向”工作流程,则弹出卷也很方便。在上班时,我将上面概述的过程用作工作流程的一部分(打开程序,连接到服务器,甚至远程进入虚拟机)。归根结底,我还有另一台可以断开所有服务器并退出所有程序的服务器。
Ben Wyatt

7

我使用以下applescriptMarcoPolo一起挂载目录,因此当我同时到达办公室和家中时,网络共享会自动挂载。

您将需要更改USERNAME,PASSWORD,SERVER / SHARENAME以及可能的smb://,具体取决于您的服务器类型。

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

更新:不带MarcoPolo的选项:您可以先对服务器执行ping操作,只有在收到响应后才尝试连接。然后,您可以将此脚本添加到您的登录项中

(假设您正在尝试连接到名为“ 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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.