LINUX.ORG.RU
ФорумAdmin

cron избирательно не работает

 


0

2

по расписанию запускается скрипт в нем 2 задачи:

#!/bin/bash

#чистка бд
/usr/bin/docker exec -it nextcloudDB2 mysql --user=root --password=«xxx» --execute='PURGE BINARY LOGS BEFORE NOW() - INTERVAL 1 HOUR;'

#еще чето
docker exec --user www-data.................
.....

вторая задача всегда выполняется! а первая нет(чистка бд).
Если запустить скрипт без крона то обе задачи выполняются!

Почему так что за превереда этот крон у меня бомбит. просто одну строку запустить и все в чем проблема то?


  1. От юзера-то от нужного запускается?
  2. Там какие-нибудь пароли не требуется, случаем, вводить?
  3. Может переменные среды какие нужны (не спец по докеру, хз, что там ему надо).

Добавь тег docker — cron тут в принципе ни при чём — он-то скрипт успешно запустил и успокоился. Дальше уже баш и скрипт сами.

P.S. пароль плейнтекстом прям в скрипте по крону это круто, конечно…

P.P.S. Кстати, почему в первом случае /usr/bin/docker, а во втором просто docker? Я не думаю, что это что-то меняет, просто странно.

Можно ещё попробовать посмотреть вывод той первой команды. Добавь в конце строки > /tmp/cron-output 2>&1, и пусть запустится. Потом посмотри, что в файле, может там есть какая-то вменяемая ошибка.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 4)

docker exec -it nextcloudDB2 mysql –user=root –password=«xxx» –execute=‘PURGE BINARY LOGS BEFORE NOW() - INTERVAL 1 HOUR;’

Что, так и не осилил сделать нормально, только через костыли?

Dimez ★★★★★
()

Cron здесь ни при чем. Просто, прежде чем запускать какие-то команды, нужно элементарно ознакомиться со значением указанных в них опций. Ну и понимать, что есть опции, которые предназначены исключительно для работы в терминале (типа -it).

vinvlad ★★
()
Ответ на: комментарий от CrX

От юзера-то от нужного запускается?

root# crontab -e от рута вроде, да

Там какие-нибудь пароли не требуется, случаем, вводить?

нет он в коммандрой строке прописан.

Что, так и не осилил сделать нормально, только через костыли?

незнаю как нормально, проблема висит прам у разработчиков нерешеной.

/tmp/cron-output 2>&1

ничего не сохраняет, у команды нету вывода результата
---------------------------------

Может переменные среды какие нужны (не спец по докеру, хз, что там ему надо).

Cron здесь ни при чем. Просто, прежде чем запускать какие-то команды, нужно элементарно ознакомиться со значением указанных в них опций. Ну и понимать, что есть опции, которые предназначены исключительно для работы в терминале (типа -it).

Причём тут крон, если у тебя скрипт забагованный?

крон просто запускает баш, который если запустить без крона работает на все 100%

Regacar
() автор топика
Последнее исправление: Regacar (всего исправлений: 1)
Ответ на: комментарий от Regacar

крон просто запускает баш, который если запустить без крона работает на все 100%

Дело не в «без крона», а «с» чем-то. В определённой среде.

Попробуй вывод посмотреть, как я в конце написал.

CrX ★★★★★
()

Раздели обе задачи на Два скрипта. Скрипты запускай в разное время. Походу они не любят друг друга. Можно еще применить в кроне lockrun И конечно прописывай полные пути в кроне.

Sakh
()