cronジョブでファイル名に一意のIDを追加するにはどうすればよいですか?


8

私のcronjobは次のようになります:

5 3 * * * mysqldump -u root test > /srv/backup/mysql_daily.dump

cronjobがmysql_daily.dumpを書き込むたびにファイル名を一意にする方法を教えてください。


2
タイトルを正しく綴るように時間をかけてください。誰にとってもずっと簡単に検索できます。
ミケル

1
「cronジョブでファイルnimeに一意のIDを追加する方法」を書きました。
ミケル

automysqlbackupを使用しないのはなぜですか?
2016

回答:


14

bashの場合:

... > /srv/backup/mysql_daily-$(date -u +\%Y\%m\%dT\%H\%M\%S)Z.${RANDOM}.dump

個人的に、私は通常、私の中に単純なコマンドのみを入れますcrontab。これを小さなスクリプトに入れて、そのスクリプトをで使用しますcrontab。これには、%文字をエスケープする必要がないという利点があります(一般的なcrontabの落とし穴)。

更新により、@ johanコメントごとにISO 8601になりました

cron


1
構文を少し変更するだけで、完全なISO 8601日付形式になります。[YYYY] [MM] [DD] T [hh] [mm] [ss] Z、UTCにはdate -uを使用するため、日付の後にZを追加できます;)。en.wikipedia.org/wiki/…–
ヨハン

3

これの一般的な方法は、タイムスタンプを使用date +%sしてファイルをマークするのに役立つ何かを生成することです(例として秒を使用しましたが、任意の日付形式を使用できます)。ファイル名が競合しない限り、本当に一意のファイル名である必要はありません。

5 3 * * * mysqldump -u root test > /srv/backup/mysql_daily_`date +\%s`.dump

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.