Назад | Перейти на главную страницу

Поддерживает ли cron кеш каталога в памяти?

Мы запускаем большую распределенную вычислительную среду Linux, в которой домашний каталог пользователя может перемещаться между различными внутренними файловыми хранилищами из-за их принадлежности и общего распределения между различными файловыми серверами. В результате их домашний каталог может быть изменен с / fileserver1 / joeuser на / fileserver3 / joeuser.

Пройдя через процессы копирования файлов, sethome используется для установки их домашнего каталога. После выхода / входа в систему их переменные $ HOME и ~ указывают на новый путь, и все идет как надо.

Cron, однако, похоже, все еще думает, что ~ относится к их старому домашнему каталогу и завершится ошибкой при построении пути с использованием этой устаревшей информации.

Мы подозреваем, что это связано с каким-то внутренним кешированием каталога в памяти от имени демона cron.

По ряду причин мы не хотели бы перезапускать crond на регулярной основе и предпочли бы обратиться к ~, чтобы они могли создавать пути в своих crontab.

Есть ли другие решения или идеи для такого поведения?

Любое кеширование такого рода, скорее всего, будет выполняться системой Linux. nscd демон. Перезапустите его, чтобы очистить кеш.

Демон cron не имеет кода для кэширования таких вещей, как ранее автоматически смонтированные каталоги, и не сохраняет какое-либо содержимое системных переменных человеком, который редактировал таблицу cron.

Cron берет домашний каталог ~ откуда бы /etc/nsswitch.conf говорит, чтобы получить информацию о пользователе. Это будет показано с getent passwd <username>

$HOME это не то же самое, что ~