Назад | Перейти на главную страницу

scp со специальным именем пользователя

Я пытаюсь создать shell скрипт для копирования файлов в удаленную резервную копию.

Это мой сценарий:

PASSWORD=MY-SECRET-PASS
URL=SLOS755513-3:SL1255513@objectstorage.net
DIR=/backup

scp /home/user/my_log.txt $URL:$DIR

Но я получаю сообщение об ошибке:

ssh: Could not resolve hostname SLOS755513-3: Name or service not known
lost connection

Я думаю, это из-за специальных символов в имени пользователя, потому что если я просто напишу test вместо этого он фактически пытается подключиться к test как пользователь.

Но я пытался сбежать \- и \: и все дает мне ту же ошибку. Я также не знаю, как использовать пароль в скрипте.

Попробуйте что-то вроде этого:

RUSER='SLOS755513-3:SL1255513'
HOST=objectstorage.net
DIR=/backup

scp -o user=$RUSER /home/user/my_log.txt $HOST:$DIR 

Это сделает пользовательскую часть явной, поэтому scp не пытается интерпретировать : как разделитель хоста / пути. -o user=$USER отправит пользователя в качестве опции в базовый ssh.