Скрипт резервного копирования bash - pleskbackup + lftp

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

#!/bin/bash

# SETTINGS

RMDATE=$(date --iso -d '10 days ago').tar
FTPUSER=user
FTPPW=pass
FTPSERVER=my.server.com
LFTP=/usr/bin/lftp

# DELETE OLD BACKUPS

rmold () {
$LFTP << EOF
open ${FTPUSER}:${FTPPW}@${FTPSERVER}
rm -rf ${RMDATE}
bye
EOF
echo "Done."
}

# PLESK BACKUP

if /usr/local/psa/bin/pleskbackup server -v --exclude-logs >/tmp/backup-plesk.log 2>&1 --output-file=/var/www/bak/`date -I`.tar; then
        if lftp -c "open ${FTPUSER}:${FTPPW}@${FTPSERVER}; put /var/www/bak/`date -I`.tar"; then
                rm -f /var/www/bak/`date -I`.tar
                /usr/bin/sendEmail <<< some parameters >>> # backup success message
                rmold
        else
                /usr/bin/sendEmail <<< some parameters >>> # upload error message
        exit 1
        fi
else
        /usr/bin/sendEmail <<< some parameters >>> # backup error message
        exit 1
fi

1 ответ

Решение

У меня была проблема с FTP FEAT и сертификатом. Я отключил FEAT в конфигурационном файле lftp и указал полный путь к сертификату. Это работает сейчас.

Другие вопросы по тегам