скрипт для бэкапа сайта

Напишем простенький скрипт для бэкапа БД и файлов сайта.


#!/bin/bash
PROJNAME=backupproject  #Имя проекта
CHARSET=utf8 #Кодировка базы данных (utf8)
DBNAME=test_db #Имя базы данных для резервного копирования
DBFILENAME=backup_db #Имя дампа базы данных
ARFILENAME=backuptar #Имя архива с файлами
HOST=localhost #Хост MySQL
USER=someuser #Имя пользователя базы данных
PASSWD=password  #Пароль от базы данных
DATADIR='/media/user/backups'  #Путь к каталогу где будут храниться резервные копии
SRCFILES='/media/user/site'  #Путь к каталогу файлов для архивирования
PREFIX=`date +%F` #Префикс по дате для структурирования резервных копий

#start backup
echo "[--------------------------------[`date +%F--%H-%M`]--------------------------------]" 
echo "[----------][`date +%F--%H-%M`] Run the backup script..."
# Удаляю предыдущий бэкап если он сущ-ет
if test "$(ls -A $DATADIR)";then
	rm -rf $DATADIR/*
	echo "old backup deleted"
else
	echo "old backup not deleted!!!"
fi
mkdir $DATADIR/$PREFIX 2> /dev/null 
echo "[++--------][`date +%F--%H-%M`] Generate a database backup..."
#MySQL dump
mysqldump --user=$USER --host=$HOST --password=$PASSWD --default-character-set=$CHARSET $DBNAME > $DATADIR/$PREFIX/$DBFILENAME-`date +%F--%H-%M`.sql
if [[ $? -gt 0 ]];then 
echo "[++--------][`date +%F--%H-%M`] Aborted. Generate database backup failed."
exit 1
fi
echo "[++++------][`date +%F--%H-%M`] Backup database [$DBNAME] - successfull."
tar -czpf $DATADIR/$PREFIX/$DBFILENAME-`date +%F--%H-%M`.sql.tar.gz $DATADIR/$PREFIX/$DBFILENAME-`date +%F--%H-%M`.sql
if [[ $? -eq 0 ]];then
rm -rf $DATADIR/$PREFIX/$DBFILENAME-`date +%F--%H-%M`.sql
fi
echo "[++++++----][`date +%F--%H-%M`] Copy the source code project [$PROJNAME]..."
#Src dump
cd $SRCFILES/..
tar -czpf $DATADIR/$PREFIX/$ARFILENAME-`date +%F--%H-%M`.tar.gz `basename $SRCFILES` 2> /dev/null
if [[ $? -gt 0 ]];then
echo "[++++++----][`date +%F--%H-%M`] Aborted. Copying the source code failed."
exit 1
fi
echo "[++++++++++][`date +%F--%H-%M`] All operations completed successfully!"
exit 0

Запуск скрипта по крону смотрите в этой статье http://phpjs.ru/2017/05/16/cron/

Leave a comment

Your email address will not be published.


*