Cron не будет выполнять ни одну из моих команд в Ubuntu 21.10 озорной

#linux #docker #ubuntu #cron

Вопрос:

Я пытаюсь запускать контейнер Docker каждые две минуты, который останавливается с помощью задания cron, но, похоже, это не работает.

Что я сделал, так это запустил команду crontab -e и добавил строку

 */1 * * * * docker start sender >> /home/cronlog.log 2>amp;1
 

Я добавил группу пользователей в Docker, как описано здесь (на самом деле я могу получить доступ к docker из терминала без sudo )

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

 */1 * * * * /home/start_container.sh >> /home/cronlog.log 2>amp;1
 

со сценарием, содержащим

 #!/bin/sh
docker start sender
 

но все равно ничего не происходит. Процесс cron работает так же, как с помощью команды ps -ef | grep cron , которую я получил

 root         881       1  0 08:42 ?        00:00:00 /usr/sbin/cron -f -P
nicola     10905   10178  0 11:31 pts/0    00:00:00 grep --color=auto cron
 

Я что-то упускаю? (Очевидно, что команды работают, если они запускаются вручную с терминала)

Комментарии:

1. что вы видите с crontab -l помощью ?

Ответ №1:

Попробуйте вместо этого использовать путь docker.

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

 $ where docker

/usr/bin/docker
/bin/docker
 

затем попробуйте любой из путей в скрипте cron

 */1 * * * * /bin/docker start sender >> /home/cronlog.log 2>amp;1
 

или

 */1 * * * * /usr/bin/docker start sender >> /home/cronlog.log 2>amp;1
 

Ответ №2:

Оказалось, что по какой-то причине cron не нравится /home/ (по крайней мере, в данном конкретном случае)

Я исправил использование другого пути, такого как

 */1 * * * * docker start sender >> /tmp/cronlog.log 2>amp;1