Книга: Linux глазами хакера

3.5.1. Формирование задания

3.5.1. Формирование задания

Самый простой, надежный и любимый хакерами способ решить проблему запуска в определенное время — это команда at. В простейшем случае формат ее вызова следующий:

at hh:mm dd.mm.yy

При отсутствии даты используется ближайшая возможная. Например, если время больше текущего, то будет установлена текущая дата, если меньше, — то следующий день, потому что сегодня эта команда уже выполниться не сможет.

Рассмотрим использование команды at на реальном примере, с которым вы можете столкнуться в жизни. Допустим, что в начале рабочего дня мы завели нового пользователя. Мы также знаем, что этот сотрудник будет работать до 12 часов. Если после этого времени забыть удалить учетную запись, то пользователь останется в системе, а это большая дыра в безопасности.

Для начала необходимо выполнить команду at, указав время 12:30. Я беру запас 20 минут на случай, если пользователь задержится в системе. Для этого выполните команду:

at 12:50

В ответ на это появится приглашение для ввода команд:

at>

Введите необходимые инструкции. Например, для удаления пользователя необходимо выполнить команду userdel и стереть соответствующий каталог:

userdel tempuser
rm -fr /home/tempuser

Подробней об управлении пользователями мы узнаем в гл. 4, а сейчас нужно довериться мне и просто использовать эти команды. Конечно же, в вашей системе сейчас нет пользователя tempuser, и команда не отработает, но нас интересует сам факт ее запуска в указанное время.

Наберите эти команды, в конце каждой из них нажимая клавишу <Enter>. Для завершения ввода используйте комбинацию клавиш <Ctrl>+<D>. В ответ на это вы должны увидеть текстовое сообщение, содержащее дату и время, в которое будет выполнена команда, и идентификатор задания. Сообщение будет выглядеть примерно следующим образом:

Job 1 at 2005-03-03 12:30

С помощью команды atq можно увидеть список заданий, поставленных в очередь. Например, результат может быть следующим:

1 2005-01-28 12:40 a root
2 2005-01-28 01:00 a root
3 2005-01-30 12:55 a root

В первой колонке стоит номер задания, им можно управлять. После этого выводится дата выполнения команды, и в последней колонке — имя пользователя, который создал задачу.

Теперь допустим, что необходимо выполнять в определенное время (после окончания рабочего дня) резервное копирование. А что если в какой-либо день сотрудники задержались на работе, и им необходимо выполнить операции, которые сильно загружают систему. В этом случае резервное копирование будет мешать их работе, и логичнее отложить запуск задания.

Для решения этой проблемы создавайте задачу командой batch. Если в момент выполнения задания сервер будет загружен, то работа будет начата, когда нагрузка на сервер будет минимальной, по умолчанию менее 0,8%.

Оглавление книги


Генерация: 1.629. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз