MySQL - 以前のバックアップを上書きせずにバックアップ[閉じる]

MySQL - 以前のバックアップを上書きせずにバックアップ[閉じる]

以前のバックアップを上書きせずにどのようにこのバックアップを作成できますか?これは私が作ったcrontabです。

* 2 * * *  /opt/bitnami/mysql/bin/mysqldump -u root -password--databases BDname>~/Backup/DBname

ベストアンサー1

日付が表示されたダンプファイルを簡単に作成できます。

* 2 * * *  /opt/bitnami/mysql/bin/mysqldump -u root -password--databases BDname >"$HOME/Backup/DBname_$(date +\%F).sql"

date +%F日付がフォームに生成されますYYYY-MM-DD。バックスラッシュは%crontabエントリで%特別な意味を持つため、エスケープする必要があります。

生成されたダンプファイル名今日しますDBname_2017-10-06.sql

dumpコマンドを独自のスクリプトに入れてスケジュールすると、より管理しやすいタスクが得られます。このcrontabエントリは、何が起こるかの境界ケースです。少しクローンの操作にはあまりにも「簡単ではありません」。

私はインタラクティブシェルを除くすべての場所でホームディレクトリの代わりにこれを使用する傾向があります$HOME。これは主にこれが変数として機能せず、スクリプトやここでのようにcrontabでより説明的であるためです。例を見る~~$HOME二重引用符の中でチルダ(〜)が拡張されないのはなぜですか?


以前のデータベースのバックアップもクリーンアップする必要がある場合は、次の質問に対する回答を参照してください。X日を過ぎたファイルを削除

これは別々のcronジョブで実行することも、2つのジョブ(バックアップ+クリーンアップ)を1つのスクリプトにまとめてスクリプトをスケジュールすることもできます(私がすること)。

おすすめ記事