Скрипт резервного копирования 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 и указал полный путь к сертификату. Это работает сейчас.