Tengo un Bash script que ejecuta un comando rsync para sincronizar archivos con un servidor remoto.
#!/bin/bash
rsync -auvzP --exclude=.bundle --exclude=node_modules --exclude=tmp '/Volumes/Norman Data/me/.bash_profile' '/Volumes/Norman Data/me/Documents' --exclude=remote me@example.com:backup/
Esto funciona cuando lo ejecuto desde la terminal ya que tengo la autenticación de la clave ssh configurada para mi usuario en example.com. Sin embargo, cuando launchd llama a este script, obtengo el siguiente error indicando que no puede encontrar el archivo de claves de mi usuario o que no es válido:
Permiso denegado, por favor, inténtelo de nuevo. Permiso denegado, por favor intente de nuevo. me@example.com: Permiso denegado (publickey,password). rsync: conexión cerrada inesperadamente (0 bytes recibidos hasta el momento) [remitente] Error de rsync: error en el flujo de datos del protocolo rsync (código 12) en /BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-52/rsync/io.c(453) [sender=2.6.9] Estoy especificando mi nombre de usuario en mi archivo plist y al depuración, el script dice que está siendo ejecutado por ese mismo usuario tanto cuando ejecutándolo desde la terminal y desde launchd igualmente.
Mi BackupDaemon.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>EnvironmentVariables</key>
<dict>
<key>HOME</key>
<string>/Volumes/Norman Data/me</string>
</dict>
<key>GroupName</key>
<string>staff</string>
<key>InitGroups</key>
<true/>
<key>Label</key>
<string>BackupDaemon</string>
<key>Program</key>
<string>/Volumes/Norman Data/me/backup</string>
<key>StandardErrorPath</key>
<string>/tmp/BackupDaemon.err</string>
<key>StandardOutPath</key>
<string>/tmp/BackupDaemon.out</string>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>16</integer>
<key>Minute</key>
<integer>6</integer>
</dict>
<key>UserName</key>
<string>me</string>
</dict>
</plist>
No consigo averiguar cuál puede ser el problema ni cómo seguir depurando. Cualquier idea que alguien tenga para compartir será muy apreciada. Gracias.