Para usar rsync
, criei um script Bash. Ele roda bem a partir do shell Cygwin de 32 bits no Win 7, mas falha quando executado a partir do Agendador de Tarefas do Win 7. Meu script do Agendador de Tarefas é simples:
c:\cygwin\bin\bash.exe -l -c "/home/user/rsync_Windows_Backup >> /home/user/Documents_cron.log 2>&1"
O diretório inicial da tarefa está definido como C:\Cygwin\bin
.
Meu script de Bash é um típico rsync [options] SRC DEST
e algumas tarefas domésticas relacionadas.
O comando rsync
no meu script rsync_Windows_Backup
Bash é:
/bin/time -f "\nElapse (hh:mm:ss.ss) %E" \
rsync.exe -ravuz --copy-links "$SRC" "$DEST" >> "$LOG" \
2 >> "$LOG"
Eu testei o script na linha de comando do Cygwin. Funciona como esperado, ou seja,
$ ./rsync_Windows_Backup - succeeds.
No entanto, o trabalho do Agendador de Tarefas não funciona quando não consegue encontrar a pasta DEST à qual o script Bash faz referência. Quando eu faço um cd DEST
da linha de comando BASH, a pasta está disponível e pode ser gravada também.
Devo adicionar mais alguns detalhes, o remetente é uma área de trabalho do Win 7 que é mapeada para um receptor de desktop Vista com um mapeamento de unidade J:
. O script Bash faz iniciar, mas falha com:
rsync: writefd_unbuffered failed to write 4 bytes to socket [sender]: Broken pipe (32)
rsync: mkdir "/cygdrive/J/DocumentsBackup" failed: No such file or directory (2) rsync error: error in file IO (code 11)
Eu posso remover o primeiro erro alterando a configuração para o Windows 7 na guia Geral das propriedades do Agendador de tarefas. Não consigo ver por que o mkdir
não consegue ver a parte J:
.
Para verificar a conexão da LAN, também fiz um net use J: \server\share
. Ele se conecta bem e permite listar e escrever, etc.
Quando executo o mesmo trabalho do agendador de tarefas no Windows Vista, ele funciona bem.
Este é um problema de NTLM mais fino ou outro problema de permissão no Win 7? Estou perplexo no momento.