add_user_cron() {
if [ $# -ne 6 ]; then
echo "Usage: $(basename $0) minut hours day month user \"command\""
return 1
else
cron_user="/var/spool/cron/crontabs/${5}"
time="$1 $2 $3 $4 *"
cat $cron_user > cron.temp #сохраняем ранее добавленные задания
echo "${time} ${command}" >> cron.temp #дописываем новые во врем. файл
cat cron.temp > $cron_user #кидаем в crontab юзера
return 0
fi
}
Так как скрипт работает под root, то после добавление задания оказывается в рутовском crontab. Причём сразу три одинаковые строки) Скипт запускается через браузер (cgi). Попробовал функцию в консоли, всё работает как надо. Как быть?
да это, думаю, роли не играет. Можно просто в кавычках и без. В общем сделал скрипт отдельно лежащий, теперь задание добавляется в пользовательский cron
А чем плохо-то??? Можно кончено, просто дописывать в конец файла. Но тут еще одна опция будет. UPD. я понимаю, что связка bash/cgi вызывает рвотный рефлекс у тру кодеров) Но мне нравится. Изучаю потихоньку все его возможности.
Deleted ()
Последнее исправление: medossa
(всего
исправлений: 2)
видосик такой был) В пользовательский потому, что требуется сделать некую систему уведомлений с возможностью редактирования пользователем. Образовательные цели, ничего личного)
файлы crontab положено редактировать программой crontab, которая делает всякие дополнительные штуки типа проверки правильности ввода, ведь это программа для конечного пользователя.
Дополнительное преимущество в том, что можно держать каждое задание в своём файле и пр надобности менять/удалять. Из каши в кронтабе можно нечаянно удалить то, что ты туда не клал.