Теперь перейдём к настройке 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 это была очень хорошая скорость :)