Tente colocar a variável NAMELOG entre aspas no redirecionamento rsync, ou seja, "$ {NAMELOG}"
Estou reescrevendo um script simples, CopyScript.sh
, escrevi há alguns anos para copiar o conteúdo do meu NAS para um disco USB.
#!/bin/bash
SYNCPATH="/volume1/"
SYNCPATHTO="/volumeUSB1/usbshare/synology-may-2015-bak/"
NAMELOG="/volume1/homes/sando/logrsync.log"
echo "${NAMELOG}"
date >"${NAMELOG}"
rsync --verbose --recursive --size-only --exclude-from 'exclude-list.txt' $SYNCPATH $SYNCPATHTO >> $NAMELOG 2>&1
date >> "${NAMELOG}"
echo DONE >> "${NAMELOG}"
No entanto, quando executo bash CopyScript.sh
, recebo o seguinte erro:
"redirecionamento ambíguo: linha 7: 1"
E, de fato, quando olho para os arquivos no meu sistema de arquivos, vejo dois arquivos de log chamados logrsync.log, um de 1 kB e um de 0 kB. Eu entendo que isso dá um redirecionamento ambíguo, mas por que existem dois arquivos? Eu acredito que código bastante semelhante funcionou no meu sistema antigo. O que estou perdendo?
Felicidades, Sando
Tente colocar a variável NAMELOG entre aspas no redirecionamento rsync, ou seja, "$ {NAMELOG}"
Você está tentando gravar a atividade de rsync em um arquivo de log
Mas isso não é feito com um redirecionamento > > mas através de alguns parâmetros
--log-file=FILE override the "log file" setting
--log-file-format=FMT override the "log format" setting
**--log-file=FIL**E This option causes rsync to log what it is doing to a file. This is similar to the logging that a daemon does, but can be requested for the client side and/or the server side of a non-daemon transfer. If specified as a client option, transfer logging will be enabled with a default format of "%i %n%L". See the
**--log-file-format** option if you wish to override this.
**--log-file-format=FORMAT** This allows you to specify exactly what per-update logging is put into the file specified by the --log-file option (which must also be specified for this option to have any effect). If you specify an empty string, updated files will not be mentioned in the log file. For a list of the possible escape characters, see the "log format" setting in the rsyncd.conf manpage. The default FORMAT used if --log-file is specified and this option is not is ’%i %n%L’.
Então eu tentei isso:
rsync --verbose --recursive --size-only --exclude-from 'exclude-list.txt' --log-file=$NAMELOG $SYNCPATH $SYNCPATHTO
Tags bash linux redirection