Со временем созрел вопрос резервного копирования. Гугл предоставляет по этому вопросу много вариантов, меня же интересует что то попроще.
- Поместить и сжать в архив нужные папки
- Скопировать на выделенный для бекапов ftp-сервер
Написал простенький скрипт, который пакует нужные папки в каталог tmp, далее копирует сам архив на ftp-сервер. В качестве ftp-клиента использую lftp
Устанавливаем
1 2 | # cd /usr/ports/ftp/lftp # make install clean |
Собственно сам скрипт
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #!/bin/sh # текущая дата D=`date '+%d.%m.%Y.%H-%M'`; #название сервера n="myserver" #название архива name="backup_${n}_${D}" #путь к нашему скрипту path="/root/backup" # адрес ftp-сервера(server backup)куда будем заливать архив sb="backup.lan" # ftp-логин l="mylogin" # ftp-пароль p="mypassword" # пакуем tar czvf $path/tmp/$name.tar.gz /etc/* /usr/local/etc/* /var/cron/* /boot/loader.conf /usr/local/www/* /var/named/* /var/db/mysql/* # копируем /usr/local/bin/lftp -u $l,"$p" -e "mkdir $D; mput -O /$D/ $path/tmp/$name.tar.gz;exit" $sb # удаляем созданый архив на локальной машине rm $path/tmp/$name.tar.gz # отсылаем отчет на email echo "BACKUP SERVER <<$n>>|date - $D | to server_backup - $sb" | mail -s "backup $n" admins@my.lan exit |
Не забываем добавить в крон
1 | 0 1 * * 2,6 /root/backup/backup.sh |
Тут сам скрипт.
Еще один вариант копирования на ftp сервер
1 2 3 4 5 6 7 | ftp -in myftpserver.lan<<_EOF_ user login password binary passive put /path/to/backup/localefile.tar.gz destinationfile.tar.gz quit _EOF_ |
Нравится эта статья? Подпишитесь на RSS-ленту и получите еще больше классной информации!
Отзывов нет