Я должен создать много резервных копий БД вручную, используя mysqldump , например, вот так:

mysqldump -uroot -proot my-db > my-db.sql

Мне интересно, есть ли простой способ включить текущую дату или метку времени в имя файла, чтобы файл выглядел так: my-db-20150917.sql (или другой формат тоже подойдет , даже метка времени).

1 ответ1

1

Как я могу пометить даты своими именами файлов?

Чтобы включить текущее время / дату в имя файла, используйте комбинацию date и подстановки команд:

mysqldump -uroot -proot my-db > my-db-`date +%Y%m%d`.sql

Страница man для date объясняет другие опции, которые вы можете использовать; но в этом контексте вас также может заинтересовать включение времени:

mysqldump -uroot -proot my-db > my-db-`date +%Y%m%d-%H%M`.sql

Подождите, что это за «подстановка команд»?

Цитата из bash hackers wiki о подстановке команд:

Подстановка команд распространяется на вывод команд. Эти команды выполняются в подоболочке, и их стандартный stdout - это то, к чему расширяется синтаксис замещения.

По сути, date -%Y%m%d выводит 20150917 , и мы используем форму подстановки команды backtick (`), чтобы включить эти выходные данные в команду, которую вы указали для резервного копирования базы данных. Мы могли бы также использовать:

mysqldump -uroot -proot my-db > my-db-$(date +%Y%m%d).sql

добиться того же результата.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .