Колонка Weekend Mechanic
Автор: © Thomas Adam
| ||||||||||||||||
Содержание
Так что такое Weekend Mechanic?Добро пожаловать в новый раздел этого месяца ....The Weekend Mechanic. На самом деле, те из вас, кто является постоянными читателями LG с её первого выпуска, поймут что эта колонка была написана John M Fisk в 1996-1998 годах, и на самом деле не так уж и нова. В тоже время, я думаю, что будет неплохо представить её еще раз, как постоянный раздел. "The Weekend Mechanic" обрисует весь мой опыт с Линукс и проблемы, которые мне приходилось решать как дома, так и в школе каждый месяц. Итак, The Weekend Mechanic, сконцентрируется на следующем:
Итак, давайте начнем этот месяц с урока по ремонту и починке :)
Персонализация shell окруженияЯ заметил, что все больше и больше людей, при использовании Линукс пытаются полностью положиться на ГИП (Графический Интерфейс Пользователя), надеясь, что им не придется вводить каких либо команд, в страхе уничтожить их работу, сделать непоправимую ошибку, и т.д. Хотя такое может случиться лишь в том случае, если вы вошли в систему как "root", я обнаружил, что люди все равно беспокоятся !! Хотя в любом случае придет время, когда придется вводить команды, и важно, чтобы ваш shell был настроен, так чтобы вы могли легко справиться с необходимой задачей. Эта статья покажет вам как настроить login shell, так чтобы возможности вроде псевдонимов(alias), редакторов и командных интерпретаторов работали так, как вы этого хотите. Для начала, вам нужно убедиться, что у вас установлен соответвующий редактор. Существует множество редакторов работающий в консольном режиме, так что у вас есть выбор: emacs, joe, jed, pico, vi. Найдя редактор, который придется вам по вкусу (я использую Pico и Jed) вы можете указать его shell. Некоторые программы, такие как Cron (как мы увидим далее), полагаются на то, что для shell настроен редактор, так чтобы вы могли редактировать crontab. Есть два файла, которым мы должны уделить особое внимание. Они расположены в вашей домашней директории: .bashrc и .bash_profile. Мой файл .bashrc начинается со следующего # User specific aliases and functions (Псевдонимы и функции пользователя) alias ls='ls -o --color=auto' alias cad='cat /var/squidGuard/db/blacklist/adverts' alias cc='cd /mnt/cdrom/Mandrake/RPMS' alias mail='mail -v' alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' alias d='ls' alias s='cd ..' alias p='cd -' Псевдонимы полезны, особенно если вам приходится вводить команду, которая содержит глубокий список директорий. Например, если вы обнаружили, что набираете команду cd /var/spool/users/home/mail/root/sun, то вы можете избежать её набора, указав "псевдоним", слово, которое будет автоматически делать это. Круто, да? :). Итак, чтобы указать shell, что вы хотите использовать слово "checkmail" чтобы выполнять команду cd /var/spool/users/home/mail/root/sunвы должны добавить в список: alias checkmail='cd /var/spool/users/home/mail/root/sun'Затем вы можете ввести псевдоним checkmail и ... это работает !! Конечно многие люди создают псевдонимы, чтобы приспособить среду к их ошибкам набора, т.е. alias eamcs='emacs' alias emcas='emacs'Лично я думаю что это плохая идея, и вам стоит научиться печатать более аккуратно! В следующей секции, мы должны увидеть как указать shell, какие программы запускать, когда пришло время для их запуска. В моем .bash_profile, кроме всего прочего, прописано следующее PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin ENV=$HOME/.bashrc USERNAME="root" export USERNAME ENV PATH
Это та секция, в которой мы должны сконцентрироваться на установке переменных. Обычно
неустановленные переменные - это "EDITOR" и "MAIL". Эти переменные специфичны для каждого пользователя.
Переменная Чтобы установить переменную вы должны добавить её в список "export", например так: export USERNAME ENV PATH EDITOR Экспорт переменной помещает её в окружении командного интерпретатора, вместо того чтобы поместить ее в окружении одной программы. Экспорт необходим, чтобы многие программы могли использовать тоже имя переменной с тем-же именем, ясно :-)
Добавив переменную в список export, сохраните файл и выйдите из вашего редактора. Итак, теперь,
когда мы определили новую переменную, нужно сказать Bash о ней. Чтобы сделать это, вы должны
выполнить файл при помощи команды source. Это встроенная команда bash, которая считывает файл и
выполняет его. Вы можете сделать это одним из 2х способов. Ввести source имя_файлаили же указать ".": . имя_файл Это активирует вновь добавленную переменную. Ну воть и все, что я хотел рассказать вы этой секции ..... Установка и использование CrontabВы никогда не обнаруживали себя выполняющим похожие задания в течении дня, и не хотели, чтобы существовала программа, позволяющая автоматизировать это? Отлично, вы можете больше не искать, Mr. Cron уже здесь :-) Cron это программа, выполняющая задания по расписанию, если быть более точным, она известна как демон. Под демоном я понимаю не отвратительное создание с двумя рогами !! Демон - это просто программа, которая исполняется в фоне, ожидая инструкций. Когда она получает их, она исполняет их и, закончив, опять переходит в дремлющее состояние. Cron обычно запускается, когда вы переключаетесь на один из ваших уровней запуска. Чтобы убедиться, что он запущен, выдайте следующую команду: ps ax | grep crond Если вы получите ответ похожий на: root 311 0.0 0.7 1284 112 ? S Dec24 0:00 crond root 8606 4.0 2.6 1148 388 tty2 S 12:47 0:00 grep crond Cron запущен, и вы готовы использовать его. Если вы не получили сообщение о "crond", тогда вы должны запустить демона, введя crond Cron особенно полезен, когда вам нужно запускать программы резервного сохранения и ухода за системой. Чтобы сказать cron, когда запускать программу, вы должны заполнить несколько полей. Каждая отдельная программа которая отмечена в расписании cron, помещается в файл crontab. Поля определены следующим образом: Min Hour DOM Month DOW User Cmd Описание их значений, просуммированно в следующей таблице:
Вы можете использовать "*" (без кавычек) в любом поле обозначающем время, обозначая таким образом "каждую минуту", "каждый час", и т.д. Итак, держа в уме приведенные выше описания, вот несколько правильных примеров: 01 * * * * root /usr/bin/script "Эта команда запускается в по прошествии 1й минуты каждого часа" 17 8 * * * root /bin/mail "Эта команда запускается каждый день в 8:17 утра" 17 20 * * * root /usr/bin/fetch "Эта команда запускается каждый день в 8:17 вечера" 00 4 * * 0 root /bin/qweb "Эта команда запускается в 4 утра каждое Воскресенье" * 4 * * Sun root /usr/bin/file2rpm "Эта команда запускается в 4 утра каждое Воскресенье" 42 4 1 * * root /usr/bin/squidlog "Эта команда запускается в 4:42 утра, каждое первое число" 01 * 19 07 * root /usr/bin/xman "Эта команда запускается каждый час 19го июля" Видите как это просто? :-). Cron также принимает более изощренные методы указания времени: запустите "man 5 crontab", если хотите узнать о них. Конечно, это все хорошо, но я не сказал вам куда помещать эти указания. Так что .... держись крепче читатель. Наиболее часто устанавливаемая на Линукс-системы версия cron - это "vixie-cron", и поэтому в директории "/etc/" должен быть файл "crontab". Если вы указали переменную окружения EDITOR (см. предыдущую секцию), то вы просто можете ввести: crontab -e Это загрузит файл в ваш текстовый редактор. Если вы не открыли его, используя приведенную выше команду, тогда откройте его, используя выбранный вами текстовый редактор, и вы должны найти что-то вроде этого SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin [email protected] HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly Переменная SHELL указывает используемый командный интерпретатор PATH указывает путь к большинству используемых программ Опция MAILTO кому будет отослан вывод cron о результатах выполнения (т.е. было исполнено или нет и вывод программы). Если вас это раздражает, то вы можете удалить эту переменную. Секция после "#runparts" предназначена для того чтобы все скрипты, например в директории "/etc/cron.daily", исполнялись каждый день. Хотя, по какой-то странной причине, это не когда не срабатывало у меня, и я решил что легче указывать мой собственный список cron. Итак, чтобы добавить приведенные выше примеры в ваш crontab, вам нужно всего лишь скопировать и вставить их: SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin [email protected] HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly #Custom Crontabs -- Put in by Thomas Adam 01 * * * * root /usr/bin/script 17 8 * * * root /bin/mail 17 20 * * * root /usr/bin/fetch 00 4 * * 0 root /bin/qweb * 4 * * Sun root /usr/bin/file2rpm 42 4 1 * * root /usr/bin/squidlog 01 * 19 07 * root /usr/bin/xman Затем сохраните файл. Последнее, что нам нужно сделать, это указать cron, что мы редактировали файл. Это делается при помощи следующей команды: crontab -u root /etc/crontab Вот и все...просто сидите и ждите..... Вы должны обнаружить, что теперь объем выполняемой вами работы уменьшился на 25% или около того!!! Cron также имеет способность разрешать и запрещать конкретным пользователем свое использование. Чтобы добиться этого, нужно создать два файла с именами cron.allow и cron.deny в директории "/etc". Эти файлы работают так. Если вы например хотите, чтобы никто не имел доступа к cron, то вы должны добавить строчку "ALL" в файл cron.deny. Если вы хотите, чтобы только определенные люди использовали cron, то вы должны добавить их имена в cron.allow. Вместо того, чтобы редактировать файл каждый раз, я нашел более простым использовать следующую команду: cat username >>/etc/cron.allow Ну вот и все....Идите и пробуйте......!?! ЗаключениеНу вот народ, это все в этом месяце. Я надеялся сделать больше, но к сожалению школьная работа опять ворвалась в мои планы!! Я действительно оценю любые ответные сообщения, комментарии, советы по поводу статей. Вооруженный этой информацией, я смогу "сделать Линукс немного более удобным" :-). А теперь я пойду изучать пианино, делать проверку Географии (да) и потом, возможно, продолжу работать над одним из моих "bash скрипт проектов". После этого, возможно мне удасться даже немного поспать, кто знает ??? Тем временем, я желаю всем ...... "счастливой Линуксации" Посылайте мне комментарии....Любые комментарии, предложения, идеи, и т.д. можно послать мне, нажав на ссылку на e-mail, расположенную ниже:Thomas Adam
| ||||||||||||||||
Copyright © 2001, Thomas Adam. Copying license http://www.linuxgazette.com/copying.html Published in Issue 66 of Linux Gazette, May 2001 | ||||||||||||||||
Вернуться на главную страницу |