
в Debian как root (используя su -)
Во-первых, на сервере уже есть работа (выполненная кем-то другим), когда я набираю
crontab -e
я получил
# m h dom mon dow command
* * * * * sh /opt/somescript.sh
Он выполняется за считанные минуты.
В любом случае, я пытаюсь добавить запланированное задание в crontab: я хочу попробовать добавить второе задание, которое будет выполняться каждый день в 00:30 утра.
30 0 * * * sh /opt/newscript.sh
У меня две проблемы:
- Я не могу редактировать crontab с помощью
crontab -e
- Правильно ли составлено расписание моего нового сценария?
решение1
Ваше расписание верное. Я не понимаю, почему вы не можете редактировать crontab. Вы получаете какие-либо сообщения об ошибках?
решение2
Если вы получаете что-то вроде:
crontab: you are not authorized to use cron. Sorry.
Добавьте свое имя пользователя в /etc/cron.allow
(или /etc/cron.d/cron.allow
, в зависимости от ваших настроек).
Вы не указали, на какой системе вы работаете, но несколько коммерческих Unixen по умолчанию используют ed
в качестве редактора, вместо чего-то разумного, например vi
. Установите EDITOR=vi
и попробуйте снова:
$ EDITOR=vi crontab -e
Который будет использовать vi
ваш редактор. Заменить vi
на emacs
или даже [содрогаться] pico
, как вам удобнее.
Другой вариант — использовать файл в формате crontab
:
$ crontab /tmp/ctab
Что назначит содержимое файла /tmp/ctab
в crontab для текущего пользователя. Затем вы можете редактировать /tmp/ctab
(имя не важно) любым редактором, который вам нравится и может сохранять как обычный текст: vi
, emacs
, Xcode
, eclipse
, что угодно. Сначала выполните:
$ crontab -l > /tmp/ctab
Чтобы получить копию текущего crontab, чтобы вы могли дополнять его ( crontab FILE
форма заменяет текущий crontab), выполните:
$ crontab /tmp/ctab
Чтобы импортировать содержимое /tmp/ctab
.