-1

Я начинающий crontab. Почему этот crontab ничего не делает? Я хотел бы запускать сценарий каждую минуту.

1 * * * * /home/android/test.sh

Если я просто наберу /home/android/test.sh в оболочке, это сработает, так что сам скрипт будет работать.

Кто-то предположил, что это обман, но я не думаю, что это так. Насколько я могу судить, этот crontab должен работать, но это не так. 1 означает раз в минуту, насколько я знаю, поправьте меня, если я ошибаюсь.

Вот что делает скрипт test.sh, просто:

дата >> /home/android/date.txt

Он работает, когда я запускаю его самостоятельно, но не запускается автоматически crontab.

1 ответ1

1

Поскольку я не знаю, что делает ваш скрипт, возможно, он работает, но вы просто не видите его вывод. Чтобы действительно что-то увидеть, вы можете перенаправить его вывод в файл:

* * * * * (/home/android/test.sh > /tmp/cron-out.txt)

Затем вы можете проверить, является ли результат тем, что вы намереваетесь получить.

Кроме того, вы можете посмотреть в системном журнале (в некоторых системах есть специальный журнал в /var/log/cron).

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

Для выполнения скрипта каждую минуту вы должны заменить 1 * * * * на * * * * * , 0-59 * * * * или */1 * * * * . Заданная вами настройка будет выполняться только каждый час в минуту 1 (например, 9:01, 10:01, ...).

Убедитесь, что все разрешения на месте:

  1. Пользователь, который должен выполнить сценарий, должен быть либо владельцем (u), либо в группе (g) файла, либо должны быть установлены соответствующие права для "других" (o). Чтобы установить пользователя Android в качестве владельца файла sudo chown android /home/android/test.sh . Чтобы изменить группу файлов на yourgroup группу, вы можете использовать chgrp yourgroup /home/android/test.sh (при условии, что ваш пользователь Android находится в группе yourgroup).
  2. В зависимости от того, как вы хотите предоставить пользователю разрешения, вы должны sudo chmod u+rx /home/android/test.sh (Пример для исполняющего пользователя, который будет владельцем - для других случаев замените u на g или o).
  3. Создайте crontab для пользователя android . Либо пользователь android сам выполняет crontab -e либо любой другой пользователь-администратор sudo crontab -u android -e .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .