cron 是否维护内存目录缓存?

cron 是否维护内存目录缓存?

我们运行一个大型分布式 Linux 计算环境,其中用户的主目录可能会由于其从属关系和不同文件服务器之间的一般分布而在不同的后端文件存储之间移动。因此,他们的主目录可能会从 /fileserver1/joeuser 更改为 /fileserver3/joeuser。

经过复制文件的过程后,sethome用于设置它们的主目录。注销/登录后,它们的 $HOME 和 ~ 变量都指向新路径,一切正常。

然而,Cron 似乎仍然认为 ~ 指的是他们的旧主目录,并且在使用该过时的信息构建路径时会失败。

我们怀疑这是由于 cron 守护进程的某种内部内存目录缓存造成的。

由于多种原因,我们希望避免定期重新启动 crond,并且更愿意参考 ~ 以便他们可以在其 crontabs 中构建路径。

还有其他解决方案吗?或者对这种行为的见解?

答案1

~Cron从指定位置获取用户信息的主目录/etc/nsswitch.conf。这将显示getent passwd <username>

$HOME和 不一样~

答案2

任何此类缓存都可能由 Linuxnscd守护进程完成。重新启动它以清除其缓存。

cron 守护进程没有代码来缓存以前自动挂载的目录之类的内容,并且不保留编辑 cron 表的人员的系统变量的任何内容。

相关内容