Cron через день.

Сообщения
3,359
Реакции
1,476
Помог
124 раз(а)
Мне нужно, чтобы определенная команда выполнялась единожды через день, а другая так же через день, но в те дни, когда не выполняется первая.
Правильно ли я задаю crontab?
Для первой: 0 5 2/2 * *
Для второй: 0 5 1/2 * *
 
Сообщения
3,359
Реакции
1,476
Помог
124 раз(а)
Точнее, наверное, так: 0 5 1-31/2 * *
 
Сообщения
2,831
Реакции
1,666
Помог
75 раз(а)
59 23 * * 0 скрипт1.sh
59 23 * * 1 скрипт2.sh
59 23 * * 2 скрипт1.sh
59 23 * * 3 скрипт2.sh
59 23 * * 4 скрипт1.sh
59 23 * * 5 скрипт2.sh
59 23 * * 6 скрипт1.sh

может быть так?

22903175b9.png
 
Последнее редактирование:
Сообщения
3,359
Реакции
1,476
Помог
124 раз(а)
up. В общем, никак не получается у меня создать крон на бэкап бд.

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

Но проблема следующая: сам кронджоб этот не хочет выполняться.
Собственно, сама команда:
Код:
0 5 * * * mysqldump -u user -p pass -h 127.0.0.1 --all-databases | gzip > /home/user/mysqldumps/dump_`date +%mm%dd%yy`.sql.gz
Сначала грешил на то, что время крона неправильно задавал, но перебрав несколько вариантов, понял, что это не так.
И с самой командой вроде нет проблем, т.к. когда я ввожу её просто, без крона, то архив создаётся.

/summon fantom CrazyHackGUT
 
Сообщения
207
Реакции
420
Помог
10 раз(а)
Пришлось повозиться для настройки SSH-туннеля (впервые это делал на хосте), чтобы проверить команду, ибо на сервере с MySQL места под дамп не хватит никак, а выкидывать root куда-то ещё - идея плохая.

Попробуйте перед самой командой дописать DEBIAN_FRONTEND=noninteractive, чтобы получилось:
DEBIAN_FRONTEND=noninteractive mysqldump -uroot --password="XXXXXX" -h 127.0.0.1 -P3307 --all-databases | gzip > ~/dump_`date +%mm%dd%yy`.sql.gz
У меня так работает.
19705
 
Сообщения
957
Реакции
1,185
Помог
52 раз(а)
  1. -p pass не так пишется, нужно слитно -ppass
  2. Уверены что у пользователя есть все права на дамп всей базы?
 
Сообщения
3,359
Реакции
1,476
Помог
124 раз(а)
Sonyx, 1. у меня там слитно, разделил тут при копировании, чтоб было понятнее. 2. юзер = рут.
7 Ноя 2019
CrazyHackGUT, попробую, спасибо. О результате отпишу.
 
Сообщения
3,359
Реакции
1,476
Помог
124 раз(а)
Sonyx, тьфу, ошибся, не рут юзер, но с правами как у рута. Да и иначе бы у меня никак дамп не делался бы, а он делается когда просто через терминал ввожу.

CrazyHackGUT, нет, все равно не хочет.. Правильно же я вписал?

19712
 
Сообщения
207
Реакции
420
Помог
10 раз(а)
А в пароле случайно спецсимволов нет?
 
Сообщения
207
Реакции
420
Помог
10 раз(а)
Крон от кого запускается? У него точно есть права на запись в указанную папку юзверя?
 
Сообщения
207
Реакции
420
Помог
10 раз(а)
sudo crontab -e, что-ль?
 
Сообщения
207
Реакции
420
Помог
10 раз(а)
В этом случае, крон стартует от того пользователя, от которого запускается редактирование кронтаба.
 
Сообщения
3,359
Реакции
1,476
Помог
124 раз(а)
CrazyHackGUT, ну это и понятно, вот я под рутом и редачу его. 19717
 

Garey

ninjaCow
Сообщения
411
Реакции
1,051
Помог
10 раз(а)
проверял команду без cron? Так же надо перед символами % поставить \ :
0 0 * * * mysqldump -u 'USERNAME' -p'PASSWORD' DATEBASE > /root/liveDB_`date +\%Y\%m\%d_\%H\%M\%S`.sql
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу