scp com senha e renomeando o arquivo [closed]

1

Eu preciso executar o comando scp renomeando o arquivo.

Eu tentei com o seguinte código:

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

Resultado: (Execute com ./scp.sh sample.obj)

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

Eu acho que esse erro indica nenhum diretório disponível nesse nome. Mas sempre que eu tentei sem renomear arquivo significa que funciona bem. O código a seguir funciona bem sem renomear o arquivo.

DES_PATH="/ngdata/nc_donotdelete/test_out_files"

Copiou o nome do arquivo como sample.obj no diretório de destino. Mas eu preciso copiar o arquivo com renomeação.

    
por Vasu 23.09.2014 / 12:45

2 respostas

1

Se DES_PATH="/ngdata/nc_donotdelete/test_out_files/$FILE_NAME.$todayDateVar" não funcionar e DES_PATH="/ngdata/nc_donotdelete/test_out_files" , significa que /ngdata/nc_donotdelete/test_out_files não existe e seu arquivo está sendo salvo como /ngdata/nc_donotdelete/test_out_files em vez de /ngdata/nc_donotdelete/test_out_files/$1 ( porque o caminho de destino pode ser um diretório ou um nome de arquivo, e scp irá tratá-lo como um diretório apenas se esse caminho existir e já for um diretório ou link para um diretório). barra até o final do caminho de destino para garantir que seja sempre tratado como um diretório em vez de um arquivo.

    
por 23.09.2014 / 14:05
0

senha simples no arquivo é uma má ideia. Além da minha caixa não tenho opção -p passwd .

desde que você tenha acesso ao host remoto, você deve gerar chaves (privadas e públicas) usando

ssh-keygen

(aceita tudo padrão, não usa senha)

Este passo deve ser feito para todos os usuários

depois, uma vez

ssh-copy-id ngqa@lnx25

Esta etapa deve ser feita para todos os usuários e todos os hosts.

então no seu shell, a última linha deve ser

scp $FILE $USERNAME@$HOST:$DEST_PATH
    
por 23.09.2014 / 13:58