Script de shell para o arquivo SFTP para o servidor remoto

0

Esta é provavelmente uma pergunta feita antes, mas não consigo encontrar uma boa pergunta / resposta. Eu preciso escrever um script de shell que será chamado pelo programa PHP (exec function) para mover todos os arquivos * .pdf para um diretório remoto via SFTP. O diretório de destino será constante. O diretório remoto também será constante. Os arquivos serão apenas do formato * .pdf.

O script deve usar SFTP, isso é um requisito. O SCP não funcionará. A porta SFTP também é personalizada, vou ter que trabalhar isso no código abaixo. Não sei como escrever o loop pelos arquivos * .pdf no diretório e removê-los com sucesso. Talvez uma abordagem ligeiramente diferente seja melhor.

#! /bin/ksh
TARGET_DIR=<path of target directory>
FILE_NAME_TO_CHECK=<file_name>
REMOTE_USER=<user_name>
REMOTE_PORT=<remote port>
REMOTE_MACHINE=<remote server name>
REMOTE_DIR=<path of remote directory>

cd ${TARGET_DIR}
sftp ${REMOTE_USER}@${REMOTE_MACHINE} -
    
por jjwdesign 17.09.2014 / 16:25

2 respostas

3

Você deve usar a autenticação de chave privada para evitar problemas com senhas.

sftp -oPort=CUSTOMPORT -b BATCHFILE USER@DESTINATION

BATCHFILE (prepare-o antes de iniciar o comando)

lcd LOCAL_PATH
cd REMOTE_TARGET_DIR
put *.pdf
exit
    
por 17.09.2014 / 18:35
0

Você pode automatizar o upload de arquivos SFTP usando WinSCP , se você já conhece a sequência de comandos que você usaria para fazer isso manualmente. Copiei o script de amostra da resposta abaixo:

echo option batch abort > ftpcmd.dat
echo option confirm off >> ftpcmd.dat
echo open sftp://ftp_user:[email protected] -hostkey="server's hostkey" >> ftpcmd.dat
echo put directory_path\%.pdf >> ftpcmd.dat
winscp.com /script=ftpcmd.dat
del ftpcmd.dat
    
por 17.09.2014 / 16:51

Tags