Заводной пингвин j1m (j1m@list.ru) Хакер, номер #085, стр. 085-100-2 Несколько *замечаний*: 1. Прописанные в crontab команды исполняются интерпретатором /bin/sh с тремя заданными переменными окружения: USER, HOME и SHELL. Так как переменная PATH не определена, ты должен указывать полный путь к бинарнику. 2. Если настроена локальная почтовая система, то весь вывод команды отправляется пользователю в письме. Для выполнения только одного-двух заданий функциональность cron может оказаться избыточной. В этом случае лучше прибегнуть к помощи команды at. Он как раз предназначен для однократного выполнения задания и внутренне устроен гораздо проще. Для примера запустим тот же скрипт в то же время: $ at 19:00 at> /usr/bin/our-script CTRL-D Очень просто и красиво, не правда ли? Время исполнения можно назначить на любой день, используя такой формат: «at час:минута /месяц/день/год». Еще мне нравится вот такой стиль указания времени: «at now + 2 hours» - выполнить команду через 2 часа, «at now + 1 day2 - на следующий день. Как и cron, at может позаботиться о том, чтобы пользователь получил уведомление о выполненном задании по почте. Для удаления ненужного задания посмотри его идентификатор в списке заданий (команда atq), а затем используй команду «atrm идентификатор» для удаления. [автоматизируй интернет-соединения] Пришло время автоматизировать твои многочисленные интернет-соединения. Скажу сразу, что этот раздел будет полезен только для диалапщиков. Причины просты. Владельцам выделенных линий ничего автоматизировать не надо, соединение с сетью инициализируется на этапе загрузки ОС без участия пользователя. С другой стороны, «счастливым» обладателям модемов приходится не только ограничивать время, проведенное в инете (поминутная тарификация), но и к тому же отодвигать его поближе к ночи (дешевле). Выход: заставить ОС звонить ночью провайдеру и забирать почту и нужные файлы. Предлагаю твоему вниманию одно из возможных решений. Открываем файл /etc/ppp/ip-up и пишем в него следующее: # vi /etc/ppp/ip-up #!/bin/sh # отправляем почту (только если у тебя установлен локальный почтовый сервер) /usr/sbin/sendmail -q # запускаем файл /tmp/ppp-auto if [ -x /tmp/ppp-auto ]; then /tmp/ppp-auto # удаляем уже ненужный файл rm -f /tmp/ppp-auto # отключаемся /usr/sbin/ppp-off fi Вместо строки /usr/sbin/ppp-off пропиши команду, с помощью которой ты отключаешься от сети. Если демон pppd найдет файл /tmp/ppp-auto, он его выполнит и разорвет соединение. Теперь создадим шаблон файла ppp-auto: # vi ~/ppp-auto #!/bin/sh # файл исполняется от рута, а наши команды должны исполняться от обычного пользователя /bin/su - имя_пользователя # забираем почту fetchmail # переходим в специальный каталог cd ~/download # скачиваем нужные файлы wget ftp://... wget http://... Установи полные права на этот файл: $ chmod 777 ~/ppp-auto Все. Теперь тебе нужно его заполнить, скопировать в каталог /tmp и назначить время соединения с помощью at: $ cp ~/ppp-auto /tmp/ppp-auto $ at 02:10 at> /usr/sbin/ppp-on Замени /usr/sbin/ppp-on на команду, с помощью которой ты устанавливаешь соединение. Обрати внимание, что такие команды обычно требуют привилегий root, поэтому можно: a) настроить sudo (см. ниже) или б) запустить at от root'а. |