LINUX.ORG.RU

Клонирует папку в папке

 


0

1

Доброго времени суток. Мой скрипт:

#!/bin/bash

TGT_dir="/home/user/backup/"

backup() {
Name=$1
 Source_dir=$2
 BP_name=$Name."$(date +'%Y_%b_%d%R')".tar.gz
 echo "====================================================="
 echo "$(date +'%d-%b-%Y %R')"
 echo "Задание \"$Name\" запущено..."
 tar -czf $TGT_dir$BP_name $Source_dir
 echo "Finish backup ${Source_dir}"
 srv_dir="${srv_dir}${syst_dir}/$BP_name"
}

backup site1 /var/www/html/drupal/
backup site2 /var/www/html/wp/
backup site3 /var/www/html/opencart/
backup db_site1 /var/lib/mysql/drupal/
backup db_site2 /var/lib/mysql/wordpress/
backup db_site3 /var/lib/mysql/opencart/

date
syst_dir=/home/user/backup/
srv_name=user
srv_ip=127.0.0.1
srv_user=backup
srv_dir="/home/user/backup/{$BP_name,$BP_name1,$BP_name2,$db_name,$db_name1,$db_name2}"
echo "Start backup ${srv_name}"
mkdir -p ${syst_dir}${srv_name}/
cd ${syst_dir}${srv_name}/
rm $(ls -t | tail -n +7) -rf
rsync -a --delete-after $srv_name@$srv_ip:$srv_dir ${syst_dir}${srv_name}
date
echo "Finish backup ${srv_name}"
После чего в папке с бэкап создается папка user в которую идут файлы с rsync'а. И последующие бэкапы в той же папке еще создается такая же папка. Что в скрипте заставляет так делать?

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

Пробовал, увы не помогло( Возможно знаете как еще можно:

backup site1 /var/www/html/drupal/
backup site2 /var/www/html/wp/
backup site3 /var/www/html/opencart/

and

backup db_site1 /var/lib/mysql/drupal/
backup db_site2 /var/lib/mysql/wordpress/
backup db_site3 /var/lib/mysql/opencart/

укомплектовать в 2 переменных?

SysError ()

А зачем локальный ip ?

rsync -a --delete-after $srv_name@$srv_ip:$srv_dir ${syst_dir}${srv_name}


Бери сразу

rsync -a --delete-after $srv_dir ${syst_dir}${srv_name}

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

Оно и так все работает и по задаче оно должно быть именно так. Вопрос как бы почему оно создает эти папки и как укомплектовать те строчки в 2 переменных

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

Может задача не правильно поставлена ?
Вы бы вывод ls или tree показали, до конца не понятно что означает

..последующие бэкапы в той же папке еще создается такая же папка

И да телепаты в отпуске.

Samamy ★★★ ()
Последнее исправление: Samamy (всего исправлений: 1)
Ответ на: комментарий от Samamy

Вот:

~/backup/user$ ls -p
db_site1.2018_Фев_2212:43.tar.gz  site1.2018_Фев_2212:42.tar.gz  user/
db_site2.2018_Фев_2212:44.tar.gz  site2.2018_Фев_2212:43.tar.gz
db_site3.2018_Фев_2212:44.tar.gz  site3.2018_Фев_2212:43.tar.gz
И юзер новый который он создал пуст, после чего в некст бэкапе он в этом пустом создает бэкап и создает еще один новую пустую папку юзер и так далее...

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

Не смогу подсказать, а какая задача стоит складывать все бекапы в /home/user/backup/ и удалять последние 7 бекапов ?
Вы бы хоть задачу написали

И да телепаты в отпуске.

Samamy ★★★ ()
Последнее исправление: Samamy (всего исправлений: 3)
Ответ на: комментарий от SysError
mkdir -p ${syst_dir}${srv_name}/
cd ${syst_dir}${srv_name}/
rsync -a --delete-after $srv_name@$srv_ip:$srv_dir ${syst_dir}${srv_name}


syst_dir=/home/user/backup/ зачем ему еще srv_name=user

Samamy ★★★ ()

вы бы почитали как корректно делать бекап баз данных

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

А на счет:

backup site1 /var/www/html/drupal/
backup site2 /var/www/html/wp/
backup site3 /var/www/html/opencart/

and

backup db_site1 /var/lib/mysql/drupal/
backup db_site2 /var/lib/mysql/wordpress/
backup db_site3 /var/lib/mysql/opencart/

укомплектовать в 2 переменных? Что бы был просто backup site and db_site и по этих переменных оно считывало все 3 пути

SysError ()
Ответ на: комментарий от SysError
unset arr
declare -A arr
arr=([site1]="/var/drupal" [site2]="/var/wp" [site3]="/var/open")
for i in ${!arr[@]}; do cp $i ${arr[$i]}; done

в теле цикла подставить свои хотелки из функции вместо cp.

nerve ★★ ()
Последнее исправление: nerve (всего исправлений: 1)
Ответ на: комментарий от SysError

Не надо так делать. Это 6 разных сущностей, с которыми совершается одинаковая операция упаковки в тар.гз.

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

Я сам бы так не делал, но стоит задача сделать именно так. Хотя я соглашусь с Вами что лучше что бы это было как отдельные сущности. Но если брать такое пожелание, то как лучше укомплектовать их?

SysError ()

Я сейчас повнимательнее присмотрелся в скрипт и должен сказать, что это вызов рсинка - это чёрт знает что. Тебе стоит написать русским языком что ты пытаешься сделать - не для нас, а для самого себя! Сейчас всё, что после date - это каша.

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

Я хз, это бредовая/вредная задача. На соседние строчки расставить и пустыми строками пары друг от друга отделить.

Естественно, как уже говорилось, базы sql так не бекапят, получится мусор.

legolegs ★★★★★ ()
Последнее исправление: legolegs (всего исправлений: 2)
Ответ на: комментарий от SysError

Пример? О_о Ладно. Это

backup site1 /var/www/html/drupal/
backup site2 /var/www/html/wp/
backup site3 /var/www/html/opencart/
backup db_site1 /var/lib/mysql/drupal/
backup db_site2 /var/lib/mysql/wordpress/
backup db_site3 /var/lib/mysql/opencart/
заменить на это:
backup site1 /var/www/html/drupal/
backup db_site1 /var/lib/mysql/drupal/

backup site2 /var/www/html/wp/
backup db_site2 /var/lib/mysql/wordpress/

backup site3 /var/www/html/opencart/
backup db_site3 /var/lib/mysql/opencart/

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

Значит я правильно понял, суть то не изменилась и сугубо все остается таким же. А хотелось все эти , строчек вписать в 2 и переменной вызывать через backup

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

ты что слепой? тебе же написали выше как это делается в твоем случае вместо твоего «хотелось все строчки вписать в две переменные».

nerve ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.