У меня есть файл конфигурации drush ~ / .drush / drushrc.php:
if (!isset($options['structure-tables']['common'])) {
$options['structure-tables']['common'] = array(
'cache', 'cache_*', 'history', 'search_*', 'sessions', 'watchdog'
);
}
$options['structure-tables']['common'] = array_merge($options['structure-tables']['common'],
array('ctools_css_cache', 'ctools_object_cache', 'logz', 'views_object_cache')
);
И у меня есть файл сценария bash:
/usr/bin/drush sql-dump --root="/home/username/domains/sitename/www" --skip-tables-key="common" --gzip --result-file=/home/username/backup/$year/$month/dbname_$date_now_time.sql
Но когда я выполняю его, файл резервной копии все еще содержит данные в кеш-таблицах. Что я делаю неправильно?
И второй вопрос: если я помещу это в crontab, нужно ли мне помещать файл конфигурации где-нибудь еще?
Я использую Drush версии 8.
drushrc.php
, не запускается ли? Попробуйте var_dump из$options['structure-tables']
вdrushrc.php
только , чтобы подтвердить , что это время запуска.Ответы:
Извините, я не могу вам помочь с вашим первым вопросом ...
Ваш второй вопрос задан:
В Drush документации на сайте ссылки на drushrc.php пример файла , который говорит , где вы можете поместить файл гс:
https://raw.githubusercontent.com/drush-ops/drush/master/examples/example.drushrc.php
Для Cron документация рекомендует настроить Drush для запуска под тем же пользователем, который запускает ваш веб-сервер. При этом я рекомендую вам поместить свой rc-файл в папку (5), общесистемную папку конфигурации. Да, более локализованные файлы Drush rc затем должны будут переопределить ваш системный файл конфигурации по мере необходимости (да ладно).
источник
Дамп всех таблиц, кроме
cache
таблицы и таблиц, начинающихся сcache_
.Только структура базы данных. Нет данных вообще.
Только данные. Нет данных кеша и нет структуры кеша.
Нет данных кэша, но дамп в их структурах.
документация sql-dump
источник
--extra=--no-data
Не работает для меня, но я был в состоянии сделать--skip-tables-list="*"
и что работал."cache,cache_*"
чтобы ваша оболочка не совпала с файлами, вызываемымиcache_*
в вашем рабочем каталоге.По какой-то причине cache_ * не работал для меня с drush 9+, пока я не опустил подчеркивание. Однако это может быть характерно для моего (серверного) bash / терминала. Что сработало для меня:
и вы всегда можете добавить
--verbose
фактический дамп mysql и его параметр --ignore.источник
cache_*
совпадает с какими-либо файлами в вашем текущем каталоге, то bash выведет эти имена и использует их в качестве аргумента. Вы можете поместить двойные кавычки вокруг него, чтобы гарантировать, что литеральное значение передается команде вместо любых файлов, которые она содержит.