如何在cron作业中为文件名添加唯一ID?


8

我的cronjob看起来像这样:

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

如何在cronjob每次写入mysql_daily.dump时使文件名唯一?


2
请花点时间正确拼写标题。它使每个人的搜索变得更加容易。
Mikel

1
您编写了“如何在cron作业中为文件nime添加uniqie id”。
Mikel

为什么不使用automysqlbackup?
stoeff

Answers:


14

对于bash,也许:

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

就我个人而言,我通常只在其中输入简单的命令crontab。我将其放在一个小脚本中并在中使用该脚本crontab。这样做的好处是不需要%转义字符(常见的crontab陷阱)。

更新使其通过 @johan注释达到ISO 8601

克朗


1
您可以稍微修改一下语法,这将是完美的ISO 8601日期格式。[YYYY] [MM] [DD] T [hh] [mm] [ss] Z,因为您将日期-u用于UTC,所以可以在日期之后添加Z;)。en.wikipedia.org/wiki/…–
约翰

3

通常的做法是使用时间戳记date +%s来生成有用的标记文件的内容(我以秒为例,但可以使用任何日期格式)。只要文件名没有冲突,就没有必要使用真正唯一的文件名。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.