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 -c
,bash -c
则 chmod 有效。
为什么从 cron 执行 chmod 无效?有没有办法让它起作用?
答案1
可能是两个命令几乎同时执行,所以出现了问题mkdir
。chown
您可以尝试设置一个偏移量:
@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
- 请注意,此命令不会影响树(父目录)的权限。