Действительно трудно получить переменную аргумента команды для работы с rsync. Поведение, которое я вижу, является этой ошибкой из сценария:
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(601) [sender=3.0.7]
Однако скрипт выводит команду, которую он собирается запустить через эхо, и точно такая же копия команды, вставленная в терминал (или обратно в скрипт как первая строка с выходом после него), работает просто отлично!
Код сценария, который выполняет это rsync (check_flags в данном случае пуст):
rsync_cmd=(${check_flags} -rWltpgoDvdHP --delete-before -- \"${backup_dir}\" \"admin@nas-1:${backup_basename}/\")
echo "CMD to run: rsync ${rsync_cmd[@]}"
rsync ${rsync_cmd[@]}
Выход:
CMD to run: rsync -rWltpgoDvdHP --delete-before -- "/share/CACHEDEV1_DATA/veeam_backup_daily/Daily backup _@1am__1" "admin@nas-1:/share/CACHEDEV1_DATA/veeam_backup_daily/"
Я читал в Интернете, что использование массива должно помочь в этом вопросе, но это не так. Я уверен, что это легко исправить, но это сводит меня с ума!