Como posso alterar o crontab dinamicamente? [fechadas]

-1

Eu preciso criar um script bash para:

  1. Esvazie meu root Crontab;
  2. Inserir novos Cronjobs via script bash.

Para o primeiro ponto, posso usar crontab -r

Para o segundo ponto, aqui , encontrei este script:

#!/bin/bash

lines="* * * * * /path/to/command"
(crontab -u root -l; echo "$lines" ) | crontab -u root -

Como posso cozinhar isso juntos em um script bash?

Algo parecido com isto:

#!/bin/bash 

crontab -r 

line="* * * * * /path/to/command; 
      * * * * * /path/to/command2;
      * * * * * /path/to/command3" 

(crontab -u root -l; echo "$line" ) | crontab -u root -
    
por NineCattoRules 05.02.2017 / 12:11

1 resposta

2

O exemplo que você publicou seria imprimir o crontab atual e injetar novas diretivas.

Se você pretende apenas injetar novas diretivas, limpe o crontab atual, em vez do seu

lines="* * * * * /path/to/command"
( crontab -u root -l; echo "$lines" ) | crontab -u root -

Siga com:

lines="* * * * * /path/to/command"
echo "$lines" | crontab -u root -

E, como você apontou nos comentários, está errado, adicionar vários crons, usar ponto-e-vírgula como separador. Você pode ir com:

lines=" line1
line2"

Ou:

crontab -u root - <<EOF
line1
line2
EOF

Ou:

(
    echo line1
    echo line2
) | crontab -u root -
    
por SYN 05.02.2017 / 13:19