2016-08-07 1 views
-1

Надеюсь, кто-то может помочь мне здесь.pfSense задание cron не работает или отсутствует выход

Я написал сценарий python, который я хочу запускать под CRON каждые 5 минут. В соответствии с общей практикой наименьшего уровня привилегий, I:

  • создал пользователя «обычай», чтобы использовать для пользовательских скриптов
  • создал группу «пользовательский» (не хочу ничего работает под некому имеют доступ) и;
  • поместить скрипт (монитор) в/дома/обычая/бен

притон в скрипте:

#/USR/бен/окр python2.7

Единственное разрешение дано пользователь обычай:

Inherited from Name Description     Action 
       User - System: Shell account access Indicates whether the user is able to login for example via SSH. 

Запуск сценария с помощью команды /дома/Каст om/bin/monitor из командной строки работает независимо от текущего рабочего каталога.

Я пробовал делать cd/first, чтобы убедиться, что это не проблема пути, и скрипт работал правильно.

Скрипт записывает 2 файла на первом запуске, а последующие пробеги добавить к этим файлам в директории/дома/на заказ/bin/mondata

Я установил пакет CRON и создал следующую запись:

*/5 * * * * пользовательские/дома/на заказ/бен/монитор

(Там, кажется, не быть «Применить изменения», поэтому я предполагаю, что мне не нужно перезагружать или сделать что-нибудь, чтобы загрузить изменения.) (Вышеприведенная запись и многие другие показаны в WebGU Я, и я знаю, что некоторые из этих других заданий cron работают.)

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

Изменение пользовательского права на root для целей тестирования (на всякий случай проблема была проблемой разрешения) не устраняет проблему.

Вот соответствующие права доступа к файлам:

[2.3.2-RELEASE][[email protected]]/home/custom/bin: ls -laR ~ 
total 52 
drwxr-xr-x 4 custom nobody 512 Aug 7 00:14 . 
drwxr-xr-x 4 root wheel 512 Jul 27 15:24 .. 
drwxr-xr-x 3 custom custom 512 Aug 7 00:14 bin 

/home/custom/bin: 
total 20 
drwxr-xr-x 3 custom custom 512 Aug 7 00:14 . 
drwxr-xr-x 4 custom nobody 512 Aug 7 00:14 .. 
drwxrwx--- 2 custom custom 512 Aug 7 00:07 mondata <-Script output goes here 
-rwxr-xr-x 1 custom custom 4663 Aug 5 22:44 monitor <-The script 

/home/custom/bin/mondata: 
total 8 
drwxrwx--- 2 custom custom 512 Aug 7 00:07 .   <-NO OUTPUT! (I deleted the files manually after successful tests) 
drwxr-xr-x 3 custom custom 512 Aug 7 00:14 .. 

я проверил сообщение об ошибке в: Status/System/Logs/System/Общие - Ничего не найдено.

Я даже пытался временно изменив права на/дома/на заказ/bin/mondata 777 и настройки пользователя хрон укоренить (абсолютно неприемлемую практику безопасности только для тестирования, но даже это не сработало.)

У меня нет способа узнать, запущен ли сценарий, и по какой-либо причине отказывается от записи файла, или если скрипт вообще не работает.

BTW, где находится вкладка cron? Когда я запускаю crontab -l как root, я получаю crontab: no crontab для root, но я выполняю задания cron cnab. (У меня работает ежедневный почтовый отчет.)

Любые предложения - даже для устранения неполадок, чтобы узнать, работает ли скрипт, было бы полезно.

Спасибо.

+0

Если вы устанавливаете пакет Cron на pfsense, вы можете просматривать/редактировать cronjobs из «Services -> Cron» из веб-интерфейса. – mwfearnley

ответ

0

Проблема заключалась в том, что python не выполнялся.

так называемый «портативный» притон, который работал в командной строке -

#!/usr/bin/env python2.7 

- НЕ РАБОТАЕТ с хрон.

Я создал следующий файл в/главная/пользовательский/bin/tcron

#!/usr/bin/env python2.7 
import os 
os.system('/usr/local/bin/minicron') 

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

Я изменил #!/Usr/bin/env python2.7 на #!/Usr/local/bin/python2.7, и теперь он работает.

Я не знаю, является ли это преднамеренным, что #!/Usr/bin/env python2.7 не работает из cron, но пока я не буду беспокоиться об этом.

Надеюсь, зарегистрировав это, он может спасти кого-то еще одну и ту же проблему, и если это ошибка, о которой следует сообщить, кто-то, кто знает, как это сделать, сделает это.

Смежные вопросы