ファイル名に現在のタイムスタンプを含めますか?

ファイル名に現在のタイムスタンプを含めますか?

mysqldumpたとえば次のように、を使用して多くの DB バックアップを手動で作成する必要があります。

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 ハッカー wiki:

コマンド置換はコマンドの出力に展開されます。これらのコマンドはサブシェルで実行され、そのstdoutデータが置換構文の展開先になります。

基本的に、date -%Y%m%dを出力し20150917`コマンド置換のバックティック ( ) 形式を使用して、データベースのバックアップ用に指定したコマンドにその出力を含めます。次のようにも使用できます。

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

同じ結果を達成します。

関連情報