Ajuda a atualizar a entrada do cron usando expressões regulares

1

oi eu estou tentando atualizar uma entrada cron não usando crontab -e, mas por comandos shell. Por exemplo, a entrada cron é assim:

10 * * * * /home/localuser/foo.sh -b 1 -h 4 > foo_output.sh 2>&1

Não, eu preciso editar a parte dos parâmetros da linha de comando SOMENTE

-b 1 -h 4

para outra coisa que será enviada pelo usuário. A primeira coisa seria escrever o crontab em um arquivo tmp e manipular o arquivo temporário. Agora, existe uma maneira fácil de editar essa linha usando o SED ou algo assim? A maneira mais grosseira possível é apagar toda a linha, escrever uma nova linha com a expressão inteira e, em seguida, carregá-la no cron. Eu não sou muito bom com expressões regulares. Meu sistema suporta sed -i, então estava pensando que isso poderia ser feito em um único comando de linha. Agradecemos antecipadamente

    
por Uday 03.06.2010 / 07:53

1 resposta

2

As etapas básicas para editar o arquivo crontab com um script seriam assim,

crontab -l > working-file.txt
script-to-edit.sh working-file.txt > edited-file.txt
crontab edited-file.txt

Dependendo de como as outras linhas do seu crontab se parecem (ou podem parecer no futuro),
você pode escrever uma linha sed para alterar o comando de interesse.
Aqui está um exemplo do que o script-to-edit.sh pode fazer,

sed 's|foo.sh \-b 1 \-h 4|foo.sh -b XXX -h YYY|g'
    
por 03.06.2010 / 08:57

Tags