Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
61-73.doc
Скачиваний:
0
Добавлен:
28.01.2020
Размер:
276.99 Кб
Скачать

61. Bash командалық қабықшасы

басынан еркін – таралатын Burn Shell аналогы болып

келді. Оның мүмкіндіктері көбейе келе оны өзіндік өнім деп есептей бастады. Bash –тың негізгі мүмкіндіктері келесілер:

№ Мүмкіндіктер Комментарий

1 Жолды редактерлеу Енгізілген команданы оны қайтадан жазудың орнына

редактерлеу мүмкіндігі

2 Каналдарды ұйымдстару Енгізу-шығаруды қайта бағыттау, орындалатын

тапсырмалар арасындағы каналдарды ұйымдастару

мкіндігі

3 Жұмыстағы қолайлылық Команданың лақап атттарын, команда тарихын

автотолықтауды қолдану

4 Тапсырмаларды басқару Фондық тапсырмаларды құру мүмкіндігі жəне оларды

қару

5 Баптау Əр жеке қолданушыға арналған сценарий-файлдарын

олдану, айнымалылық орталар

Енгізу-шығаруды қайта бағыттаумен біз сіздермен 7 сабақта танысқан болатынбыз.

Сондықтан бұл пунктты алып тастайық. Ал bash жұмысының ерекшелігі туралы, олардың

басымдылықтары туралы толығырақ талқылайық.

Bash қолданушы ~/.bash_history файлына жазылатын барлық командаларды автоматты

түрде жазады. Бұл файлды басқару үшін history командасы қолданылады. History – бұл bash-қа орнатылған команда. Яғни, бұл командаға сəйкес орындаушы файл болмайды. Командалық қабықшаның өзі барлық əрекетті орындайды. Параметрсіз енізілен бұл команда файлда сақталатын жəне cat ~/.bash_history командасына ұқсас барлық командалар тізімін шығарады. Команда тарихы жиі қолданылатын командалар жиынтығын оңайлату үшін пайда болған. Командалар тарихын тізім бойынша <жоғары> жəне <төмен> батырмалары арқылы қарап шығуға болады.

Екінші тəсіл – командалық жолда ! жəне команда басын теріп жəне <Enter> батырмасын

басу керек. Алғашқы əріптері терілен əріптермен сəйкес келетін тарихтан алынған соңғы

команда орындалатын болады. Мысалы:

1 Мысал:

[gserg@WebMedia gserg]$ !/usr

/usr/bin/perl ./ptest.pl

OK

[gserg@WebMedia gserg]$ !xfonts

bash: !xfonts: event not found

[gserg@WebMedia gserg]$

Бізе керекті команда командалар тарихында болмаса, енізуді қалай жылдамдатуға болады?

Бұл жағдайда бізе <Tab> батырмасы көмектеседі. Команданың алғашқы кейбір əріптерін теріп (немесе файлға шығу жолы), <Tab> батырмасын басыңыз, сонда Bash сіздің командаңызды автоматты түрде толықтайды (немесе элемент жолын). Бірнеше файл сəйкес келетін немесе бірде бір файл сəйкес келмейтін жағдайда жүйе дыбыстық синал шығарады. Егер <Tab> батырмасын қайталап бассаңыз, онда бірнеше файл сəйкес келетін болады – жүйе тізімді шығарады, ал бірде біреуі сəйкес келмесе дыбыстық сигналды қайталайды.

62. Тапсырмаларды жобалау жайлы түсінік

Линукста администратор, қандай да бір программаның (немесе shell-сценаридің)

орындалуы оның қатысуысыз жүруі мүмкін болатын, бірақ бұл мүмкіндікті жүзеге

асыратын құрал қажет ететін проблемалармен жиі кездеседі. Қазіргі заманғы Линукс-жүйелерде бұл мақсат үшін тапсырмаларды жоспарлау

механизмдерін қолдану қабылданған. Бұд механизмдер тапсырмаларды жоспарлау демондары – at жəне cron көмегімен жүзеге асырылған.

Бұл программалардың көмегімен алдын ала белгілі уақытқа программаның орындалуын орнату мүмкіндігі пайда болады. Аt командасы тапсырманы орындау – бір реттік процедура болған жағдайда ғана қолданылады. Ал егер тапсырманы қандай да бір периодпен орындау жорамалданса, онда cron демонын жəне crontab командасын қолдану ең дұрысы болып табылады. Жоспарлау методикасы əр уақыт моментінде сервермен (немесе дербес компьютермен) болатын процесстер түсінігі болып табылады. Жоспарлау үшін төменде келтірілген минуттық дискретизацияға ұқсас форма қолданылады: Мұндай формалар сервердің жұмыс уақытын тиімді қолдануға жəне тапсырмаларды бағалы жоспарлауға мүмкіндік береді. Дəл осы уақытта тұрған барлық тапсырмалар жазылып шыққаннан соң, қайта енгізілетін тапсырмаларға қолайлы орын табу қажет болады. Тəжірибелі жүйелік басқарушылардың айтуы бойынша келеңсіз бір реттік тапсырманы кез келген уақытта енгізе алу үшін тапсырмалар кестесіне тəулігіне бір сағаттай бөліп отырған жөн, жəне де жүйенің ең жоғарғы жүгіну уақытын тапсырма орындаудан босатқан жөн. Бір уақытқа бірнеше тапсырма жоспарлауға болмайды.

63.At командасы.

at (at, atq, atrm) командалар тобы таймер бойынша белгілі уақытта тапсырманы орындау үшін инструменттер болып табылады. Берілген команданың дұрыс жұмыс істеуі үшін

жүйеде atd демоны жіберілуі керек. Atd демоны осы немесе басқа уақытта орындалуы керек тапсырмалардың кезегін қадағалап отырады. Тапсырманы (немесе бірнеше тапсырманы кезегімен бір уақытта) қою үшін сізге at

командасын орындау керек:

Мысал 1.

[student@Klass801 student]$ at 19:00

at> /home/student/bin/first.sh

<Control-D>

job 1 at 2004-12-01 13:01

[student@Klass801 student]$_

At демонымен көрсетілген команданы орындау нəтижесі сіздің Linux почталық жəшігіңізге жзылады (/var/spool/mail/student). Бірақ at жоспарлау жүйесі кезекке қойылған тапсырмаларды басқаруға мүмкіндік береді. Тапсырма кезегін atq командасын қолданыпқарауға болады:

Мысал 2.

[student@Klass801 student]$ atq

1 2004-12-01 13:01 a student

[student@Klass801 student]$

At командасы бірінен соң бірі тізбектеп орындалатын бірнеше тапсырманы кезекке қоюға

мүмкіндік береді. Оны интерактивті режимде (командалық жолда at командасын теріп), жəне де at командасына –f параметрін көрсетіп жасауға болады:

[student@Klass801 student]$ at -f commands 14:50

job 8 at 2004-12-05 14:50

[student@Klass801 student]$_

Atrm командасы тапсырманы кезектен алып тастайды:

root@ns root]# atq

7 2004-12-05 14:48 a root

8 2004-12-05 14:50 a root

[root@ns root]# atrm 7

[root@ns root]# atq

8 2004-12-05 14:50 a root

[root@ns root]#

At командасымен тапсырманы жоспарлау кезінде, жүйенің орташа жүгінуі шектік рұқсат мəннен асып кетпеуі үшін, тапсырманы орындау уақытына ерекше көңіл бөлген жөн.

64.cron демоны. crontab командасы.

at командасына қарағанда, cron демоны жəне жоспарлауды басқару командасы crontab сізге тапсырманы дəл жоспарлауға мүмкіндік береді. At сияқты тапсырманы crond

программа-демоны жібереді. Crontab командасы тек тапсырмаларды басқаруға қызмет етеді. Команданы қолданудан бұрын тапсырма кестесін сипаттайтын файл жасау керек.

Файл форматтары келесідей:

минуттар сағаттар ай_күні ай апта_күні команда

минуттар – 0-ден 59-ға дейінгі сандар, немесе *

сағаттар – 0-ден 23-ке дейінгі сандар, немесе *

ай_күні - 1-ден 31-ге дейінгі сандар, немесе *

ай - 1-ден 12-ге дейінгі сандар, немесе *

апта_күні - 0-ден 7-ге дейінгі сандар, мұндағы 0 немесе 7 – жексенбі, немесе *; мысалы:

0 10 * * * /home/student/bin/script # жіберу күнделікті сағат

10:00

15 * * * 1 /home/student/bin/script2 # əр сағаттың 15 минутында Crontab командасы кезеңдерді қолдануға мүмкіндік береді:

10-15 * /2 * * /home/student/bin/script3 # əр минутта, 10-нан 15

# минутқа дейін, əр айдың

# жұп күндерінде

Тапсырма файлын жасағаннан соң crontab командасын шақыру керек жəне оған параметр

реінде тапсырмалары бар файл атын көрсету керек:

[student@Klass801 student]$ crontab jobs

Сіз орнатқан тапсырмалар тізімін -1 параметрінің көмегімен қарап шығуға болады:

[student@Klass801 student]$ crontab -l

# DO NOT EDIT THIS FILE - edit the master and reinstall.

# (/tmp/crontab.1333 installed on Sat Dec 4 15:56:57 2004)

# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37

vixie Exp $)

10 * * * * /home/student/bin/script

[student@Klass801 student]$

Тапсырмалар тізімін –r параметрінің көмегімен босатуға болады:

[student@Klass801 student]$ crontab -l

# DO NOT EDIT THIS FILE - edit the master and reinstall.

# (/tmp/crontab.1333 installed on Sat Dec 4 15:56:57 2004)

# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37

vixie Exp $)

10 * * * * /home/student/bin/script

[student@Klass801 student]$ crontab -r

[student@Klass801 student]$ crontab -l

no crontab for student

[student@Klass801 student]$

Crontab командасы жəне де тапсырмалар тізімін –е параметрінің көмегімен редактілеуге

мүмкіндік береді. Редактор ретінде орта айнымалысында көрсетілген (кезектік реет бойынша) $VISUAL, $EDITOR немесе /bin/vi редакторы қолданылады. Файлды

сақтағаннан кейін, crontab тапсырма кестесін автоматты түрде қайта инициалдайды.

-u параметрі басқа қолданушылардың тапсырмаларын басқаруға мүмкіндік береді. Осы

параметрді суперқолданушы атынан емес қолдану кезінде сізге пароль енгізуге тура келеді.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]