Se você definir launchd
para monitorar /Volumes
como um WatchPath, ele poderá executar um script toda vez que uma unidade for montada. Basta criar um script que verifique se sua unidade Airport Extreme está montada e, em seguida, executa a cópia, se for. Por exemplo:
#!/bin/bash
if [ -e /Volumes/AirportExtremeDriveName ]
rsync -aE /a/specific/folder/ /Volumes/AirportExtremeDriveName/another/specific/folder/
fi
Sugiro rsync
, pois é inteligente o suficiente para não copiar arquivos que são os mesmos tanto na origem quanto no destino, o que acelerará as coisas sem problemas. Se você adicionar o argumento -delete
, todos os arquivos que não existirem mais na origem serão excluídos do destino.
Sem custo extra, aqui está o script launchd
. Salve o seguinte em ~/Library/LaunchAgents/some.meaningful.name.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<dict>
<key>Label</key>
<string>some.meaningful.name</string>
<key>LowPriorityIO</key>
<true/>
<key>ProgramArguments</key>
<array>
<string>/where/you/saved/your/script.sh</string>
</array>
<key>WatchPaths</key>
<array>
<string>/Volumes</string>
</array>
</dict>
</plist>
Em seguida, carregue o trabalho launchd
com:
launchctl load ~/Library/LaunchAgents/some.meaningful.name.plist
Ele será carregado automaticamente quando você fizer login e descarregar quando sair.