在applescript中使用多个rsync作业

在applescript中使用多个rsync作业,applescript,rsync,Applescript,Rsync,您好,我想使用AppleScript将文件从源Mac服务器复制到使用rsync的其他10台Mac服务器。我有基本的工作: set source to "/Folder1/Folder2/" mount volume "afp://username:password@server1/Folder1/" set Folder1 to result as alias set destShareName to "/Volumes/Folder1/Folder3" do shell script "/us

您好,我想使用AppleScript将文件从源Mac服务器复制到使用rsync的其他10台Mac服务器。我有基本的工作:

set source to "/Folder1/Folder2/"
mount volume "afp://username:password@server1/Folder1/"
set Folder1 to result as alias
set destShareName to "/Volumes/Folder1/Folder3"
do shell script "/usr/bin/rsync -rlptD --log-file=/Users/user/Documents/rsync.txt " & (quoted form of source) & " " & (quoted form of destShareName)

它起作用了,我得到了这份工作的记录。我知道我可以复制作业并用server2替换server1,然后再次运行作业。如何创建服务器列表并使rsync作业在列表中循环运行?非常感谢,约翰

诸如此类的东西。创建列表并使用重复循环。第一次通过重复循环时,您将获取列表中的所有第一项,因此请确保每个列表中的所有第一项都在一起。第二次通过时,您将抓取所有第二项,依此类推。请注意,所有列表的项目数应完全相同

set theServers to {"afp://username:password@server1/Folder1/", "afp://username:password@server2/Folder1/"}
set sourceFolders to {"/source1Folder/Folder2/", "/source2Folder/Folder2/"}
set destFolders to {"/dest1Folder/Folder2/", "/dest2Folder/Folder2/"}


repeat with i from 1 to count of sourceFolders
    set thisServer to item i of theServers
    set thisSource to item i of sourceFolders
    set thisDest to item i of destFolders

    mount volume thisServer
    do shell script "/usr/bin/rsync -rlptD --log-file=/Users/user/Documents/rsync.txt " & (quoted form of thisSource) & " " & (quoted form of thisDest)
end repeat
编辑:根据您的评论,如果只有您的服务器发生了更改,那么您可以像这样调整代码

set theServers to {"afp://username:password@server1/Folder1/", "afp://username:password@server2/Folder1/"}

set sourceFolder to "/source1Folder/Folder2/"
set destFolder to "/dest1Folder/Folder2/"

repeat with i from 1 to count of theServers
    mount volume (item i of theServers)
    do shell script "/usr/bin/rsync -rlptD --log-file=/Users/user/Documents/rsync.txt " & (quoted form of sourceFolder) & " " & (quoted form of destFolder)
end repeat

很抱歉没有早点写,我正在测试,一切都很好。这很烦人,因为sourceFolders和destFolders没有改变(总是分别是/source1Folder/Folder2和/dest1Folder/Folder2),但我必须反复输入它以保持平衡。谢谢你的帮助。很高兴你让它工作了。但根据你的评论,我在我的帖子中添加了一个“编辑”部分,向你展示一个可能对你更有效的替代方案。祝你好运。Hello@regulus6633是的,我自己发现我不需要重复输入常量,我的解决方案与你的非常相似。再次感谢你,John