Script de sincronismo ailostelemedicina
Função: Realiza a sincronização de arquivos via SFTP com o ambiente Ailos.
Execução: Rodando via Crontab a cada 5 minutos.
Local do script: /home/lupainfo/ailostelemedicina.topmed.com.br/Config/sync_sftp_lupa_ailos.sh da hospedagem A2 Hosting ailostelemedicina.topmed.com.br (mi3-ss60.a2hosting.com)
Se precisar descomente a linha do log para registrar um erro por exemplo
└─$ ssh wwwmi3-ss60.a2hosting.com -l lupainfo
Warning: Permanently added 'wwwmi3-ss60.a2hosting.com' (ED25519) to the list of known hosts.
** WARNING: connection is not using a post-quantum key exchange algorithm.
** This session may be vulnerable to "store now, decrypt later" attacks.
** The server may need to be upgraded. See https://openssh.com/pq.html
lupainfo@mi3-ss60 [~]# cat /home/lupainfo/ailostelemedicina.topmed.com.br/Config/sync_sftp_lupa_ailos.sh
#!/bin/bash
HOST="200.143.69.187"
USER="ailostopmed"
PASS_FILE="/home/lupainfo/ailostelemedicina.topmed.com.br/Config/sync_sftp_lupa_ailos.pass"
LOCAL_HOME="/home/lupainfo"
ENVIO_LOCAL="${LOCAL_HOME}/ailostopmed/home/Envio"
RETORNO_LOCAL="${LOCAL_HOME}/ailostopmed/home/Retorno"
VENDAS_LOCAL="${LOCAL_HOME}/ailostopmed/home/Vendas"
LOG="${LOCAL_HOME}/ailostelemedicina.topmed.com.br/Config/sync_sftp_lupa_ailos.log"
#LOG=/dev/null
ENVIO_REMOTE="/home/Envio"
RETORNO_REMOTE="/home/Retorno"
VENDAS_REMOTE="/home/Vendas"
echo "===== $(date '+%Y-%m-%d %H:%M:%S') INÍCIO =====" >> "$LOG"
if [ -f "$PASS_FILE" ]; then
SSHPASS=$(cat "$PASS_FILE")
else
echo "ERRO: Arquivo de senha não encontrado em $PASS_FILE" >> "$LOG"
exit 1
fi
lftp <<EOF >> "$LOG" 2>&1
# Configura SSH limpo (sem chave -i, pois ela não funciona lá) e sem verificação de host
set sftp:connect-program "ssh -a -x -o StrictHostKeyChecking=no"
set net:timeout 20
set net:max-retries 2
set cmd:fail-exit yes
open -u $USER,$SSHPASS sftp://$HOST
# 1. ENVIO: A2 (Local) -> Lupa (Remoto)
mirror --reverse --verbose --only-newer --Remove-source-files \
"$ENVIO_LOCAL" "$ENVIO_REMOTE"
# 2. RETORNO: Lupa (Remoto) -> A2 (Local)
# O parâmetro --Remove-source-files apaga o arquivo da Lupa após o download bem-sucedido
mirror --verbose --only-newer --Remove-source-files --use-pget-n=1 \
"$RETORNO_REMOTE" "$RETORNO_LOCAL"
# 3. VENDAS: A2 (Local) -> Lupa (Remoto)
mirror --reverse --verbose --only-newer \
"$VENDAS_LOCAL" "$VENDAS_REMOTE"
bye
EOF
RC=$?
if [ $RC -eq 0 ]; then
echo "===== $(date '+%Y-%m-%d %H:%M:%S') SUCESSO =====" >> "$LOG"
else
echo "===== $(date '+%Y-%m-%d %H:%M:%S') ERRO (code=$RC) =====" >> "$LOG"
fi
lupainfo@mi3-ss60 [~]#