Как добавить уникальный идентификатор к имени файла в cron job?


8

Мой cronjob выглядит так:

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

Как я могу сделать имя файла уникальным каждый раз, когда cronjob пишет mysql_daily.dump?


2
Пожалуйста, найдите время, чтобы правильно написать название. Это делает поиск намного проще для всех.
Микель

1
Вы написали "Как добавить уникальный идентификатор в файл nime в задании cron".
Микель

Почему вы не используете automysqlbackup?
Stoeff

Ответы:


14

Для bash, может быть:

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

Лично я обычно ставлю только простые команды в моем crontab. Я поместил бы это в маленький сценарий и использовал сценарий в crontab. Это дает преимущество, заключающееся в том, что не требуется %экранирование символов (обычная ошибка crontab).

обновление сделало это ISO 8601 за комментарий @johan

хрон


1
Вы можете немного изменить синтаксис, и это будет идеальный формат даты ISO 8601. [ГГГГ] [ММ] [ДД] T [чч] [мм] [сс] Z, поскольку вы используете дату -u для UTC, вы можете добавить Z после даты;). en.wikipedia.org/wiki/…
Йохан,

3

Общая практика для этого - использовать временную метку, date +%sчтобы генерировать что-то полезное для маркировки файла (в качестве примера я использовал секунды, но вы можете использовать любой формат даты). На самом деле нет необходимости иметь действительно уникальное имя файла, если имя файла не конфликтует.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.