Корень crontab -e
содержит строки
@reboot mkdir -p /tmp/vimbackups
@reboot chmod 777 /tmp/vimbackups
@reboot anotherCommand
После загрузки каталог был создан, но он по-прежнему имеет разрешения по умолчанию 755. (Этот каталог предназначен для .vimrc's 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)
Это так после при каждой перезагрузке.
Если я chmod из оболочки, или из sh -c
или bash -c
, тогда chmod работает.
Почему не работает из cron?
Есть ли способ заставить его работать?
Вероятно, обе команды mkdir
и chown
] выполняются (почти) одновременно, и что-то идет не так.
Вы можете задать смещение в лотке следующим образом:
@reboot sleep 5 && mkdir -p /tmp/vimbackups
@reboot sleep 10 && chmod 777 /tmp/vimbackups
Или вы можете использовать логический оператор и &&
для запуска chmod
if mkdir
успешно:
@reboot mkdir -p /tmp/vimbackups && chmod 777 /tmp/vimbackups
Но, вероятно, лучший способ - установить режим файла с помощью команды mkdir
:
@reboot mkdir -p -m 777 /tmp/vimbackups