Unix. Настройка UUCP

Часть 2

Posted by Unik on 17.01.2018

Теперь перейдём к настройке Linux машины и поскольку из Unix мы подключиться не сможем, то у нас будут только исходящие вызовы. Установим пакет uucp:

sudo apt install uucp

После установки все конфигурационные файлы находяться в /etc/uucp/ Отредактируем /etc/uucp/config внеся туда следующие параметры:

nodename orange         # The UUCP name of this system
spool /var/spool/uucp       # The UUCP spool directory
pubdir /var/spool/uucppublic    # The UUCP public directory
logfile /var/spool/uucp/Log # The UUCP log file
statfile /var/spool/uucp/Stats  # The UUCP statistics file
debugfile /var/spool/uucp/Debug # The UUCP debugging file

Затем отредактируем файл /etc/uucp/sys добавив в него раздел описывающий подключение к Unix:

# Unix v7 system
system unixv7
call-login *
call-password *
local-send /
remote-send /
local-receive /
remote-receive /
time any
port TCP
address 127.0.0.1
protocol g

В значении address нужно указать IP на котором находиться simh с UNIX системой. Переходим к файлу /etc/uucp/call где укажем вызываемую систему и учётку для подключения, добавив туда строку:

unixv7 uucp uucp

В файл /etc/uucp/port пропишем номер порта telnet подключения к UNIX

port TCP
type tcp
service 23

Копирование файла из Linux в UNIX

Теперь можно попробовать скопировать файл в UNIX с помощью команды uucp указав имя вызываемой системы и через знак "!" имя для файла.

linux$ touch test.txt
linux$ echo Test UUCP > test.txt
linux$ uucp test.txt 'unixv7!/tmp/test.txt'

Напоминаю, что только пользователь указаный в файле /usr/lib/uucp/USERFILE на Unix может передавть файлы. Если отправить под другим пользователем то в логе /usr/spool/uucp/LOGFILE можно увидеть такую ошибку:

uucp orange (3/3-7:2) PERMISSION (DENIED)

Команда uucp не копирует файлы сразу же при вызове, вместо этого она помещает их в очередь и там они ожидают вызова удалённой системы который может произойти через какое то время. Это нужно было когда использовалась телефонная линия. Содержимое очереди можно посмотреть командой uustat.

linux$uustat
linux$unixv7.NHSbCNTAAFKv unixv7 user 01-17 11:47 Sending /home/user/test.txt (10 bytes) to /tmp/test.txt

По команде uulog можно просмотреть лог подключения к удалённой системе. А если нужно немедленно передать файл, то это делается так:

linux$ sudo uupoll unixv7

Если файл будет успешно скопирован, то вывод команды uulog будет таким:

linux$ uulog
uucico unixv7 - (2018-01-17 14:58:13.13 3724) Calling system unixv7 (port TCP)
uucico unixv7 - (2018-01-17 14:58:15.21 3724) Login successful
uucico unixv7 - (2018-01-17 14:58:15.43 3724) Handshake successful (protocol 'g' sending packet/window 64/3 receiving 64/7)
uucico unixv7 pi (2018-01-17 14:58:15.73 3724) Sending /home/pi/test.txt (10 bytes)
uucico unixv7 - (2018-01-17 14:58:16.45 3724) Protocol 'g' packets: sent 5, resent 0, received 3
uucico unixv7 - (2018-01-17 14:58:16.60 3724) Call complete (1 seconds 10 bytes 10 bps)

А в логе Unix машины /usr/spool/uucp/LOGFILE будут такие строки:

uucp orange (1/13-19:7) REQUESTED (S /home/pi/test.txt /tmp/test.txt pi)
pi orange (1/13-19:7) COPY (SUCCEEDED)

Копирование файла из UNIX в Linux

Для копирования файла из Unix используется точно такая же команда с таким же синтаксисом

# uucp /usr/src/games/quiz.c "orange!/tmp/quiz.c"

Но так как из Unix в нашем случае не получиться сделать вызов удалённой системы, то после этой команды сделайте принудительный вызов в Linux системе(sudo uupoll unixv7) и тогда файл скопируется.

Если передача пройдет успешно, то в /usr/spool/uucp/LOGFILE вы увидите следующее:

root orange (1/13-19:57) REQUEST (S /usr/src/games/quiz.c /tmp/quiz.c root)
root orange (1/13-19:57) REQUEST (SUCCEEDED)

А в логах Linux по команде uulog это отразится так:

uucico unixv7 - (2018-01-17 15:48:38.50 4610) Calling system unixv7 (port TCP)
uucico unixv7 - (2018-01-17 15:48:40.69 4610) Login successful
uucico unixv7 - (2018-01-17 15:48:40.89 4610) Handshake successful (protocol 'g' sending packet/window 64/3 receiving 64/7)
uucico unixv7 root (2018-01-17 15:48:41.42 4610) Receiving /tmp/quiz.c
uucico unixv7 - (2018-01-17 15:48:43.11 4610) Protocol 'g' packets: sent 5, resent 0, received 104
uucico unixv7 - (2018-01-17 15:48:43.22 4610) Call complete (3 seconds 6339 bytes 2113 bps)

К сожелению в UUCP при передаче данных используется скорость терминала, а значит файлы будут передаваться медленно. Но во времена создания UNIX это была очень хорошая скорость :)