LINUX.ORG.RU
решено ФорумAdmin

Скрипт не работает через cron

 , ,


0

1

Хотел отслеживать состояние дисков на сервере-файлопомойке. Для этого был написан небольшой скрипт:

#!/bin/bash

smartctl -a /dev/sda > /home/files/smart.txt

smartctl -a /dev/sdb >> /home/files/smart.txt

/home/files - это папка, расшаренная в самбе.

Потом прописал этот скрипт в крон, через sudo crontab -e. Но почему-то создается пустой файл. Если запускать скрипт вручную, через sudo, то все нормально. Права на запись в папку все есть. Что самое интересное - если скрипт запустить без sudo, то в файл пишется что-то типа Smartctl open device: /dev/sda failed: Permission denied, но файл НЕ пустой. А через cron - пустой, размер 0 байт. В чем проблема?



Последнее исправление: zsh (всего исправлений: 1)

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

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

Я уже по названию темы, не читая её, это хотел ответить.

Надо было в комментарий вверху дефолтного кронтаба написать что крон не знает ничего про юзерские .profile, .bashrc и подобное, в т.ч. обычный $PATH и надо всё писать как без них, а то это наверно самая частая проблема с кроном с большим отрывом.

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

Каждый раз одно и то же…

Я статью в блоге написал, но пока не опубликовал… и блога у меня пока нет (в Статьи не понесу, ©).

mord0d ★★★★★
()