Включить текущую метку времени в имя файла?
Я должен создать много резервных копий БД вручную, используя mysqldump
Например, вот так:
mysqldump -uroot -proot my-db > my-db.sql
Мне интересно, есть ли простой способ включить текущую дату или метку времени в имя файла, чтобы файл выглядел так: my-db-20150917.sql
(или другой формат в порядке, даже отметка времени).
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
и мы используем обратный тик (`
) форма подстановки команд, чтобы включить эти выходные данные в команду, которую вы указали для резервного копирования базы данных. Мы могли бы также использовать:
mysqldump -uroot -proot my-db > my-db-$(date +%Y%m%d).sql
добиться того же результата.