Со временем созрел вопрос резервного копирования. Гугл предоставляет по этому вопросу много вариантов, меня же интересует что то попроще.

  • Поместить и сжать в архив нужные папки
  • Скопировать на выделенный для бекапов 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-ленту и получите еще больше классной информации!