trabalho cron me dá permissão negada erros ao executar

2

Estou tentando executar um cron, mas continuo recebendo permissão de erro de morte no meu /var/spool/mail/root

"/bin/sh: /disk1/archives/backup.website.cron: Permission denied"

Este é o meu ls -hal para o diretório em que meus trabalhos do cron estão

drwxr-xr-x 4 root root 4.0K Feb  6 04:22 .
drwxr-xr-x 6 root root 4.0K Feb  5 08:14 ..
-rwxr-xr-x 1 root root  105 Feb  6 04:22 backup
-rw-r--r-- 1 root root  102 Feb  5 08:34 backup.database.cron
-rw-r--r-- 1 root root   75 Feb  5 08:33 backup.website.cron
drwxr-xr-x 2 root root 4.0K Feb  5 08:35 databases

Eu tenho backup definido como chmod +x

O arquivo de backup se parece com isso

* * * * *  root /disk1/archives/backup.website.cron
30 * * * * root /disk1/archives/backup.database.cron

Eu corri o cron com

crontab /disk/1/archives/backup

Eu posso ver que minhas tarefas do cron estão configuradas para serem executadas porque, quando eu faço crontab -l , obtenho

[root@web archives]# crontab -l
* * * * * /disk1/archives/backup.website.cron
30 * * * * /disk1/archives/backup.database.cron

backup.website.cron parece com

tar -zcvf /disk1/archives/websites/'date +%Y-%m-%d_%I:%M:%S%p'.tar.gz /web

enquanto o backup.website.cron se parece com

mysqldump --opt --all-databases | gzip > /disk1/archives/databases/'date +%Y-%m-%d_%I:%M:%S%p'.sql.gz

estou perdendo uma mudança de permissão em algum lugar?

estou executando os scripts corretos através do crontab?

    
por Eli 06.02.2012 / 11:31

1 resposta

3
chmod +x /disk1/archives/backup.*.cron

O arquivo que você alimenta no comando crontab não precisa ser executável, pois não é um script de shell. Quaisquer comandos que você invocar como tarefas do cron do precisam ser executáveis.

Há outra esquisitice aqui. Existem duas sintaxes ligeiramente diferentes para o crontab. Um tem 5 campos que especificam quando o comando deve ser executado, seguido pelo próprio comando; este é o formato que o comando crontab espera. O outro adiciona um nome de usuário entre os 5 campos de tempo e o comando. Este é o formato usado por /etc/crontab e por arquivos sob os diretórios /etc/cron.* . (Isso é no Ubuntu 11.04; a organização pode ser um pouco diferente em outros sistemas).

Você disse que instalou seu arquivo backup com crontab /disk/1/archives/backup , mas o arquivo backup que você nos mostrou especifica o usuário root em cada linha. Mas a saída crontab -l não mostra o nome do usuário root .

A mensagem de erro que você está recebendo é consistente com a saída crontab -l (se o arquivo que você forneceu a crontab tivesse o nome de usuário root , ele tentaria executar root como um comando). Presumo que o arquivo real que você forneceu a crontab não tenha os campos root .

man 5 crontab para informações sobre a diferença entre arquivos cron normais e do sistema.

    
por 06.02.2012 / 11:58

Tags