Isso parece estranho:
backup_'echo'mv "$i" "${i//"/"/_}''_'hostname'.'date +%m.%d.%Y'.tar.gz
Você está tentando aninhar mv em echo aqui? A sintaxe $(...) para substituição de comandos facilitaria o aninhamento:
backup_$(echo $(mv this that))_$(hostname)...
Mas ainda não vejo nenhum uso para mv aqui, e muito menos o echo que apenas repetiria o que mv produzia, e não deveria produzir nada se funcionasse.
Podemos apenas anular o mv e criar o nome do arquivo com ${var//\//_} , o que alteraria todas as instâncias de / na variável com _ .
Talvez algo assim, então, para todo o ciclo:
for path in /var /usr/image /usr/image/temp ; do
x=$(path#/} # remove leading / if there is one
tarfile=backup_${x//\//_}_$(hostname)_$(date +%Y-%m-%d).tar.gz
tar -cvpzf "$tarfile" "$path"
done
Observação: alterei o formato de data de 05-17-2017 para 2017-05-17 porque o último torna a classificação mais fácil. Remover o / inicial é redundante, já que ele seria transformado em _ , o que queríamos mesmo assim, mas acho que é mais estruturado dessa maneira.