2016-11-14 2 views
-1

Я прошел через всевозможные ответы и отвечал вверх и вниз по Интернету, и мне не показалось, что это работает. Я хочу просто запускать скрипт bash каждую минуту, используя CRONTAB на малине PI на Raspbian.Как запустить скрипт Bash в Crontab на Raspbian?

У меня есть сценарий под названием autocon.sh, и я просто вошел в кронтаб следующим образом:

SHELL=/bin/sh 
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 
... 
1 * * * * root bash /home/pi/autocon.sh 

НО он не будет работать. Что я делаю неправильно?

+0

'1 * * * *' означает запустить его один раз в час на 'xx: 01'. – Barmar

ответ

2

Я не уверен, где «корень» часть приходит, но я предполагаю, что Вы желаете, чтобы запустить скрипт как корень? Если да, то вам нужно поставить запись в корневом кронтаб, сделать это, запустив:

sudo crontab -e 

Это откроет корневую пользователя кронтаба для редактирования, все, что бежать от указанного места будет работать с корневыми специальными разрешениями.

Вставьте следующую строку:

* * * * * bash /home/pi/autocon.sh 

Это должно сделать это :) 1 в скрипте на самом деле означает «бежать на 1 минуту мимо час» и, таким образом, в вашем случае, 1 минута каждого часа - простой ошибка! Замена его символом * означает каждую минуту.

синтаксис:

minute - hour - day of month - month - day of week - command 

Кроме того, если вы сделаете свой скрипт исполняемым, например, так:

sudo chmod +x /home/pi/autocon.sh 

можно опустить команду 'Баш', и просто использовать:

* * * * * /home/pi/autocon.sh 

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

Для ясности комментарий Barmar на мой оригинальный пост:

В каждого пользователя кронтаб файлы Вы не помещаете имя пользователя. Но в /etc/crontab вы делаете.

1

Чтобы запустить cronjob каждую минуту, все значения должны быть звездочками. Ваш cronjob настроен на работу через 1 минуту после часа каждый час.

Оно должно быть:

* * * * * root bash /home/pi/autocon.sh 
Смежные вопросы