shell script para trabalho cron

4

Acabei de configurar um cron-job no cpanel, mas embora pareça estar executando o script, ele não funciona como planejado.

Aqui está o comando cron job no cpanel:

/bin/sh /home/my-username/cronjobs/sedclearmalw.sh

e aqui está o conteúdo do script:

#!/bin/bash
cd ../public_html/
grep -rl '_0xaae8' . | xargs sed -i 's/var\s_0xaae8.*//g'

Eu acredito que o comando cd deve estar correto, já que ele precisa voltar a um diretório e então entrar em public_html, no entanto o segundo comando parece ser o problema. Eu tentei executá-lo via ssh, (bash sedclearmalw.sh) parece que ele está rodando por ~ 15 segundos, mas não está fazendo o seu trabalho, como eu verifiquei com o seguinte comando:

grep -rl '_0xaae8'

e retorna 1 arquivo contendo _0xaae8. Qualquer ajuda será apreciada, deve ser algo simples, como eu sei que o comando acima no script shell funciona tudo bem quando executado via ssh (não através do script).

    
por Conevski 27.03.2017 / 10:26

1 resposta

2

Os problemas se devem ao uso de um caminho relativo. Quando cron executar um trabalho agendado, ele usará o diretório pessoal do proprietário como seu diretório de trabalho, por exemplo, se eu agendar um trabalho como o usuário raiz, seu diretório de trabalho será /root/ (em um sistema Cent OS).

Você deve especificar o caminho absoluto no seu comando cd . Se você não está executando mais comandos no seu script, basta executar tudo em uma linha:

grep -rl '_0xaae8' /full/path/to/public_html/ | xargs sed -i 's/var\s_0xaae8.*//g'
    
por 27.03.2017 / 10:45