tmpfs-写入文件时自动创建完整路径

tmpfs-写入文件时自动创建完整路径

我已经安装临时文件。例如

/tmspfs/cache

正如我们所料,重启后服务器内存为空,挂载的所有内容都消失了。没问题。但我的系统中有一些完整路径,例如 /tmpfs/cache/user1/file - 错误是 /tmpfs/cache/user1/ 不存在。

我无法向软件添加一些检查和 rmdir。

所以问题是 - 这里是否有某种方法可以在创建文件之前自动创建完整路径?

谢谢。

答案1

可能与 LD_PRELOAD 和一些库有关,具体取决于软件。最简单的方法可能是在 rc.local 中放入一些内容,这些内容将在启动过程的最后一步创建目录。

如果您想确保目录持续存在,您可以运行一个 cron 作业来创建目录(可能使用 mkdir -p)。

答案2

如果您使用/etc/fstab来定义此挂载,那么您只需添加mkdir /tmpfs/cache/user1/etc/rc.d/rc.local,这样它将在启动时被创建。

答案3

如果您需要在重启后保持结构,则可以通过在 中执行一项任务来root实现crontab

*/5 * * * * /usr/bin/ionice -c3 -n7 /bin/nice -n 19 \
              /usr/bin/rsync -ah --stats --delete /path/to/persistent/backup /tmpfs/

然后/etc/rc.local确保结构在启动时恢复到位:

ionice -c3 -n7 nice -n 19 rsync -ahv --stats --delete /path/to/persistent/backup \
  /tmpfs/ 1>/dev/null

当然,您需要调整命令rsync来满足您的特定需求。

相关内容