С Новым годом! Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
 Аватар для ProCode
37 / 37 / 6
Регистрация: 11.12.2016
Сообщений: 329
Записей в блоге: 6

Сделать бэкап папки сайта в .zip + в другой .zip дамп БД (MySQL) и все это на crontab

18.08.2017, 11:34. Показов 2345. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста готовое решение (ссылку на него или код здесь) для описанной в сабже типовой задачи: сдампить обычный сайт - папка с файлами + БД(MySQL). Т.е.

1. Упаковать папку с файлами сайта в ZIP, назвать архив с использованием текущей даты, и переместить его в папку с архивами.

2. То же самое сделать с базой данных (используя mysqldump).

3. И чтобы это было в виде исполняемого .sh файла, который можно через cron запускать.

Спасибо.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.08.2017, 11:34
Ответы с готовыми решениями:

Fust.zip на флешке, все папки приобрели расширение vbs
После использования флешки в вузе, дома не открывается ни одна папка (расширение vbs) Появился архив FUST.zip На флешке все курсовые, и не...

Зная путь к папке с zip архивами распаковать все архивы в свои папки
есть папка, в которой лежат архивы. необходимо при нажатии на кнопку извлечь все архивы(каждый архив в свою папку) как распаковать...

Переделать код так, чтобы из указанной папки распаковывались все zip-архивы, каждый — в свою папку
есть код: ZipFile="C:\1\док_12345919.zip" ExtractTo="C:\1\док_12345919" Set fso =...

6
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
18.08.2017, 11:40
Bash
1
2
3
man zip
man date
man mv
0
 Аватар для ProCode
37 / 37 / 6
Регистрация: 11.12.2016
Сообщений: 329
Записей в блоге: 6
18.08.2017, 13:14  [ТС]
Цитата Сообщение от Marinero Посмотреть сообщение
man zip
man date
man mv
Это прекрасный ответ.

Но мне бы готовый .sh файлик, ибо задача, повторюсь, типовая. Наверняка у кого-то в закромах Родины есть
0
Эксперт .NET
 Аватар для Rius
13052 / 7618 / 1664
Регистрация: 25.05.2015
Сообщений: 23,162
Записей в блоге: 14
18.08.2017, 13:22
Лучший ответ Сообщение было отмечено ProCode как решение

Решение

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/bin/bash
TIMESTAMP=$(date +"%Y%m%d-%H%M%S")
echo "Создание резервной копии от $TIMESTAMP"
 
declare -a SITES_DIR=(site1.com site2.com);
 
INPUT_DIR=~/
OUTPUT_DIR=~/output
 
echo "Удаление предыдущих копий ..."
find $OUTPUT_DIR -maxdepth 1 -type f -regex '.*tar\.gz' -delete
 
echo "Архивация сайтов ..."
for SITE_DIR in ${SITES_DIR[@]}
do
  echo "Обработка каталога $SITE_DIR ..."
  #ls $INPUT_DIR/$SITE_DIR
 
  echo "Создание нового архива ..."
  tar --exclude-vcs --exclude="binaries" -cpzf  $OUTPUT_DIR/$SITE_DIR-$TIMESTAMP.tar.gz $INPUT_DIR/$SITE_DIR
done
 
 
echo "Архивация баз данных ..."
 
declare -a DATABASES=(site_db);
for DATABASE in ${DATABASES[@]}
do
  echo "Обработка базы данных '$DATABASE'"
 
  SQL_FILENAME=$OUTPUT_DIR/$DATABASE-$TIMESTAMP.sql
  TAR_FILENAME=$SQL_FILENAME.tar.gz
 
  mysqldump -h localhost -u $DATABASE -p<ПАРОЛЬ> $DATABASE  > $SQL_FILENAME
  tar -czf $TAR_FILENAME $SQL_FILENAME
  rm $SQL_FILENAME
 
done
Надо бы на другой язык переделать.
1
 Аватар для ProCode
37 / 37 / 6
Регистрация: 11.12.2016
Сообщений: 329
Записей в блоге: 6
18.08.2017, 14:50  [ТС]
Rius, респектище!!!

Я и не думал что в bash можно такие сложные конструкции писать!! ))))

Прям как настоящий язык программирования получается, да?

Думал этот скрипт будет простой линейной последовательностью команд zip, mv и т.п.

А тут и переменные и циклы ))

Буду разбираться сейчас.

Добавлено через 11 минут
Rius, вроде всё интуитивно понятно, кроме вот этого:

Bash
1
2
declare -a DATABASES=(site_db);
for DATABASE in ${DATABASES[@]}
Понятно, что во второй строке перебор массива, но непонятно откуда он берется.

что такое DATABASES=(site_db) ? site_db - это что за значение?

И еще вопрос:

- У меня почти к каждой базе свой юзер с паролем - есть ли какое-то простое решение(дополнение к коду) для этого варианта?

Добавлено через 11 минут
...и да, тот же самый вопрос и по конструкции:

Bash
1
2
3
4
5
declare -a SITES_DIR=(site1.com site2.com);
 
...
 
for SITE_DIR in ${SITES_DIR[@]}
я правильно понял, что

Bash
1
declare -a SITES_DIR=(site1.com site2.com);
это мы задаем массив и сразу заполняем его значениями?
0
Эксперт .NET
 Аватар для Rius
13052 / 7618 / 1664
Регистрация: 25.05.2015
Сообщений: 23,162
Записей в блоге: 14
18.08.2017, 15:12
Да, там массив так определяется.
Для БД тоже планировал массив, но выходило слишком сложно. Так что часть с БД только на одну работает.
Язык это ужасен. Работает правда повсюду.
Надо бы на python. У меня руки не дошли пока.
1
 Аватар для ProCode
37 / 37 / 6
Регистрация: 11.12.2016
Сообщений: 329
Записей в блоге: 6
18.08.2017, 15:23  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
Да, там массив так определяется.
Для БД тоже планировал массив, но выходило слишком сложно. Так что часть с БД только на одну работает.
Язык это ужасен. Работает правда повсюду.
Надо бы на python. У меня руки не дошли пока.
Ага, теперь всё полностью прояснилось

Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.08.2017, 15:23
Помогаю со студенческими работами здесь

Сравнение времени локального Zip архива с Zip архивом на FTP
Доброго времени суток Нужна помощь!!! Нужно сравнить время локального Zip архива с Zip архивом на FTP и скачать его если дата и время...

Разархивировать zip-файл в Командной строке с использованием 7-Zip
Добрый вечер! Парни, дико извиняюсь, наверно уже ни раз обсуждалось в разделе, но быстро поискав по нему не нашел понятного для меня...

Как извлечь все папки и файлы zip архива,не считая корневой директории архива и какая кодировка у архиватора winzip?
Всех приветствую. Имеется zip архив. Нужно извлечь все файлы в определённую папку на sd карте,не считая корневой директории архива,если она...

Создание zip-папки
Здравствуйте. Поставлена задача написать программу, которая делает резервные копии файлов с помощью zipfile. zip-папка создаётся, однако в...

«Лечение вирусов/malware» полученные логи: virusinfo_syscure.zip, virusinfo_syscheck.zip, log.txt, info.txt
баннеры


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru