Наконец, я использовал rsync
вместо scp
только из-за той же проблемы. Я был вынужден использовать эту полезную команду, потому что я делаю резервные копии конфигураций маршрутизаторов и данных компьютеров, подключенных к этим маршрутизаторам. Маршрутизаторы используют очень ограниченное количество команд Linux, и эта доступна на моделях, которые мы используем. Мы пытались использовать ключи SSH, но у маршрутизаторов нет постоянной памяти, после повторной инициализации все ключи SSH стираются.
Таким образом, команда для rsync
здесь с включенной опцией -e
, также я использую порт 2222, опция -p
позволяет вам менять порты.
sshpass -p 'password' rsync -vaurP -e 'ssh -p 2222' backup@???.your.ip.???:/somedir/public_data/temp/ /your/localdata/temp
Можно защититься еще дальше, как это сделал я, заменив пароль на однострочный файл с помощью bash-скрипта для многосерверной среды. Альтернативой является использование параметра -f, чтобы пароль не отображался в истории bash -f "/path/to/passwordfile"
Если вы хотите обновить только измененные файлы, вам следует использовать эти параметры -h -v -r -P -t, как описано здесь https://unix.stackexchange.com/questions/67539/how-to-rsync-only-new-files
Кстати, если вы хотите выполнить восстановление, просто поменяйте местами источник на цель. Не нужно много менять, из той же командной оболочки вы можете сделать это, изменив порядок целевых и исходных каталогов, убедитесь, что у вас есть пользователь на цели с тем же паролем, чтобы принять rsync
person
Luis H Cabrejo
schedule
16.12.2018