drush - неполноценный бэкап

Главные вкладки

Аватар пользователя Никки Никки 2 марта 2021 в 13:39
$ dr archive-dump --destination=../backups/site_backup.tar.gz
Database dump saved to c:\openserver\userdata\temp/drush_tmp_1614680771_603e12c33994a/site.sql                                                                               [success]
Archive saved to C:\OpenServer\domains\backups/site_backup.tar.gz

Архив файловой структуры создается. А вот дампа БД по указанному адресу не наблюдается.
Почему не работает? Как сделать чтобы работало?

Комментарии

Аватар пользователя Никки Никки 2 марта 2021 в 14:19

То, что можно другими командами создать отдельно и бэкап и дамп - безусловно. Но раз есть одна команда специально для этого, то хотелось бы заставить ее работать. Ведь и восстанавливаться тоже одной командой намного проще.

Аватар пользователя VasyOK VasyOK 3 марта 2021 в 0:18

Ну, я пока не все команды наизусть знаю. Adminer tar.gz жрет. Это для друга, а не для меня Smile

А разархивировать полученный архив какой командой?

Аватар пользователя bsyomov bsyomov 3 марта 2021 в 14:16

Вот разные варианты:

gunzip filename.gz
gzip -d filename.gz
zcat filename.gz | mysql dbname

А tar нужен для того, чтобы упаковать дерево каталогов с атрибутами правами и.т.п. в один файл. Когда файл и так один, в нем просто нет смысла.

Аватар пользователя adano adano 2 марта 2021 в 14:48

А если слэши в обратную сторону повернуть?
На винде вроде так правильно:
--destination=..\backups\site_backup.tar.gz

P.S. Без destination нормально всё?

Аватар пользователя Никки Никки 2 марта 2021 в 15:16

разобрался вобщем... оказывается, тот путь с дампом БД - он временный. Драш сбрасывает туда дамп, пока делается архив файловой структуры. Когда архив готов, дамп переносится в архив, а временная папка удаляется. В финальном бэкапе и файловая структура и дамп БД.

только осваиваю drush, поэтому и возникают такие нелепые ошибки.

Аватар пользователя adano adano 2 марта 2021 в 15:27

Ну как и сказал, смотрите архив...
Кстати, в более новых версиях драша, этой команды уже нет. В 9-ой, точно.

Аватар пользователя VasyOK VasyOK 2 марта 2021 в 16:44

А какие? И какими командами сделать файловый бекап без всякого мусора из папок файловой системы типа:
css
js
php
styles

Я только стереть и заархивировать могу.

Аватар пользователя Никки Никки 2 марта 2021 в 16:49

drush8 делает это одной командой. И файлы и бд. И восстанавливает тоже одной командой. Это удобно. Особенно, при переносах сайта.

Аватар пользователя marassa marassa 2 марта 2021 в 16:58

ivnish wrote:
Зачем делать бэкап драшем, когда есть консольные утилиты сервера?

Зачем Друпал, когда есть PHP? Зачем PHP, когда есть ассемблер? ;))

Аватар пользователя ivnish ivnish 2 марта 2021 в 18:08

Драш до сих пор есть не на всех хостингах, а на многих нужно поплясать с бубном, чтобы его завести. А tar, rsync, mysqldump точно есть везде)

Аватар пользователя marassa marassa 3 марта 2021 в 8:17

Ну а я много писал на ассемблере PDP11 (не сайты,конечно) лет 35 назад, и даже восьмеричные коды команд в уже скомпилированном исполняемом файле доводилось править руками (и я их знал и помнил, эти коды). Но зачем так делать, когда есть более эффективные инструменты? Вот когда их нет, тогда другое дело.

Аватар пользователя VasyOK VasyOK 3 марта 2021 в 0:21

В некоторый местах где Драша нет, его можно установить Композером. Но наверное хостинг может и заблокировать подобное.

Аватар пользователя cwpnaWLs7M4a cwpnaWLs7M4a 2 марта 2021 в 17:44

на друпале 7 вот так делаю единичный бэкап с копированием на уделенный сервер. обычно перед работой по изменению сайта:

dirofusername="username"
myfilename=mysite$( date +%H.%M_%d.%m.%Y ).tar
#echo -$myfilename-

#make archive
drush --root=/home/$dirofusername/public_html vset site_offline 1
drush archive-dump default --root=/home/$dirofusername/public_html --destination=/home/$dirofusername/myetcandwork/$myfilename
drush --root=/home/$dirofusername/public_html vset site_offline 0

#backup
scp ./$myfilename username@jura12.ru:~

Аватар пользователя cwpnaWLs7M4a cwpnaWLs7M4a 2 марта 2021 в 17:57

вам только ядро не нужно. надо бэкапить все иначе сайт работать не будет. если хотите уменьшить размер бэкапа то надо использовать инкрементальный бэкап с помощью duplicity . но не на всех хостингах он установлен. есть еще варианты с использованием rsync . но эту тему я прорабатываю.

Аватар пользователя Никки Никки 2 марта 2021 в 18:12

у меня есть сайты, которые весят по несколько гигабайт. А все что нужно - обновить ядро. По-моему, логично делать бэкап именно того, что будет меняться. К слову, команда drush up drupal - такой бэкап делает. Но только имею негативный опыт: в случае, если накатывание обновления ядра происходит с ошибками - бэкап не создается. То есть именно тот случай, когда бэкап необходим, чтобы откатиться, а он не создался.

Аватар пользователя cwpnaWLs7M4a cwpnaWLs7M4a 2 марта 2021 в 18:17

у меня тоже есть такая проблема. сайт друпала 7 на 2 гига. планирую делать по ssh sync на удаленный сервер. а там по накатанной дороге инкрементальный duplicity.

Аватар пользователя ivnish ivnish 3 марта 2021 в 9:32

Обычный алгоритм работы с git. Делаете коммит текущего состояния. Обновляете файлы. Если что-то пошло не так, делаете git reset и откатываетесь к состоянию последнего коммита. Но как уже сказали, бэкап БД всё равно нужно делать отдельно, потому что после выполнения обновления БД её уже нельзя будет использовать со старыми файлами (до обновления)

Аватар пользователя Никки Никки 3 марта 2021 в 9:48

спасибо!
с git-ом я тоже пока на вы. Как и drush предстоит все это на хостинге установить. Пока что все эксперименты на локальной машине на винде.

Аватар пользователя bsyomov bsyomov 2 марта 2021 в 22:42

Рекомендую rsnapshot: rsync в отличии от duplicity есть практически везде, куда пускают по ssh. А ему большее и не нужно.

Аватар пользователя marassa marassa 2 марта 2021 в 18:28
1

Никк wrote: все что нужно - обновить ядро. По-моему, логично делать бэкап именно того, что будет меняться

Но ведь меняться может ещё и БД. Представьте себе такой сценарий: Вы обновляете файлы ядра, запускаете update.php, который обновляет БД в соответствии с требованиями новой версии, всё проходит успешно, только... сайт не работает, ну или жестоко глючит - вполне реальная ситуация. Если Вы просто восстановите из бэкапа старые файлы ядра, то они не будут работать с обновленной структурой БД.