Несколько часов назад я просто создал новую среду VPS, и прямо на запуске сделал crontab-e, вставил мой cronjobs из файла и сохранил.
Я сделал crontab-e несколько минут назад и видел, что имя файла:
/tmp/crontab.MSK8I2/crontab
Почему это? Спасибо,
Выполнение crontab -e
crontabs пользователей редактирований (а не система crontab /etc/crontab
). Если Вы работаете sudo crontab -e
, это редактирует пользователя корневой учетной записи crontab (который не является тем же как /etc/crontab
). Пользователь корневой учетной записи crontab применим, но часто не, что системные администраторы хотят отредактировать.
Когда Вы работаете crontab -e
, crontab
утилита копирует конкретный определенный для пользователя crontab файл, отредактированный во временный файл. Это - намеченное и корректное поведение. Принятие Вас вносит изменения во временный файл в редакторе, crontab
затем автоматически записывает те изменения обратно в crontab файле после того, как Вы закончите редактировать.
Braiam объяснил некоторые детали относительно того, почему и как это сделано в "Кроне, crontab-e читает неправильный файл" на Unix. SE:
Это - поведение по умолчанию.
crontab -e
скопировал бы crontab файл во временный каталог, затем использовать редактора, перечисленного в ВИЗУАЛЬНОМ или переменных среды РЕДАКТОРА для открытия этого файла, при сохранении, он затем попытался бы скопировать файл в исходное местоположение. Это - атомарная операция.Причины позади этого варьируются от предотвращения двух пользователей для редактирования того же файла одновременно, чтобы иметь исправность/проверку синтаксиса прежде, чем записать исходный файл.
А-ч,
crontab -e
также не обрезайте файл всегда, если Вы не используете Debian.
Снимок экрана в Вашем вопросе показывает что-то очень как это, которое является значением по умолчанию, прокомментировал текст пользователя crontab в Ubuntu:
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
Напротив, система по умолчанию crontab (/etc/crontab
) в Ubuntu похож на это:
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
Как siloko объясняет в "Crontab-e, открывает новый файл каждый раз, когда я выполняю его", и, как обсуждено в ведущих комментариях crontab системы по умолчанию (показанный выше), один путь crontab в масштабе всей системы /etc/crontab
отличается от crontabs в расчете на пользователя, то, что каждая запись содержит поле, которое указывает, какой пользователь выполняет команду. Пример выше имеет root
для каждой из трех команд, но можно заставить команды быть выполненными как другие пользователи путем определения их имен пользователей в том поле.
Хотя я не могу быть уверен, мое предположение - то, что Ваш пытаются отредактировать систему crontab, а не корень (или чей-либо еще) пользователь crontab.
Дальнейшее чтение:
man 5 crontab
и CronHowTo описывают, как записать crontab файлы.