Резервне копіювання VDS та виділених серверів (Linux)

Резервне копіювання VDS та виділених серверів (Linux) Нижче наведено дві редакції скрипта для організації резервного копіювання даних (бекап) з VDS Linux. Обидві версії один раз на тиждень, щонеділі, створюють повну копію всіх даних і БД MySQL, а в інші - тільки інкрементні архіви. Для автоматичного запуску слід до диспетчера завдань cron додати рядок на кшталт наступного:

10 0 * /root/bin/backup.sh >/dev/null 2>&1

Для роботи скриптів необхідно, щоб обсяг вільного місця на диску в системі перевищував розмір даних, що копіюються.

Резервне копіювання на сервер FTP

Спочатку надайте значення декільком змінним. DIRS – перелік каталогів через пропуск для резервного копіювання. MUSER та MPASS – дані адміністратора СУБД MySQL для підключення. FTPU та FTPP – дані користувача для підключення до сервера FTP. FTPS – ім'я FTP сервера. EMAILID – адреса електронної пошти, на яку надсилатимуться звіти про помилки. Для коректної роботи необхідно, щоб у системі було встановлено клієнта ncftp:
#!/bin/sh

### System Setup ###
DIRS="/etc /home /var/www"
BACKUP=/tmp/backup.$$
NOW=$(date +"%d-%m-%Y")
INCFILE="/root/tar-inc-backup.dat"
DAY=$(date +"%a")
FULLBACKUP="Sun"

### MySQL Setup ###
MUSER="root"
MPASS="password"
MHOST="localhost"
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
GZIP="$(which gzip)"

### FTP server Setup ###
FTPD="/backup/incremental"
FTPU="user"
FTPP="password"
FTPS="ftp1.sim-networks.com"
NCFTP="$(який ncftpput)"

### Other stuff ###
EMAILID="user@yourdomain.com"

### Start Backup for file system ###
[ ! -d $BACKUP ] && mkdir -p $BACKUP || :

### See if we want to make a full backup ###
if [ "$DAY" == "$FULLBACKUP" ]; then
FTPD="/backup/full"
FILE="fs-full-$NOW.tar.gz"
tar -zcvf $BACKUP/$FILE $DIRS
else
i=$(date +"%Hh%Mm%Ss")
FILE="fs-i-$NOW-$i.tar.gz"
tar -g $INCFILE -zcvf $BACKUP/$FILE $DIRS
fi

### Start MySQL Backup ###
# Get all databases name
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do
FILE=$BACKUP/mysql-$db.$NOW-$(date +"%T").gz
$MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 > $FILE
done

### Dump backup using FTP ###
#Start FTP backup using ncftp
ncftp -u"$FTPU" -p"$FTPP" $FTPS<<EOF
mkdir $FTPD
mkdir $FTPD/$NOW
cd $FTPD/$NOW
lcd $BACKUP
mput
quit
EOF

### Find out if ftp backup failed or not ###
if [ "$?" == "0" ]; then
rm -f $BACKUP/

else
T=/tmp/backup.fail
echo "Date: $(date)">$T
echo "Hostname: $(hostname)" >>$T
echo "Backup failed" >>$T
mail -s "BACKUP FAILED" "$EMAILID" <$T
rm -f $T
fi

Колокейшн

Колокейшн

Дізнайтеся як розмістити сервер в безпечних дата-центрах в Германії

Читати далі

Резервне копіювання на локальний диск, мережеве сховище NFS, iSCSI

Розглянемо змінні, які потрібно налаштувати. DIRS – перелік каталогів через пропуск для резервного копіювання. MUSER та MPASS – дані адміністратора СУБД MySQL для підключення. MNTD – каталог, де буде організовано сховище резервних копій. Це може бути просто директорія на локальному жорсткому диску або змонтоване в цій точці мережеве сховище NFS або iSCSI: #!/bin/sh

### System Setup ###
DIRS="/etc /home /var/www"
BACKUP=/tmp/backup.$$
NOW=$(date +"%d-%m-%Y")
INCFILE="/root/tar-inc-backup.dat"
DAY=$(date +"%a")
FULLBACKUP="Sun"

### MySQL Setup ###
MUSER="root"
MPASS="password"
MHOST="localhost"
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
GZIP="$(which gzip)"

### Datastore Setup ###
MNTD="/mnt"
DSD="backup/incremental"

### Start Backup for file system ###
[ ! -d $BACKUP ] && mkdir -p $BACKUP || :

### See if we want to make a full backup ###
if [ "$DAY" == "$FULLBACKUP" ]; then
DSD="backup/full"
FILE="fs-full-$NOW.tar.gz"
tar -zcvf $BACKUP/$FILE $DIRS
else
i=$(date +"%Hh%Mm%Ss")
FILE="fs-i-$NOW-$i.tar.gz"
tar -g $INCFILE -zcvf $BACKUP/$FILE $DIRS
fi

### Start MySQL Backup ###
# Get all databases name
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do
FILE=$BACKUP/mysql-$db.$NOW-$(date +"%T").gz
$MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 > $FILE
done

mkdir -p $MNTD/$DSD/$NOW
mv -f $BACKUP/ $MNTD/$DSD/$NOW
rm -f $BACKUP/

Для оренди дідиків слід перейти сюди: https://www.sim-networks.com/dedicated

Чи була ця стаття корисною?

Теги:

#server

Сподобалася стаття?

Згода на використання файлів cookie

Натискаючи "Я згоден", ви даєте згоду на використання файлів cookie на нашому веб-сайті, щоб надати вам найбільш релевантний досвід, запам'ятовуючи ваші уподобання та повторні відвідування. Однак ви можете відвідати "Керування файлами cookie", щоб надати контрольовану згоду. Детальніше

Налаштування файлів cookie

Функціональні

Необхідні файли cookie мають важливе значення для основних функцій веб-сайту, і без них веб-сайт не буде працювати належним чином.

Аналітичні

Аналітичні файли cookie використовуються для розуміння того, як відвідувачі взаємодіють із веб-сайтом.

Рекламні

Рекламні файли cookie використовуються для надання відвідувачам релевантної реклами та маркетингових кампаній.