Como o crontab -e é diferente de less / etc / crontab?
11
Sou bastante novo no unix e no crons, no momento eu estava tentando adicionar crons a um arquivo cron existente. Eu li que você poderia fazer isso com crontab -e. A coisa confusa para mim é apenas que crontab -emostra comandos / comandos diferentes do que less /etc/crontab- como pode? Qual é o caminho / arquivo correto para editar?
Embora a resposta do @X Tian contenha informações sobre os diferentes arquivos do crontab, as informações essenciais sobre a sua pergunta são as seguintes:
crontab -eedita o arquivo crontab do usuário (armazenado no /var/spool/cron/crontabs/diretório nos sistemas Debian atuais, mas YMMV) ou cria um novo, e não /etc/crontab. Similar para crontab -l(listar arquivo crontab) e crontab -r(remover arquivo crontab).
Para todos os trabalhos cron que devem ser executados na conta de um usuário, você deve usar crontab -e. Para trabalhos do sistema, você deve adicionar um arquivo /etc/cron.d, se houver; under /etc/cron.{hourly|daily|weekly|monthly}(mas esses não devem ser nomeados como um nome de pacote!), se isso for adequado ao seu propósito; ou adicione uma linha a /etc/crontab. Mas lembre-se de que /etc/crontabpode ser substituído por uma atualização do sistema.
@Stephane Chazelas Obrigado por esclarecer com sua edição. O /var/spool/cron/diretório é uma especialidade do Linux (consulte o File Hierarchy Standard ) e a localização pode variar em sistemas que não sejam o Debian atual.
Dubu
3
Você realmente quer ler as páginas de manual man croneman crontab
Aqui está um extrato que cobre sua pergunta. Deman cron
OBSERVAÇÕES O cron pesquisa na sua área de spool (/ var / spool / cron / crontabs) arquivos crontab (que são nomeados após as contas em / etc / passwd); os crontabs encontrados são carregados na memória. Observe que os crontabs neste diretório não devem ser acessados diretamente - o comando crontab deve ser usado para acessá-los e atualizá-los.
cron also reads /etc/crontab, which is in a slightly different format
(see crontab(5)). Additionally, cron reads the files in /etc/cron.d:
it treats the files in /etc/cron.d as in the same way as the
/etc/crontab file (they follow the special format of that file, i.e.
they include the user field). However, they are independent of
/etc/crontab: they do not, for example, inherit environment variable
settings from it. The intended purpose of this feature is to allow
packages that require finer control of their scheduling than the
/etc/cron.{daily,weekly,monthly} directories to add a crontab file to
/etc/cron.d. Such files should be named after the package that supplies
them. Files must conform to the same naming convention as used by run-
parts(8): they must consist solely of upper- and lower-case letters,
digits, underscores, and hyphens. If the -l option is specified, then
they must conform to the LSB namespace specification, exactly as in the
--lsbsysinit option in run-parts.
Você deve especificar de qual implementação cron e qual versão dele em qual SO e de qual versão você está citando isso. croné algo que varia muito de sistema operacional para sistema operacional e, em alguns casos, você pode escolher entre várias implementações.
/var/spool/cron/
diretório é uma especialidade do Linux (consulte o File Hierarchy Standard ) e a localização pode variar em sistemas que não sejam o Debian atual.Você realmente quer ler as páginas de manual
man cron
eman crontab
Aqui está um extrato que cobre sua pergunta. De
man cron
fonte
cron
é algo que varia muito de sistema operacional para sistema operacional e, em alguns casos, você pode escolher entre várias implementações.