如何从 root 的 crontab 修改目录

如何从 root 的 crontab 修改目录

Rootcrontab -e有这样的台词

@reboot mkdir -p /tmp/vimbackups
@reboot chmod 777 /tmp/vimbackups
@reboot anotherCommand

启动后,目录已创建,但仍具有默认的 755 权限。(如果这很重要,则该目录用于 .vimrc set backupdir=/tmp/vimbackups。)

/var/log/syslog 显示所有三个命令都已被调用:

CRON[937]: (root) CMD (mkdir -p /tmp/vimbackups)
CRON[940]: (root) CMD (chmod 777 /tmp/vimbackups)
CRON[938]: (root) CMD (anotherCommand)

每次重启后都是这样。

如果我从 shell 或 或 执行 chmod sh -cbash -c则 chmod 有效。
为什么从 cron 执行 chmod 无效?有没有办法让它起作用?

答案1

可能是两个命令几乎同时执行,所以出现了问题mkdirchown

您可以尝试设置一个偏移量:

@reboot sleep 5  && mkdir -p /tmp/vimbackups
@reboot sleep 10 && chmod 777 /tmp/vimbackups

&&或者在成功chmod之后使用逻辑与运算符:mkdir

@reboot mkdir -p /tmp/vimbackups && chmod 777 /tmp/vimbackups

但最好的方法可能是使用一个命令,而不是两个命令:

@reboot mkdir -p -m 777 /tmp/vimbackups
  • 请注意,此命令不会影响树(父目录)的权限。

相关内容