help with rsync and Missing trailing-" in remote-shell command.

2016-06-17 Thread dpich
I have three servers.  nginx00 (master nginx server) and nginx01 and nginx02 
(slave nginx servers).

nginx00 is a staging environment that I do testing on.  Once it goes live I run 
a bash script that syncs the config files and restarts the nginx daemon.  It's 
working fine as root.  However, I am bound by rules in my company to run 
commands as users and not the root user.  

I have setup keys for ssh for all my sysadmin users, and it works fine if I 
just us it.

rsync -q -avz --delete -e 'ssh -i /home/dpich/.ssh/id_rsa' --rsync-path='sudo 
rsync' /etc/nginx/ dpich@balancer01:/etc/nginx/

If I run it in this bash script...

#!/bin/bash

currentuser=$(whoami)
OPTS=(-q -avz --delete -e \'ssh -i /home/$currentuser/.ssh/id_rsa\' 
--rsync-path=\'sudo rsync\')
SRC=(/etc/nginx/)
RSYNC_CMD=(rsync)

for h in nginx0{1..2} ; do
  DST=$currentuser'@'$h':/etc/nginx/'
  rsync ${OPTS[@]} ${SRC} ${DST}
done

I keep getting this error:
dpich@nginx00:~$ /usr/sbin/deploy2.sh
Missing trailing-" in remote-shell command.
rsync error: syntax or usage error (code 1) at main.c(430) [sender=3.1.1]
Missing trailing-" in remote-shell command.
rsync error: syntax or usage error (code 1) at main.c(430) [sender=3.1.1]
dpich@nginx00:~$

I'm 1000% convinced it has to do with quotes, but I haven't been able to solve 
this.

Any help would be appreciated.


Re: help with rsync and Missing trailing-" in remote-shell command.

2016-06-20 Thread dpich
Thanks for the advise!

That did it.  The command is working fine now with the following setup:

currentuser="$(id -u -n)"
OPTS=(-q -avz --delete -e 'ssh -i /home/'$currentuser'/.ssh/id_rsa' 
--rsync-path='sudo rsync')
SRC=(/etc/nginx/)
RSYNC_CMD=(rsync)

for h in balancer0{1..2} ; do
  DST=$currentuser@$h:/etc/nginx/
  $RSYNC_CMD "${OPTS[@]}" ${SRC} ${DST}
done