scp с паролем и переименование файла

Мне нужно выполнить команду scp с переименованием файла.

Я пробовал со следующим кодом:

HOST=lnx25 USERNAME=ngqa PASSWORD=xxxxx FILE=$1 FILE_NAME=`echo $FILE | awk 'BEGIN{FS="/"} {print $NF;}'` todayDateVar=`date | awk 'BEGIN{FS=" ";OFS="_"} {print $2,$3,$6;}'` REPORT_HOME="/dnbusr1/ngqa/scp_script/new/" DES_PATH="/ngdata/nc_donotdelete/test_out_files/$FILE_NAME.$todayDateVar" scp $FILE $USERNAME:"$PASSWORD"@$HOST:sys_config $DES_PATH 

Результат: (Запустите с ./scp.sh sample.obj)

 /ngdata/nc_donotdelete/test_out_files/sample.obj.Sep_23_2014: No such file or directory 

Я предполагаю, что эта ошибка указывает ни один из доступных в этом имени каталогов. Но всякий раз, когда я пытался без переименования файла, он отлично работает. Следующий код отлично работает без переименования файла.

 DES_PATH="/ngdata/nc_donotdelete/test_out_files" 

Он скопировал имя файла как sample.obj в каталоге назначения. Но мне нужно скопировать файл с переименованием.

2 Solutions collect form web for “scp с паролем и переименование файла”

Если DES_PATH="/ngdata/nc_donotdelete/test_out_files/$FILE_NAME.$todayDateVar" не работает, а DES_PATH="/ngdata/nc_donotdelete/test_out_files" , это означает, что /ngdata/nc_donotdelete/test_out_files не существует, а ваш файл сохраняется как /ngdata/nc_donotdelete/test_out_files а не /ngdata/nc_donotdelete/test_out_files/$1 (поскольку целевой путь может быть либо каталогом, либо именем файла, а scp будет рассматривать его как каталог, только если этот путь существует и уже каталог или ссылка на каталог). Вы можете добавить косую черту в конец пути назначения, чтобы гарантировать, что она всегда рассматривается как каталог, а не файл.

простой пароль в файле – плохая идея. Кроме того, у меня нет опции -p passwd .

поскольку у вас есть доступ к удаленному хосту, вы можете генерировать ключи (частные и общедоступные), используя

 ssh-keygen 

(принять все значения по умолчанию, не использовать пароль)

Этот шаг должен быть выполнен для каждого пользователя

затем, один раз

 ssh-copy-id ngqa@lnx25 

Этот шаг должен быть выполнен для каждого пользователя и каждого хоста.

то в вашей оболочке последняя строка может быть

 scp $FILE $USERNAME@$HOST:$DEST_PATH 
  • Ошибка при запуске скрипта PL / SQL
  • Каков наиболее эффективный способ регистрации ошибок сценария оболочки crontab с ошибкой?
  • Объединение аргументов bash в одну строку с пробелами
  • Как явным образом вызывать встроенную оболочку?
  • Как предотвратить удаление скрипта
  • bash: проверьте, находится ли переменная в
  • Почему этот сценарий не работает?
  • Исходное синтаксическое объяснение переменных в bashrc
  • Расширение параметра Shell
  • выйдите из сценария, если строка ls не нашла соответствия
  • Получить серийный номер из Показать инвентарь
  • Linux и Unix - лучшая ОС в мире.