Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- d=`date +%Y-%m-%d`
- t=`date +%H-%M-%S`
- backup_name=$HOSTNAME-$d-$t
- log=/home/$backup_name.log
- log_dir=
- backup_dir=
- password=
- data_server_ip=
- data_server_user=
- backup_server=
- # создание инкрементного бекапа
- backup_create () {
- tar -cpf /home/$backup_name.tar /var/www;
- if [[ $? -ne 1 ]];
- then
- echo "$d - $t - create backup_name = true" >> $log;
- else
- echo "$d - $t - create backup_name = false" >> $log;
- fi;
- }
- # добавление конфигов nginx и apache2 в бекап если они нужны
- backup_for_config () {
- for programm in nginx apache2;
- do
- dpkg -l | grep $programm;
- if [[ $? -ne 0 ]];
- then
- tar -rpf /home/$backup_name.tar /etc/$programm/sites-available /etc/$programm/sites-enabled;
- if [[ $? -ne 1 ]];
- then
- echo "$d - $t - $programm backup = true" >> $log;
- else
- echo "$d - $t - $programm backup = false" >> $log;
- fi;
- fi;
- done;
- }
- # создание дампа баз данных
- database_dump () {
- for programm in mysql postgresql;
- do
- dpkg -l | grep $programm;
- if [[ $? -eq mysql ]];
- then
- mysqldump -u root -p$i --all-databases > $backup_name.sql;
- if [[ $? -ne 1 ]];
- then
- echo "$d - $t - create mysql database dump = true" >> $log;
- else
- echo "$d - $t - create mysql database dump = false" >> $log;
- fi;
- elif [[ $? -eq postgresql ]];
- then
- sudo -u postgres pg_dumpall > /home/backup_name.sql
- if [[ $? -ne 1 ]];
- then
- echo "$d - $t - create postgresql database dump = true" >> $log;
- else
- echo "$d - $t - create postgresql database dump = false" >> $log;
- fi;
- fi;
- fi;
- done;
- }
- # добавление баз данных в архив
- add__dump_database_to_tar () {
- tar -rpf /home/$backup_name.tar /home/$backup_name.sql;
- if [[ $? -ne 1 ]];
- then
- echo "$d - $t - add database dump to tar = true" >> $log;
- else
- echo "$d - $t - add database dump to tar = false" >> $log;
- fi;
- }
- # сжатие архива
- create_gzip () {
- gzip -9 /home/$backup_name.tar.gz
- if [[ $? -ne 1 ]];
- then
- echo "$d - $t - gzip compression = true" >> $log;
- else
- echo "$d - $t - gzip compression = false" >> $log;
- fi;
- }
- # копирование бекапа с удаленного сервра в хранилище
- copy_backup () {
- rsync -azh /home/$backup_name.tar "${data_server_user}"@"${data_server_ip}":$backup_dir;
- if [[ $? -ne 1 ]];
- then
- echo "$d - $t - copy backup = true" >> $log;
- else
- echo "$d - $t - copy backup = false" >> $log;
- fi;
- }
- # копирование лог файла с удаленного сервра на сервер бекапов
- copy_log () {
- rsync -azh $log root@"${backup_server}":$log_dir;
- }
- # удаление оригинального файла бекапа с удаленного сервра
- del_origin_backup () {
- rm -rf /home/$backup_name.tar;
- }
- # удаление оригинального файла дампа базы данных с удаленного сервера
- del_origin_dump () {
- rm -rf /home/$backup_name.sql;
- }
- # удаление оригинального лога с удаленного сервера
- del_origin_log () {
- rm -rf /home/$backup_name.log;
- }
- # структура скрипта
- script_body () {
- echo "---------------------------------" >> $log;
- echo "--------------BEGIN--------------" >> $log;
- echo "---------------------------------" >> $log;
- backup_create;
- backup_for_config;
- database_dump;
- add__dump_database_to_tar;
- create_gzip;
- copy_backup;
- echo "---------------------------------" >> $log;
- echo "---------------END---------------" >> $log;
- echo "---------------------------------" >> $log;
- copy_log;
- del_origin_backup;
- del_origin_dump;
- del_origin_log;
- }
- script_body
- exit
Add Comment
Please, Sign In to add comment