O problema é que o seu script não está definido para ser executável. chmod u+x /bin/ScriptThatCopiesBackup.sh
tornará o script executável pelo seu proprietário (nesse caso, root
).
Eu uso uma sessão do PuTTY para copiar meus backups noturnos para outro local. Eu efetuo login como o usuário root
e altero os diretórios para /store/BackupLocation
, que contém backups dos últimos 100 dias. Eu posso então correr:
bash /bin/ScriptThatCopiesBackup.sh
Este script copia meus backups de /store/BackupLocation
para outro diretório /store/BackupArchive
Isso tudo funciona perfeitamente, mas não consigo agendar esse script para ser executado automaticamente no crontab. Em vez disso, recebo o seguinte erro de permissão todos os dias:
/bin/bash: /bin/ScriptThatCopiesBackup.sh :Permission denied
A minha pergunta é: por que estou recebendo essa mensagem de erro, mesmo que tudo seja feito pelo root? E o que posso fazer para resolver isso?
Aqui estão as permissões para o meu script:
-rw-r--r-- 1 root root 213 June 19 2013 ScriptThatCopiesBackup.sh
Aqui estão as configurações do meu crontab:
30 16 * * * /bin/ScriptThatCopiesBackup.sh
O problema é que o seu script não está definido para ser executável. chmod u+x /bin/ScriptThatCopiesBackup.sh
tornará o script executável pelo seu proprietário (nesse caso, root
).
Seu problema pode ser que você esteja editando o arquivo crontab
errado. (Mesmo que você tenha dito que está fazendo tudo de root
). Tente editar o arquivo crontab
com crontab -u root
.
Também é possível que o seu script não seja executável. chmod +x /path/to/yourscript.sh
deve torná-lo executável.
Tags permissions shell-script