У меня возникла проблема с использованием команды linux 'date' внутри cronjob.Использовать команду даты linux в cronjob
Linux версия: CentOS Linux 7 (основной)
Что мне нужно, это дата 9 дней назад в качестве параметра моего test.sh сценария. Сегодня 10-08-2016, работа, которая должна быть выполнена в:
/scripts/test.sh 2016-08-01
Мой код в кронтаб:
DATEVAR=$(date +%F --date="9 days ago")
0 12 * * tue ~/scripts/test.sh $($DATEVAR)
Так команда Linux является «дата +% F --date = "9 дней назад", но мне нужно, чтобы это было выполнено и задано как параметр. Что она делает сейчас запустить скрипт с таким параметром «$ (дата»:
~/scripts/test.sh $(date
Я попытался установить DATEVAR со следующими вещами без Succes:
DATEVAR='date +%F --date="9 days ago"'
DATEVAR=date +%F --date="9 days ago"
DATEVAR=$(date +%F --date="9 days ago")
DATEVAR=(shell date +%F --date="9 days ago")
Кто-нибудь, если это знать возможно, и как мой DATEVAR может быть установлен в результате выполнения команды «дата»?
Здесь недостаточно информации для предоставления авторитетного ответа. Какой вкус Linux вы используете? Некоторые (Ubuntu?) Не используют bash как '/ bin/sh', а некоторые оболочки могут не поддерживать' $ (..) 'нотацию. Вместо этого попробуйте backquotes. Также экспериментируйте с побегом ваших процентов символов.Кроме того, '$ ($ DATEVAR)', вероятно, неверен (в вашем crontab), так как вы будете выполнять вывод команды 'date', как если бы это был комментарий. – ghoti
Возможный дубликат http://stackoverflow.com/questions/27123367/percent-sign-not-working-in-crontab – tripleee