Задача: автобэкап RSYNC`ом по SSH, но без авторизации по ключам, без Perl и Python.
На сервере нельзя сделать ключи для автоматической авторизации SSH (можно, но при перезапуске содержимое каталога будет сброшено). Для автоматизации процесса логина по SSH подходит EXPECT, однако всё обламывает RSYNC:
Часть скрипта:
rsync --rsync-path="mkdir -p $DST/Processing-$date && rsync" $args
Гугление этой проблемы привело сюда: http://www.scriptscoop.net/t/71fc79314eee/bash-random-single-quotes-being-add... Общая суть ответа: «всё правильно, так и должно быть и это не исправимо никак, даже не пытайтесь.»
Теперь у меня возникает вопрос: это что, безвыходная ситуация?
На всякий случай приведу полную команду RSYNC`ка:
rsync --rsync-path="mkdir -p $DST/Processing-$date && rsync" -axpz --delete --link-dest=../Latest --numeric-ids ~/ToBackup/ netuser@server:$DST/Processing-$date
Может, есть возможность поиграть с параметром rsync-path, или что-то ещё придумать?