Как добавить задание crontab в crontab, используя скрипт bash с отметкой даты? - PullRequest
0 голосов
/ 01 июня 2019

здесь был оригинальный вопрос Как добавить задание crontab в crontab, используя скрипт bash?

 #!/bin/bash
cronjob="* * * * * /path/to/command"
(crontab -u userhere -l; echo "$cronjob" ) | crontab -u userhere -

, если я попытаюсь использовать команду ниже, bash импортирует команду и заменяет (дата + \% H _ \% M - \% d. \% m. \% Y на дату и время импорта, и я вижу импортированную команду с фиксированной отметкой даты как .... / mysql / 21_18-27.05.2019_dbbackup.sql.gz

есть ли способ сохранить дату в формуле?

cronjob="05 21 * * * /usr/bin/mysqldump -u mysqluserhere -pmysqlpassword DBname | gzip > /path/to/mysql/$(date +\%H_\%M-\%d.\%m.\%Y)_dbbackup.sql.gz" (crontab -u userhere -l; echo "$cronjob" ) | crontab -u userhere -

Большое спасибо

Ответы [ 2 ]

0 голосов
/ 01 июня 2019

Использование одинарных кавычек вместо двойных вокруг строки не даст оболочке ничего интерполировать.

Как минимум, переключитесь на одинарные кавычки вокруг присвоения переменной:

cronjob='05 21 * * * /usr/bin/mysqldump -u mysqluserhere -pmysqlpassword DBname | gzip > /path/to/mysql/$(date +\%H_\%M-\%d.\%m.\%Y)_dbbackup.sql.gz'
(crontab -u userhere -l; echo "$cronjob" ) |
crontab -u userhere -

, хотя, конечно,переменная, которую вы используете только один раз, довольно бессмысленна.

(crontab -u userhere -l
 echo '05 21 * * * /usr/bin/mysqldump -u mysqluserhere -pmysqlpassword DBname | gzip > /path/to/mysql/$(date +\%H_\%M-\%d.\%m.\%Y)_dbbackup.sql.gz' ) |
crontab -u userhere -

Возможно, вам также не нужен полный путь к mysqldump.

0 голосов
/ 01 июня 2019

вы можете

а) экранировать $ в пути, как это:

    /path/to/mysql/\$(date +\%H_\%M-\%d.\%m.\%Y)_dbbackup.sql.gz

таким образом «$ (date ...» будет отображаться на вкладке cron

b) поместить всю команду в скрипт (файл), а затем просто выполнить этот файл из cronjob

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...