Мне нужно создать сценарий bash, чтобы:
Для первого пункта я могу использовать crontab -r
Для второго пункта вместо здесь Я нашел этот сценарий:
#!/bin/bash
lines="* * * * * /path/to/command"
(crontab -u root -l; echo "$lines" ) | crontab -u root -
Как я могу приготовить это вместе в сценарии bash?
Примерно так:
#!/bin/bash
crontab -r
line="* * * * * /path/to/command;
* * * * * /path/to/command2;
* * * * * /path/to/command3"
(crontab -u root -l; echo "$line" ) | crontab -u root -
Образец, который Вы отправили, распечатает текущий crontab и введет новые директивы.
, Если Вы намереваетесь просто ввести новые директивы, вытирая текущий crontab, вместо Вашего
lines="* * * * * /path/to/command"
( crontab -u root -l; echo "$lines" ) | crontab -u root -
, Идут с:
lines="* * * * * /path/to/command"
echo "$lines" | crontab -u root -
<час> И, поскольку Вы указали на это в комментариях, это неправильно, добавляя несколько кронов, для использования точек с запятой в качестве разделителя. Можно пойти с:
lines=" line1
line2"
Или:
crontab -u root - <<EOF
line1
line2
EOF
Или:
(
echo line1
echo line2
) | crontab -u root -