Попробуйте эту строку:
readlink -f `which command`
Если command
находится в Вашем $PATH
переменная, иначе необходимо указать путь, который Вы знаете.
Необходимо смочь использовать date
.
Ввести info date
или man date
для деталей.
Что-то как следующее могло бы подойти, Вы (измените формат даты на свои потребности),
yourcommand > filepathandnameprefix$(date +"\%d-\%m-\%Y").extension
Вы могли попробовать что-то вроде этого (как glenn jackmann примечания ниже, необходимо выйти из всех %
символы):
15 11 * * * touch "/tmp/$(date +\%d-\%m-\%Y).sql"
Видеть, выполнит ли Ваш конкретный крон команду из crontab как сценарий в и себя, или если необходимо записать сценарий, который выясняет дату как строку и затем выполняет команду mysqldump.
Не выходя %
, "крон" на Redhat Enterprise Linux 5.0 (я думаю) продолжал давать мне ошибки о не нахождении соответствия )
. Это вызвано тем, что все после незавершенного %
отправляется в стандартный вход команды.
Я также взял бы рекомендацию использовать формат даты ISO8601 (yyyy-mm-dd, который является %F
) заставить имена файлов заказать по дате при лексической сортировке.
date
в cronfile: некоторые кроны (все?) обработка %
как конец команды. (так $()
не была проблема). Необходимо выйти из всех знаков процента: ... touch "/tmp/$(date +\%Y-\%m-\%d)"
(более хороший использовать формат даты это сортирует лексикографически)
– glenn jackman
04.03.2011, 20:36
DATE=$( date -I )
и затем использование ${DATE}
позже результаты в использовании литерала $( date -I )
в командной строке задания.
– Christopher Schultz
07.04.2016, 21:17
Вот сценарий удара, который я использовал:
#!/bin/bash
mysqldump -u user1 -p DatabaseName | gzip > BackupFolder/backup`date +%F_%T`.sql.gz
Файлы похожи:
backup2011-03-02_15:16:46.sql.gz
Укажите на задание крона на это для выполнения ночью или независимо от того, что Вы предпочитаете.
Запишите маленький сценарий обертки, который использует date
управляйте и называет Вашу команду резервного копирования.
#!/bin/bash
NOW=`/bin/date +"%m%d%Y-%H%M%S"`
if [[ "$?" != "0" ]]; then
NOW="UNKNOWN_DATE"
fi
mysqldump -u username -ppassword database > /path/to/file/$NOW.sql
if [[ "$?" != "0" ]]; then
echo "$0: backup failed with error code $?"
fi
Чтобы иметь такую команду, работающую соответственно, мы должны будем выйти из %, и затем она будет работать как ожидалось.
См.: http://www.ducea.com/2008/11/12/using-the-character-in-crontab-entries/
%
символы в кроне. – glenn jackman 04.03.2011, 20:37