Категории
Самые читаемые
Лучшие книги » Компьютеры и Интернет » Программирование » Искусство программирования на языке сценариев командной оболочки - Мендель Купер

Искусство программирования на языке сценариев командной оболочки - Мендель Купер

Читать онлайн Искусство программирования на языке сценариев командной оболочки - Мендель Купер

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 42 43 44 45 46 47 48 49 50 ... 96
Перейти на страницу:

host

Возвращает информацию об узле Интернета, по заданному имени или IP адресу, выполняя поиск с помощью службы DNS.

bash$ host surfacemail.com

surfacemail.com. has address 202.92.42.236

ipcalc

Производит поиск IP адреса. С ключом -h, ipcalc выполняет поиск имени хоста в DNS, по заданному IP адресу.

bash$ ipcalc -h 202.92.42.236

HOSTNAME=surfacemail.com

nslookup

Выполняет "поиск имени узла" Интернета по заданному IP адресу. По сути, эквивалентна командам ipcalc -h и dig -x. Команда может исполняться как в интерактивном, так и в неинтерактивном режиме, т.е. в пределах сценария.

bash$ nslookup -sil 66.97.104.180

nslookup kuhleersparnis.ch

Server: 135.116.137.2

Address: 135.116.137.2#53

Non-authoritative answer:

Name: kuhleersparnis.ch

dig

Подобно команде nslookup, выполняет "поиск имени узла" в Интернете.

Сравните вывод команды dig -x с выводом команд ipcalc -h и nslookup.

bash$ dig -x 81.9.6.2

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 11649

;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:

;2.6.9.81.in-addr.arpa. IN PTR

;; AUTHORITY SECTION:

6.9.81.in-addr.arpa. 3600 IN SOA ns.eltel.net. noc.eltel.net.

2002031705 900 600 86400 3600

;; Query time: 537 msec

;; SERVER: 135.116.137.2#53(135.116.137.2)

;; WHEN: Wed Jun 26 08:35:24 2002

;; MSG SIZE rcvd: 91

traceroute

Утилита предназначена для исследования топологии сети посредством передачи ICMP пакетов удаленному узлу. Эта программа может работать в LAN, WAN и в Интернет. Удаленный узел может быть указан как по имени, так и по IP адресу. Вывод команды traceroute может быть передан по конвейеру утилитам grep или sed, для дальнейшего анализа.

bash$ traceroute 81.9.6.2

traceroute to 81.9.6.2 (81.9.6.2), 30 hops max, 38 byte packets

1 tc43.xjbnnbrb.com (136.30.178.8) 191.303 ms 179.400 ms 179.767 ms

2 or0.xjbnnbrb.com (136.30.178.1) 179.536 ms 179.534 ms 169.685 ms

3 192.168.11.101 (192.168.11.101) 189.471 ms 189.556 ms *

...

ping

Выполняет передачу пакета "ICMP ECHO_REQUEST" другой системе в сети. Чаще всего служит в качестве инструмента диагностики соединений, должна использоваться с большой осторожностью.

В случае успеха, ping возвращает код завершения 0, поэтому команда ping может использоваться в условных операторах.

bash$ ping localhost

PING localhost.localdomain (127.0.0.1) from 127.0.0.1 : 56(84) bytes of data.

Warning: time of day goes back, taking countermeasures.

64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=0 ttl=255 time=709 usec

64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=1 ttl=255 time=286 usec

--- localhost.localdomain ping statistics ---

2 packets transmitted, 2 packets received, 0% packet loss

round-trip min/avg/max/mdev = 0.286/0.497/0.709/0.212 ms

whois

Выполняет поиск в DNS (Domain Name System). Ключом -h можно указать какой из whois серверов будет запрошен. См. Пример 4-6.

finger

Возвращает информацию о пользователях в сети. По желанию, эта команда может выводить содержимое файлов ~/.plan, ~/.project и ~/.forward, указанного пользователя.

bash$ finger

Login Name Tty Idle Login Time Office Office Phone

bozo Bozo Bozeman tty1 8 Jun 25 16:59

bozo Bozo Bozeman ttyp0 Jun 25 16:59

bozo Bozo Bozeman ttyp1 Jun 25 17:07

bash$ finger bozo

Login: bozo Name: Bozo Bozeman

Directory: /home/bozo Shell: /bin/bash

On since Fri Aug 31 20:13 (MST) on tty1 1 hour 38 minutes idle

On since Fri Aug 31 20:13 (MST) on pts/0 12 seconds idle

On since Fri Aug 31 20:13 (MST) on pts/1

On since Fri Aug 31 20:31 (MST) on pts/2 1 hour 16 minutes idle

No mail.

No Plan.

По соображениям безопасности, в большинстве сетей служба finger, и соответствующий демон, отключена[ 32 ].

vrfy

Проверка адреса электронной почты.

Доступ к удаленным системам

sx, rx

Команды sx и rx служат для приема/передачи файлов на/из удаленный узел в сети, по протоколу xmodem. Входят в состав пакета minicom.

sz, rz

Команды sz и rz служат для приема/передачи файлов на/из удаленный узел в сети, по протоколу zmodem. Протокол zmodem имеет некоторые преимущества перед протоколом xmodem, в качестве такого преимущества можно назвать более высокую скорость передачи и возможность возобновления передачи, в случае ее разрыва. Входят в состав пакета minicom.

ftp

Под этим именем подразумевается утилита и протокол передачи файлов. Сеансы ftp могут устанавливаться из сценариев (см. Пример 17-7, Пример A-5 и Пример A-14).

uucp

UNIX to UNIX copy. Это коммуникационный пакет для передачи файлов между UNIX серверами. Сценарий на языке командной оболочки -- один из самых эффективных способов автоматизации такого обмена.

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

cu

Call Up -- выполняет соединение с удаленной системой, как простой терминал. Эта команда является частью пакета uucp и, своего рода, упрощенным вариантом команды telnet.

telnet

Утилита и протокол для подключения к удаленной системе.

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

wget

wget -- неинтерактивная утилита для скачивания файлов с Web или ftp сайтов.

wget -p http://www.xyz23.com/file01.html

wget -r ftp://ftp.xyz24.net/~bozo/project_files/ -o $SAVEFILE

lynx

lynx -- Web браузер, внутри сценариев (с ключом -dump) может использоваться для скачивания файлов с Web или ftp сайтов, в неинтерактивном режиме.

lynx -dump http://www.xyz23.com/file01.html >$SAVEFILE

rlogin

Remote login -- инициирует сессию с удаленной системой. Эта команда небезопасна, вместо нее лучше использовать ssh.

rsh

Remote shell -- исполняет команду на удаленной системе. Эта команда небезопасна, вместо нее лучше использовать ssh.

rcp

Remote copy -- копирование файлов между двумя машинами через сеть. Подобно прочим r* утилитам, команда rcp небезопасна и потому, использовать ее в сценариях нежелательно. В качестве замены можно порекомендовать ssh или expect.

ssh

Secure shell -- устанавливает сеанс связи и выполняет команды на удаленной системе. Выступает в качестве защищенной замены для telnet, rlogin, rcp и rsh. Использует идентификацию, аутентификацию и шифрование информации, передаваемой через сеть. Подробности вы найдете в man ssh.

Локальная сеть

write

Эта утилита позволяет передать текст сообщения на другой терминал (console или xterm). Разрешить или запретить доступ к терминалу можно с помощью команды mesg.

Поскольку команда write работает в интерактивном режиме, то, как правило, она не употребляется в сценариях.

Mail

mail

Чтение или передача электронной почты.

Этот почтовый клиент командной строки с успехом может использоваться в сценариях.

Пример 12-31. Сценарий, отправляющий себя самого по электронной почте

#!/bin/sh

# self-mailer.sh: Сценарий отправляет себя самого по электронной почте

adr=${1:-`whoami`} # Если пользователь не указан, то -- себе самому.

# Вызов 'self-mailer.sh [email protected]'

#+ приведет к передаче электронного письма по указанному адресу.

# Вызов 'self-mailer.sh' (без аргументов) -- отправит письмо

#+ пользователю, запустившему сценарий, например, [email protected]

#

# Дополнительно о конструкции ${parameter:-default},

#+ см. раздел "Подстановка параметров"

#+ в главе "К вопросу о переменных".

# ============================================================================

cat $0 | mail -s "Сценарий "`basename $0`" отправил себя сам." "$adr"

# ============================================================================

# --------------------------------------------

# Поздравляю!

# Этот сценарий запустила какая-то "редиска",

1 ... 42 43 44 45 46 47 48 49 50 ... 96
Перейти на страницу:
На этой странице вы можете бесплатно скачать Искусство программирования на языке сценариев командной оболочки - Мендель Купер торрент бесплатно.
Комментарии