Incluir timestamp atual no nome do arquivo?

0

Eu tenho que criar muitos backups de banco de dados manualmente usando mysqldump , por exemplo, assim:

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

Gostaria de saber se há uma maneira fácil de incluir a data ou o registro de data e hora atuais no nome do arquivo, para que o arquivo fique assim: my-db-20150917.sql (ou outro formato também, até mesmo um timestamp). / p>     

por Louis B. 17.09.2015 / 09:44

1 resposta

1

Como posso datestamp meus nomes de arquivos?

Para incluir a hora / data atual em um nome de arquivo, use uma combinação de date e substituição de comando:

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

A man página para date explica as outras opções que você pode usar; mas neste contexto você também pode estar interessado em incluir o tempo:

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

Espere, o que é isso 'substituição de comando'?

Citação do bash hackers wiki na substituição de comandos :

The command substitution expands to the output of commands. These commands are executed in a subshell, and their stdout data is what the substitution syntax expands to.

Basicamente, date -%Y%m%d outputs 20150917 e usamos a forma backtick ( ' ) de substituição de comando para incluir essa saída no comando fornecido para fazer backup do banco de dados. Nós poderíamos igualmente ter usado:

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

para alcançar o mesmo resultado.

    
por 17.09.2015 / 09:47