O script simples funciona no terminal, mas não no crontab

0

Eu estou fazendo uma tarefa para um eletivo universitário. Eu tenho que usar um servidor da amazon ec2 e alterar seu nome de domínio, criar um blog usando o apache e criar um script de criativo que seja executado periodicamente usando o crontab.

Basicamente, eu só quero que o meu blog tenha um fundo de céu noturno quando chegar às 8 da noite, e um fundo de céu de um dia, quando chegar às 6 da manhã.

Eu tenho um windows pc e meu servidor amazon está usando o Ubuntu, então eu estou usando PuTTY e WinSCP para editar e material.

em /var/www/html existem dois arquivos .txt, um (day.txt) que diz:

cp -R /var/www/html/downloads/Day/index.html /var/www/html

Ele substitui o arquivo de índice localizado em /html por aquele com um fundo de imagem do dia no html. Há outro arquivo chamado night.txt, que é o mesmo, exceto seu /Night/index.html em vez de /Day/index.html .

Digamos que o arquivo index.html atual em /html seja aquele com a imagem do dia, e eu use o terminal de putty e execute o script noturno com ./night.txt , ele funciona. Quando eu atualizo meu site, ele muda para um plano de fundo de dia, mas quando tento fazer isso com o crontab ele não muda.

Então eu digito crontab -e no terminal, e mude a linha para:

# m h  dom mon dow   command
18 14 *   *   *     /var/www/html/day.txt

Acho que isso deve acontecer às 2:18 da noite, mas sempre que tento testar com horários, não funciona.

Eu clico em ctrl o para salvar e ctrl x para sair, e tenho certeza que o crontab está lá porque quando eu o procurar no WINSCP em /tmp/crontab.7xxxx ele está lá com a linha correta.

eu usei sudo chmod 700 night.txt e sudo chmod 700 day.txt para fornecer as permissões do script r / w / e.

Não sei o que mais posso incluir. Este é um curso do primeiro semestre e somos encorajados a pedir ajuda online, e eu sou muito novo em tudo isso.

    
por Jayden Vincent 28.05.2017 / 09:13

2 respostas

0

eu acho, o cron é um usuário próprio, e você nega permissão com 700. Tente mudar o grupo para cron e dar permissão de execução

chgrp cron /var/www/html/day.txt

chmod g+rx /var/www/html/day.txt

verifique também se você tem o cabeçalho correto no seu script, por exemplo:

#!/bin/bash
    
por Ladon 28.05.2017 / 09:27
0

Para que esse script seja executado, ele deve estar em um arquivo .sh ou shell. Portanto, você precisa cp day.txt day.sh e, em seguida, alterar sua linha no crontab para refletir essa alteração e adicionar a função para executar o script de shell. Certifique-se de incluir #!/bin/bash no seu script de shell.

18 14 * * * sh /var/www/html/day.sh
    
por Robby1212 28.05.2017 / 09:26