Включить текущую метку времени в имя файла?
Я должен создать много резервных копий БД вручную, используя 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
добиться того же результата.