.png)
Quiero sincronizar automáticamente la carpeta en mi PC con Windows con mi disco duro externo conectado a una raspberrypi. Mi script funciona y solo usa rsync para copiar 2 carpetas.
Quiero automatizarlo a través del Programador de tareas pero no funciona. Intenté ejecutarlo directamente como un script bash desde el Programador de tareas y probé otra cosa que me vino a la mente. Escribí un archivo por lotes que ejecuta mi script bash. Funciona cuando se ejecuta el archivo por lotes manualmente, pero cuando lo hago a través del Programador de tareas ya no funciona y no puedo entender por qué, ya que no tengo mensajes de error o algo así.
También escribí otro archivo por lotes que crea una carpeta y lo ejecuté a través del Programador de tareas, que funcionó bien. El problema tiene que ser algo relacionado con el Programador de tareas y bash.
¡Cualquier ayuda sería muy apreciada!
Guión de bash:
#!/bin/bash rsync -rtv -e "ssh -i /home/fernien/id_rsa" /mnt/g/100D3300/[correo electrónico protegido]://mnt/share/Imagen/Normal rsync -rtv -e "ssh -i /home/fernien/id_rsa" /mnt/g/Bilder\ Editiert/[correo electrónico protegido]://mnt/share/Bilder/Editiert
Archivo por lotes para ejecutar este script:
Probé diferentes variedades. Con -c, sin -c, con "./" y sin.
@eco apagado c:\scripts\ bash.exe -c "./sync.bash"
Respuesta1
Gracias a @FedonKadifeli. El problema estaba en mi script: esto funcionó cuando se ejecutó manualmente, no sé por qué, pero así fue.
@eco apagado c:\scripts\ bash.exe -c "./sync.bash"
Pero debería verse así. Después de corregirlo me funcionó bien. Debería haber dedicado más tiempo a las secuencias de comandos por lotes.
@eco apagado C: CD \scripts\ bash.exe -c "./sync.bash"
Respuesta2
en su secuencia de comandos por lotes de DOS, puede cambiar la unidad y la ruta con un comando de una línea gracias al conmutador cd
de comandos /D
. Por lo tanto terminarías con lo siguiente:
@echo off
cd /D c:\scripts\
bash.exe -c "./sync.bash"