На этот вопрос уже есть ответ здесь:
Я написал этот скрипт, но он не работает:
#! /bin/bash
cront=$(crontab -e)
echo 00 23 * * 5 tar -cpzf /var/backup.tar.gz /home/$USER >> $cront
Как я могу добавить задание cron с помощью скрипта?
Это должно сделать работу:
crontab -l|sed "\$a0 23 * * 5 tar -cpzf /var/backup.tar.gz /home/$USER"|crontab -
Эта цепочка команд добавляет все после \$a
в выражении sed
(жирный шрифт) в качестве новой строки в crontab текущего пользователя. crontab -l
печатает текущий crontab, sed
добавляет строку в конец и crontab -
берет stdin из канала и делает его новым crontab. Обратите внимание, что это работает, только если вы не связываетесь с разными пользователями, если вы планируете это сделать, сначала прочитайте о опции -u
в man crontab
.