Загрузка бэкапов по ftp

Вопросы касающиеся настройки, функционирования виртуальных серверов
Правила форума
1. Один вопрос - одна тема. Не надо задавать в той же теме другие вопросы.
2. Не пишите в чужих темах, если ваша проблема не имеет отношения к обсуждаемой.
3. Давайте полное описание проблемы - имя сайта, имя сервера, учётная запись, способ воспроизведения, скриншот ошибки.
4. Пароли выкладывать в форум - НЕ НАДО
Ответить
lissyara
Site Admin
Сообщения: 6450
Зарегистрирован: 2009-09-19, 22:04:41

Загрузка бэкапов по ftp

Сообщение lissyara »

простейший скрипт бэкапа с загрузкой по ftp

Код: Выделить всё

cat /root/scripts/backup.sh
#!/bin/sh

dir="/home/backup"

# ftp functions
. /root/scripts/ftp.sh

# delete old
rm -rf $dir/`date -v-22d +%Y-%m-%d`
# new
dir="$dir/`date -v-1d +%Y-%m-%d`"
# create
mkdir -p $dir
# dump db's
mysql --execute="SHOW DATABASES;" | grep -v Database |
{
while read db
do
        mysqldump --skip-extended-insert $db 2>/dev/null| gzip > $dir/$db.sql.gz
        cd $dir && ftp_upload $db.sql.gz

done
}
# archive files, saturday only (too long archivation process)
if [ `date +%w` = 6 ]
then
        cd $dir && tar -czf user_name.tar.gz /home/user_name
        #cd $dir && ftp_upload user_name.tar.gz
fi
функции

Код: Выделить всё

cat /root/scripts/ftp.sh
#!/bin/sh

ftp_host=bkp1.host-food.ru
ftp_user=bkp123456
ftp_pass=SuperMegaSecretPassword 

# now, date is
year=`date +%Y`
month=`date +%m`
day=`date +%d`

# functions
ftp_upload(){
        backup_file=$1
        /usr/bin/ftp -inv -P 21 <<EOF
        open $ftp_host
        user $ftp_user $ftp_pass
        binary
        mkdir $year
        cd $year
        mkdir $month
        cd $month
        mkdir $day
        cd $day
        put $backup_file $new_file_name
        bye
EOF
}
удаления бэкапов на ftp не предусмотрено - если нужен подобный функционал - лучше Bacula использовать
Убей их всех! Бог потом рассортирует...
Ответить