/etc/protocols: English text /etc/securetty: ASCII text
Ниже приведен пример, демонстрирующий поиск файлов дампа, имена которых команда echo помешает в файл /tmp/core.log.
$ find / -name core -print | xargs echo > /tmp/core.log
В следующем примере в каталоге /apps/audit выполняется поиск всех файлов, к которым другие пользователи имеют полный доступ. Команда chmod удаляет для них разрешение на запись:
$ find /apps/audit -perm -7 -print | xargs chmod o‑w
Завершает наш перечень пример, в котором команда grep ищет файлы, содержащие слово "device":
$ find / -type f -print | xargs grep "device"
2.3. Заключение
Команда find представляет собой прекрасный инструмент поиска различных файлов по самым разнообразным критериям. Благодаря опции -exec, а также команде xargs найденные файлы могут быть обработаны практически любой системной командой.
Выполнение команд в фоновом режиме
Когда вы работаете за терминалом, во многих случаях неудобен вывод на экране результатов выполнения заданий в системе, ведь в это время вы можете быть заняты другими важными делами, например просмотром сообщений электронной почты. Кроме того, иногда возникает необходимость выполнять задания, интенсивно использующие дисковые ресурсы или ресурсы центрального процессора, в то время, когда загрузка системы минимальна. Для этих целей специально разработаны команды, которые позволяют запускать задания в фоновом режиме, а не на экране терминала.
В этой главе рассматриваются следующие темы:
• планирование заданий с помощью программы cron;
• планирование заданий с помощью команды at;
• выполнение заданий в фоновом режиме;
• выполнение заданий с помощью команды nohup.
cron | Системный планировщик, применяемый для многократного выполнения заданий в указанные периоды времени; является демоном, т. е. работает только в фоновом режиме |
at | Команда, которая служит для однократного выполнения заданий в назначенное время |
& | Оператор, позволяющий перевести задание в фоновый режим |
nohup | Команда для перевода задания в фоновый режим таким образом, чтобы оно не реагировало на сигнал HUP (hang‑up -oтбой) и продолжало выполняться, даже если запустивший его пользователь выйдет из системы |
3.1. Планировщик cron и команда crontab
Программа cron является основным системным планировщиком, служащим для выполнения различных заданий в фоновом режиме. Команда crontab позволяет пользователям создавать, редактировать и удалять инструкции для программы cron посредством специального crontab–файла. У каждого пользователя может быть свой crontab–файл, но в крупных системах администратор (пользователь root) обычно исключает данную возможность. В этом случае администратор создает вспомогательные файлы cron.deny и cron.allow, содержащие списки пользователей, которым соответственно запрещено и разрешено выполнять команду crontab.
Чтобы планировать выполнение заданий в определенное время, нужно знать формат записей в crontab–файле. Каждая запись содержит шесть полей;
1 | Минуты — 0—59 |
2 | Часы — 0—23 (0 означает полночь) |
3 | День месяца — 1—31 |
4 | Месяц — 1—12 |
5 | День недели — 0—7 {0 и 7 означает воскресенье) |
6 | Команда, которая должна быть выполнена |
Общий формат записи таков:
минуты часы день_месяца месяц деиь_нвдели команда
Все поля разделяются пробелами.
В первых пяти полях записи могут быть указаны диапазоны значений. Например, для того чтобы обеспечить выполнение задания с понедельника по пятницу, надлежит указать в пятом поле значение 1-5,
Допускается также задание списка значений, разделенных запятыми. Если,
например, задание должно быть выполнено только в понедельник и четверг, следует
ввести 1, 4.
Символ звездочки (*) — это обозначение диапазона "от первого до последнего", т. е. каждую минуту, каждый день и т. д. Если указан диапазон, то можно задать для него шаг пропуска с помощью символа /. Например, запись */2 означает "каждый второй".
В crontab–файле допускаются комментарии. В начале строки комментария должен стоять символ #.
Запись