cron não está executando o rsync

0

Estou tentando configurar uma tarefa rsync usando o cron.
O objetivo é sincronizar uma pasta de trabalho em uma partição linux e sua contraparte em uma partição do Windows em um computador de inicialização dupla.

Para fazer isso, estou tentando rsync minha pasta de trabalho linux em um compartilhamento do windows a cada 10min e para rsync da pasta correspondente do windows share na pasta de trabalho linux na inicialização.
O crontab que eu configure chama um pequeno script bash, que principalmente para verificar se o windows sync- > linux está em andamento antes de sincronizar ao contrário.

História do meu diagnóstico:

  • eu executei meu script manualmente: sem problemas.
  • Eu verifiquei o syslog, a tarefa cron é executada.
  • Eu coloco ecos que escrevem em um arquivo de log antes e depois do rsync para ver o progresso da execução, e atendo o rsync para esse log: nenhum problema com as mensagens de eco, mas nada de rsync .

Por que, como rsync não pode ser executado quando no cron e funciona bem com a mão!?

Aqui está o script totalmente comentado sync.sh , colocado em /home/user/ :

#! /bin/bash

pathMint="/home/user/workFolder/"
pathWin="/home/windows/Users/user/workFolder/"
# windows can't keep up with permissions, timestamp, or group specifications, hence no -a [archive mode = -rlptgoD]
ARGS="-rloD -zvh"

if [ -z "$1" ]
then
    echo "No argument supplied"
    exit 0
fi

# sync out
if [ "$1" = "out" ]
then
    #test if rsync is running (previous long sync, or "sync in" after start-up -eg adding files from windows edits.
    running='ps agux|pgrep rsync'
    echo "t1">test.log

    #exit if so.
    if [ -n "$running" ]
    then
      exit 0
    fi
    echo "t2">>test.log

    #else, sync.
    rsync $ARGS --exclude=".*" --exclude="./**" --exclude="*~" "$pathMint" "$pathWin" |tee -a test.log
    echo "t3">>test.log

elif [ "$1" = "in" ]
then
    # task: sync in.
    #  Sync windaube share on mint's xtreee folder at startup.
    rsync $ARGS "$pathWin" "$pathMint"
fi

exit 0

Aqui está o crontab -l :

PATH=/usr/local/sbin:/usr/local/bin:/home/user/bin:/home/user
MAILTO="[email protected]"

# task: sync out.
#  Sync mint's xtreee folder with windaube share every 10 min.
*/10 * * * * /home/user/sync.sh out

# task: sync in.
#  Sync windaube share on mint's xtreee folder at startup.
@reboot /home/user/sync.sh in
    
por luneart 10.12.2015 / 09:34

0 respostas

Tags