LINUX.ORG.RU

Изменить скрипт для быстрого добавления/удаления сайтов.

 


0

1

ТРОЛЛИ МИМО!

Имею скрипт:

#!/bin/bash
Name=site1
BP_name_file=$Name."$(date +'%Y%b%d%R')".tar.gz
LOGFILE=/home/user/backup/wplog.log
echo "=====================================================" >>$LOGFILE
echo "$(date +'%d-%b-%Y %R')" >>$LOGFILE
echo "Задание \"$Name\" запущено..." >>$LOGFILE
OLD_IFS=$IFS
IFS=$'\n'
Source_dir="/var/www/html/drupal/"
TGT_dir="/home/user/backup/"
tar -czf $TGT_dir$BP_name_file $Source_dir &>>$LOGFILE
STATUS=$?
IFS=$OLD_IFS
echo "Finish backup ${srv_name}"

Name1=site2
BP_name_file1=$Name1."$(date +'%Y%b%d%R')".tar.gz
LOGFILE=/home/user/backup/wplog.log
echo "=====================================================" >>$LOGFILE
echo "$(date +'%d-%b-%Y %R')" >>$LOGFILE
echo "Задание \"$Name1\" запущено..." >>$LOGFILE
OLD_IFS=$IFS
IFS=$'\n'
Source_dir1="/var/lib/mysql/wp"
TGT_dir1="/home/user/backup/"
tar -czf $TGT_dir1$BP_name_file1 $Source_dir1 &>>$LOGFILE
STATUS=$?
IFS=$OLD_IFS
echo "Finish backup ${srv_name}"

Name2=site3
BP_name_file2=$Name2."$(date +'%Y%b%d%R')".tar.gz
LOGFILE=/home/user/backup/wplog.log
echo "=====================================================" >>$LOGFILE
echo "$(date +'%d-%b-%Y %R')" >>$LOGFILE
echo "Задание \"$Name2\" запущено..." >>$LOGFILE
OLD_IFS=$IFS
IFS=$'\n'
Source_dir2="/var/lib/mysql/opencart"
TGT_dir2="/home/user/backup/"
tar -czf $TGT_dir2$BP_name_file2 $Source_dir2 &>>$LOGFILE
STATUS=$?
IFS=$OLD_IFS
echo "Finish backup ${srv_name}"
date
# Папка, куда будем складывать архивы
syst_dir=/home/user/backup/
# Имя сервера, который архивируем
srv_name=user
# Адрес сервера, который архивируем
srv_ip=127.0.0.1
# Пользователь rsync на сервере, который архивируем
srv_user=backup
# Ресурс на сервере для бэкапа
srv_dir1="/home/user/backup/{$BP_name_file,$BP_name_file1,$BP_name_file2}"
echo "Start backup ${srv_name}"
# Создаем папку для инкрементных бэкапов
mkdir -p ${syst_dir}${srv_name}/
cd ${syst_dir}${srv_name}/
rm $(ls -t | tail -n +4) -rf
# Запускаем непосредственно бэкап с параметрами
rsync -a --delete-after $srv_name@$srv_ip:$srv_dir1 ${syst_dir}${srv_name}/
date
echo "Finish backup ${srv_name}"

Что нужно изменить в коде?



Последнее исправление: SysError (всего исправлений: 3)

Ответ на: комментарий от vodz

Я не чего не предъявляю. Простите если где то я был резок. Большое спасибо Вам что выделили время и помогаете мне.

SysError
() автор топика
Ответ на: комментарий от vodz

Сейчас работает. Понимаю сам делал с запитыми. Но вот выплывает проблема того что оно теперь все эти пути бэкапит в один файл, чего я точно не хочу. Потому как можно задать эту строку так что бы он делал 3 бэкапа каждого отдельного сайта? Спасибо за терпение.

SysError
() автор топика
Ответ на: комментарий от SysError

Я вам показал как сделать массив с эмуляцией двухмерности. Массивы обрабатываются циклами. Что-то типа такого:

for i in "${sites[@]}"; do
 backup ${i//:/ }
done

vodz ★★★★★
()
Ответ на: комментарий от vodz

Большое спасибо. Все работает. А можно в этом цикле запустить бэкап сайтов и базы данных? Тобишь вписать «${db_sites[@]}» через запитую или как то так. Что бы он читал оба массива

SysError
() автор топика
Ответ на: комментарий от SysError

Вы проговаривайте свои мысли. «Что бы он» - кто он? По тексту у вас получается цикл. Да еще по русским там пробел перед «бы» не нужен. Массивы у вас хоть и однотипные, но функции разные, потому клеить лучше не надо. Если вы ручаетесь, что количество в обоих массивах всегда будет равно, то тогда можно сделать в цикле по индексу одного массива: ${!sites[@]}, но это не красиво.

vodz ★★★★★
()
Ответ на: комментарий от vodz

Извиняюсь за свою не конкретность. Да я вижу что если сделать все под один массив то выходит не очень красивая картина. Но вот если все же попытаться вписать эти массивы в один цикл то как это прописать?

SysError
() автор топика
Ответ на: комментарий от SysError

Я вроде уже всё рассказал... Вам обязательно код чтоли? Ну как-то так:

sites=("site1:/path/site1" "site2:/path/site")
dbes=("base1:/backup1" "base2:/backup2")

for i in "${!sites[@]}"; do
 backup_sites ${sites[i]//:/ }
 backup_db ${dbes[i]//:/ }
done

vodz ★★★★★
()
Последнее исправление: vodz (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.