Прерывистая проблема crontab

Моя запись в crontab периодически не может найти скрипты в домашнем каталоге моего пользователя. Записи в crontab выполняются точно по расписанию, как указано, и иногда сценарий запускается правильно, но в основном он выдает только такие результаты:

/bin/sh: 1: /home/<user>/script/check_cgi.pl: not found

Запись в crontab для этого:

5,35 * * * *    /home/<user>/scripts/check_cgi.pl >>/tmp/check_cgi.pl.out 2>&1

Я дважды проверил, что сценарий существует, и что root может видеть файловую систему и что команда запускается правильно, если я перехожу к root.

Есть ли у кого-нибудь предложения относительно того, почему cron часто не может найти файл и как его решить?

РЕДАКТИРОВАТЬ

Это корневой каталог root (отредактированный sudo crontab - д) отсюда актуальность проверки того, что корень может увидеть скрипт.

Права доступа к сценарию:

-rwxrwxr-x 1 <user> <user>  700 Apr 20 09:27 check_cgi.pl

и права доступа к каталогу 775 или 755, поэтому нет проблем с правами root на выполнение сценария.

Кажется, что cron начал «находить» скрипт после того, как я добавил новое задание cron для запуска «find /»; как будто принуждение cron к просмотру всего дерева каталогов позволило ему снова «найти» скрипт.

Существует 4 сценария, которые содержатся в одном каталоге. Они работают в разное время (каждые 15 минут, каждые 30 минут, один раз в день), и у них всех есть эта проблема в то же время. А потом, когда проблема решается, все они работают нормально.

РЕДАКТИРОВАТЬ 2

Я обнаружил проблему ... Запуская каждый час задание cron «ll -lR / home», я обнаружил, что около 15.00 он начал неправильно сообщать содержимое / home / каталог. Вместо правильного набора каталогов (включая каталог необходимых скриптов) он показал совершенно другое содержимое:

lrwxrwxrwx 1 <user> <user> 56 Jan 18 20:53 Access-Your-Private-Data.desktop -> /usr/share/ecryptfs-utils/ecryptfs-mount-private.desktop
lrwxrwxrwx 1 <user> <user> 52 Jan 18 20:53 README.txt -> /usr/share/ecryptfs-utils/ecryptfs-mount-private.txt

И когда я просматриваю / usr / share / ecryptfs-utils / ecryptfs-mount-private .txt файл, он говорит мне:

THIS DIRECTORY HAS BEEN UNMOUNTED TO PROTECT YOUR DATA.
From the graphical desktop, click on:
 "Access Your Private Data"
or
From the command line, run:
 ecryptfs-mount-private

Так что, похоже, ответ. Домашний каталог настроен как зашифрованная файловая система, и операционная система отключает его в периоды низкого использования «для защиты ваших данных».

Мне просто нужно разобраться, как отключить это поведение навсегда или когда запускаются задания cron. Я думаю, что ответ находится в ecryptfs-mount-private ...

1
задан 24 April 2014 в 23:21

2 ответа

Справка человечности описывает эту проблему https://help.ubuntu.com/community/EncryptedHome

Caveats
There are a few minor caveats that one must keep in mind about these encrypted configurations.
When you are not logged into your system, data in your home directory is not accessible in plain text. This, of course, is by design. This is what keeps an attacker from gaining access to your files. However, this means that:
1.    Your cronjobs may not have access to your Home Directory 

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

0
ответ дан 24 April 2014 в 23:21

Странно, что сценарий работает хорошо иногда.

, Но, по моему опыту, большинство проблем связанный crontab является полномочием.

crontab выполняет сценарий со своим собственным полномочием, не корень.

Поэтому как насчет "chmod 707" или "777" к Вашему сценарию и папке Вашего пользователя??

0
ответ дан 24 April 2014 в 23:21

Другие вопросы по тегам:

Похожие вопросы: