Статьи

Устранение ошибки crontabs is not a directory bailing out при работе с cron



Для автоматического выполнения задач по расписанию в linux обычно используется планировщик заданий, управляемый командой crontab с различными ключами. Среди прочего, его можно использовать для автовыключения компьютера в заданное время.

В некоторых случаях при работе с crontab возникают проблемы. Например, при выполнении команды

crontab -e

    в только что установленной и еще ненастроенной операционной системе gentoo может возникать ошибка:

    ‘/var/spool/cron/crontabs’ is not a directory, bailing out.

    Она свидетельствует о неправильной настройке подсистемы планирования задач. Обычно в системе отсутствует или повреждена директория для хранения пользовательских заданий cron, либо нет необходимых полномочий у текущего пользователя, имеются ошибки в конфигурации каталогов, не позволяющие работать с cron.

    Для устранения проблемы нужно (в gentoo):

    Установить планировщик заданий:

      emerge --ask sys-process/cronie 
    

    Внести пользователя в группу cron (ОС arch и gentoo) командой:

      sudo usermod -aG cron sudo usermod -aG cron @username
    

    или

      sudo gpasswd -a @username cron
    

    где @username — имя пользователя.

    В других системах рабочей группой планировщика является crontab.

    Затем нужно проверить, существует ли каталог /var/spool/cron. Если таковой отсутствует — нужно создать его вручную.

    Затем от имени root необходимо предоставить права 755 этой папке:

    chmod o+rx /var/spool/cron 

    Внутри каталога /var/spool/cron также должны находиться подкаталоги crontabs и lastrun с правами чтения и записи для root.

      sudo mkdir -p /var/spool/cron/crontabs
    

    После этих манипуляций обычно уже можно работать с планировщиком в текстовом редакторе, вызываемом командой

      crontab -e
    

    Туда можно вносить в список планировщика свои правки, которые будут обрабатываться компьютером, о чем свидетельствует вывод:

    no crontab for user - using an empty one
    crontab: installing new crontab 

    или

    crontab: installing new crontab
    Backup of user's previous crontab saved to /home/intel35/.cache/crontab/crontab.bak 

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *