da est', vy imeete eshche odin sposob zapuska uucico. Sintaksis vyglyadit tak: $ /usr/lib/uucp/uusub -c system Teper' kogda my znaem, kak ispol'zovat' vse eti komandy vruchnuyu, my mozhem rassmotret' nekotorye instrumental'nye sredstva, avtomatiziruyushchie bol'shuyu chast' vashej raboty s uucp. ------------------------------------------------------------- IMYA: uust ------------------------------------------------------------- uust Sostoyanie uucp i sluzhebnye dejstviya NAZNACHENIE Predostavlyaet upravlyaemyj s pomoshch'yu menyu dostup ko mnogim sluzhebnym funkciyam, svyazannym s utilitoj uucp i peredachej fajlov. FORMAT VYZOVA uust Opcii menyu: c - podklyuchit'sya k drugoj sisteme v otladochnom rezhime d - pokazat' fajly v vashem kataloge PUBDIR f - dlinnoformatnyj spisok fajlov v kataloge podkachki (spool directory) l - dinamicheski otobrazhat' registracionnyj fajl r - povtornoe podklyuchenie k drugoj sisteme s - dat' pol'zovatelyu svodku o tranzakciyah u - razblokirovat' vse terminal'nye linii (OSTOROZHNO: eto mozhet narushit' seans raboty) w - otobrazit' registracionnyj fajl za poslednyuyu nedelyu PRIMER VYZOVA uust Dinamicheski otobrazhat' registracionnyj fajl, chtoby sledit' za tranzakciyami uucp TEKST PROGRAMMY 1 : 2 # @(#) uust v1.0 Uucp status utility Author: Russ Sage 4 if [ $# -gt 0 ] 5 then echo "uust: argument error" >&2 6 echo "usage: uust" >&2 7 exit 1 8 fi 10 UUNODE=`uuname -l` 11 echo " 12 UUST MENU system node: $UUNODE 13 --------- 14 c - connect with another system in debug mode 15 d - show files in your directory under PUBDIR 16 f - long list files in the spool directory 17 l - display the logfile dynamically 18 r - reconnect with another system 19 s - give user summary of transactions 20 u - unlock the tty line 21 w - display logfile for the last week 22 - exit program 24 Press c,d,f,l,r,s,u,w,or : \c" 25 read CMD 27 case $CMD in 28 "") exit 0;; 29 c) echo "\nSystem name ( to exit): \c" 30 read SYSTEM 31 if [ "$SYSTEM" = "" ] 32 then exit 0 33 fi 34 echo "\nrm /usr/spool/uucp/STST.$SYSTEM : \c" 35 rm /usr/spool/uucp/STST.$SYSTEM 2>/dev/null \ 36 && echo "" || echo "no STST files" 37 echo "\n/usr/lib/uucp/uucico -r1 -x4 -s$SYSTEM:" 38 /usr/lib/uucp/uucico -r1 -x4 -s$SYSTEM;; 39 d) echo "\n/usr/spool/uucppublic/$LOGNAME:" 40 ls -l /usr/spool/uucppublic/$LOGNAME;; 41 f) echo "\n/usr/spool/uucp:" 42 ls -l /usr/spool/uucp | more;; 43 l) echo "\n/usr/spool/uucp/LOGFILE:" 44 tail -20f /usr/spool/uucp/LOGFILE;; 45 r) echo "\nSystem name ( to exit): \c" 46 read SYSTEM 47 if [ "$SYSTEM" = "" ] 48 then exit 0 49 fi 50 echo "\nrm /usr/spool/uucp/STST.$SYSTEM : \c" 51 rm /usr/spool/uucp/STST.$SYSTEM 2>/dev/null \ 52 && echo "" || echo "no STST files" 53 echo "uusub -c$SYSTEM:" 54 if [ -f /xenix ] 55 then /usr/bin/uusub -c$SYSTEM 56 else /usr/lib/uucp/uusub -c$SYSTEM 57 fi 58 tail -20f /usr/spool/uucp/LOGFILE;; 59 s) echo "\nuulog -u$LOGNAME:" 60 uulog -un$LOGNAME | more;; 61 u) echo \\nrm /usr/spool/uucp/LCK* : 62 rm /usr/spool/uucp/LCK* 2>/dev/null || echo "no lock files";; 63 w) echo "\n/usr/spool/uucp/Log-WEEK:" 64 more /usr/spool/uucp/Log-WEEK;; 65 *) echo "uust: invalid argument '$CMD'" >&2;; 66 esac PEREMENNYE SREDY VYPOLNENIYA CMD Soderzhit simvol vhodnoj komandy, postupivshij iz standartnogo vvoda LOGNAME Soderzhit vashe registracionnoe imya SYSTEM Uzlovoe imya uucp toj sistemy, v kotoruyu vy obrashchaetes' UUNODE Uzlovoe imya uucp lokal'noj sistemy OPISANIE ZACHEM NAM NUZHEN KOMANDNYJ FAJL uust? Mnogie oblasti sistemy UNIX yavlyayutsya fakticheski samostoyatel'nymi podsistemami. Uucp odna iz nih. Ona ispol'zuet konfiguracionnye fajly, fajly podkachki (spool files), fajly blokirovki (lock files) i imeet mnogo ispolnyaemyh modulej, obrazuyushchih celuyu sistemu. Esli vy intensivno ispol'zuete uucp, vy chasto zanimaetes' prosmotrom registracionnyh fajlov, ochistkoj katalogov posle avarijnyh zavershenij raboty uucp i nablyudeniem za sistemoj v celom. Esli delat' vse eto vruchnuyu, trebuetsya zapominat' katalogi, fajly, komandy, opcii. Trudno zapomnit' tak mnogo simvolov dlya vvoda komand. Uust znachitel'no sokrashchaet izderzhki i oblegchaet ispol'zovanie utility uucp. CHTO DELAET uust? Uust - eto upravlyaemyj s pomoshch'yu menyu interfejs, predostavlyayushchij osnovnye sluzhebnye funkcii, neobhodimye dlya sredy uucp. Vam nuzhno nabrat' tol'ko komandu uust, a zatem trebuemye opcii. Vpolne vozmozhno takzhe, chto vy obnaruzhite trudosberegayushchie funkcii, o kotoryh vy ne znali ran'she. Pervoe, chto pechataet dannye komandnyj fajl - eto glavnoe menyu: ------------------------- | | UUST MENU system node: russ | --------- | c - connect with another system in debug mode | d - show files in your directory under PUBDIR | f - long list files in the spool directory | l - display the logfile dynamically | r - reconnect with another system | s - give user summary of transactions | u - unlock the tty line | w - display logfile for the last week | - exit program | | Press c,d,f,l,r,s,u,w,or : Pervaya opciya 'c' prednaznachena dlya podklyucheniya linii uucp v otladochnom rezhime. |ta opciya generiruet takuyu zhe komandnuyu stroku, kak pri ruchnom sposobe zapuska processa uucico (sm. predydushchij razdel). Uust zaprashivaet u vas imya sistemy, k kotoroj vy hotite podklyuchit'sya. Sleduyushchaya opciya 'd' daet dlinnoformatnyj listing fajlov vashego kataloga, opredelyaemogo vashej peremennoj $PUBDIR, t.e. /usr/spool/uucppublic/$LOGNAME. Esli vy chasto delaete peresylki s pomoshch'yu uucp, zdes' mozhet sobrat'sya mnogo fajlov. Dannaya opciya predostavlyaet vam prostoj sposob ih prosmotra. Opciya 'f' vydaet dlinnoformatnyj listing vseh fajlov, nahodyashchihsya v kataloge podkachki. Vyhod komandy "ls -l" peredaetsya po konvejeru komande more, chto udobno pri nalichii bol'shogo kolichestva fajlov. |tot katalog yavlyaetsya serdcem ispolnyayushchej sistemy uucp. Pochti vse nahoditsya ili v etom kataloge, ili kak-to svyazano s nim. Opciya 'l', vidimo, naibolee chasto ispol'zuemaya vo vsej utilite. Ona pozvolyaet uvidet' v dinamike funkcionirovanie uucp, nablyudaya za registracionnym fajlom. Pri pervom vyzove ona pechataet poslednie 20 strok etogo fajla, a zatem vedet nablyudenie, poka ne budet ostanovlena ee rabota. Obshchee kolichestvo nazhatij na klavishi dlya vyzova etoj komandy s pomoshch'yu uust ravno 5: 4 dlya vyzova uust i 1 dlya ukazaniya opcii menyu. Dlya togo chtoby nabrat' tu zhe komandu vruchnuyu, trebuetsya 31 simvol. Vot gde ekonomiya vremeni i izbavlenie ot lishnih problem! Ochen' interesna opciya 'r'. Ukazhite ej imya sistemy - i ona ustanovit svyaz' s etoj sistemoj pri pomoshchi uucp. Ispol'zuemyj pri etom metod otlichaetsya ot metoda, primenyaemogo v opcii 'c', no rabotaet v System V. Otmetim, odnako, chto v bol'shinstve sistem komanda uusub, zadejstvovannaya zdes', trebuet vozmozhnostej superpol'zovatelya. Uusub vozvrashchaet upravlenie obratno vashemu interpretatoru shell, no zatem zapuskaet uucp v fonovom rezhime. Kogda eto proizojdet, uust prodvigaetsya vpered i pokazyvaet dinamicheskij hvost registracionnogo fajla, kak opisano vyshe. Posle etogo vy mozhete nablyudat' vse dejstviya uucp po vyzovu, peredache fajlov i zaversheniyu raboty. Opciya 's' pokazyvaet vse vashi tranzakcii k utilite uucp, vybiraya iz registracionnogo fajla tol'ko to, chto otnositsya k vashemu imeni. Obychno imeetsya mnogo zapisej, poetomu vyvod peredaetsya po konvejeru komande more v celyah udobstva chteniya. Sleduyushchuyu opciyu 'u' nuzhno ispol'zovat' s bol'shoj ostorozhnost'yu. Ona udalyaet fajly blokirovki, ustanavlivaemye sistemoj uucp dlya samoj sebya. Esli v eto vremya uucp rabotaet, drugoj pol'zovatel' mozhet obratit'sya pri pomoshchi cu k linii i vse razrushit'. |ti fajly blokirovki sushchestvuyut takzhe, kogda kto-to primenyaet cu na posledovatelnoj linii. Dannaya opciya predusmotrena po toj prichine, chto inogda uucp ili cu zavershaetsya avarijno. Kogda takoe proishodit, nuzhno udalit' fajly blokirovki, chtoby nachat' vse snachala. |tu opciyu sleduet ispol'zovat' tol'ko dlya etoj celi libo dlya zaplanirovannogo eksperimenta, chtoby posmotret', chto pri etom mozhet proizojti. Poslednyaya opciya 'w' prednaznachena dlya otobrazheniya iz registracionnogo fajla teh tranzakcij uucp, kotorye otnosyatsya k poslednej nedele. |to netrudno sdelat', no esli by vy iskali opredelennuyu tranzakciyu, vy mogli by primenit' dlya etogo sredstva poiska simvol'nyh strok komandy more. PRIMER $ uust r |to popytka povtornogo podklyucheniya k linii uucp. Ee mozhno ispol'zovat' dlya oprosa drugoj sistemy ili dlya otpravki ili priema dannyh, stoyashchih v ocheredi. Pervym delom zaprashivaetsya imya sistemy, k kotoroj nuzhno obratit'sya. Zatem eta komanda pytaetsya udalit' vse fajly, ostavshiesya posle predydushchih avarijnyh zavershenij, i proizvesti vyzov. POYASNENIYA Uust yavlyaetsya odnoprohodnoj utilitoj, t.e. ne imeet vnutrennih ciklov. Vy vybiraete opciyu, i posle zaversheniya ee vypolneniya zavershaetsya ves' komandnyj fajl. Takim sposobom eto sdelano glavnym obrazom po toj prichine, chto vy dolzhny obryvat' vyvod komandy tail, kooraya ispol'zuetsya nekotorymi opciyami menyu. Odnako, klavisha break prekrashchaet vse, dazhe vypolnenie uust. Ne imeet smysla delat' vnutrennij cikl, tak kak etot cikl redko smog by povtorit'sya. V strokah 4-8 vypolnyaetsya proverka komandnoj stroki na nalichie oshibok. Esli peredany kakie-to argumenty, vydaetsya soobshchenie ob oshibke i komandnyj fajl zavershaetsya. Stroka 10 inicializiruet peremennuyu UUNODE tekushchim imenem uucp toj sistemy, v kotoroj vy rabotaete. |to obespechivaetsya vyzovom utility uuname. Stroki 11-24 otobrazhayut glavnoe menyu odnim bol'shim operatorom echo. Imya sistemy, postupivshee v peremennuyu UUNODE, vydaetsya dlya spravki v pravoj verhnej chasti ekrana. V stroke 25 chitaetsya otvet pol'zovatelya, a stroki 27-66 proveryayut komandu i vypolnyayut ee. Esli vy vveli tol'ko vozvrat karetki, eto sootvetstvuet stroke 28, i programma zavershaetsya. Stroki 29-38 obrabatyvayut komandu 'c' - podklyuchenie v otladochnom rezhime. Zaprashivaetsya imya sistemy i proveryaetsya, ne pustoe li ono. Esli ono pustoe, komandnyj fajl zavershaetsya. V protivnom sluchae stroka 34 soobshchaet, chto uust pytaetsya udalit' vse fajly STST, kotorye sozdavalis' pri neudachnyh vyzovah. Pered tem kak obratit'sya k sisteme, vy dolzhny udalit' vse fajly STST. Esli takih fajlov net, komanda rm ne srabatyvaet i vydaetsya soobshchenie "no STST files". Stroki 39-40 vypolnyayut opciyu 'd'. Snachala otobrazhaetsya dlya spravki nazvanie kataloga, kotoryj my prosmatrivaem. Zatem raspechatyvaetsya katalog PUBDIR v dlinnom formate. Zametim, chto LOGNAME sootvetstvuet lyubomu pol'zovatelyu, zapustivshemu dannuyu programmu, poetomu net neobhodivosti vpisyvat' v tekst programmy kakoe-to znachenie. V strokah 41-42 analogichnym obrazom obrabatyvaetsya opciya 'f'. My raspechatyvaem zdes' katalog podkachki. Komanda 'l' v strokah 43-44 soobshchaet, chto otobrazhaetsya registracionnyj fajl. Zatem ispol'zuetsya komanda "tail -f". Opciya -f oznachaet, chto nuzhno proizvodit' otobrazhenie togo, chto nahoditsya v fajle sleduyushchim obrazom: kak tol'ko tranzakcii pechatayutsya v fajl, oni otobrazhayutsya na vash ekran. Pol'zovatel' dolzhen nazhat' klavishu break dlya vyhoda iz programmy. Stroki 45-58 vypolnyayut komandu 'r', kotoraya pytaetsya proizvesti povtornoe podklyuchenie. Snachala zaprashivaetsya imya sistemy i sravnivaetsya s pustoj strokoj. Esli imya vvedeno, my pytaemsya udalit' fajly STST i vydaem soobshchenie o tom, bylo li eto udalenie uspeshnym. Zatem pechataetsya soobshchenie o tom, chto zapuskaetsya process uusub. V stroke 54 proveryaetsya, yavlyaetsya li kornevym fajlom XENIX. Esli eto tak, to utilita uusub vyzyvaetsya s uchetom ee novogo mestonahozhdeniya v sisteme XENIX. V protivnom sluchae ona vyzyvaetsya s ukazaniem ee obychnogo mestonahozhdeniya - /usr/lib/uucp. Posle vypolneniya uusub otobrazhaetsya dinamicheskij hvost registracionnogo fajla, poka pol'zovatel' ne nazhmet klavishu break, posle chego komandnyj fajl zavershaetsya. V strokah 59-60 vypolnyaetsya proverka svodki o tranzakciyah. Ispol'zuetsya komanda uulog, ej peredaetsya LOGNAME tekushchego pol'zovatelya. Podrobnosti o komande uulog mozhno najti v dokumentacii. Opciya 'u' rassmatrivaetsya v strokah 61-62. Snachala otobrazhaetsya komanda rm, kotoraya budet vypolnena, chtoby uvedomit' ob etom pol'zovatelya. Zatem eta komanda vypolnyaetsya, chtoby popytat'sya udalit' fajly blokirovki. Esli komanda udaleniya zavershaetsya neudachej, vydaetsya soobshchenie ob oshibke, ukazyvayushchee na otsutstvie fajlov blokirovki. Stroki 63-64 zapuskayut opciyu 'w', chtoby posmotret' deyatel'nost' uucp za poslednyuyu nedelyu. S pomoshch'yu komandy more pechataetsya fajl LogWEEK. |tot fajl sozdaetsya utilitoj uucp, chtoby obespechit' szhatuyu svodku o rabote v techenie nedeli. Stroka 65 sootvetstvuet lyubym komandam, kotorye ne byli raspoznany ranee. Takie komandy yavlyayutsya oshibochnymi, i vydaetsya soobshchenie ob etom. Kogda vypolnenie programmy dohodit do etogo mesta, ona zavershaetsya. ------------------------------------------------------------ IMYA: uutrans ------------------------------------------------------------ uutrans Peredacha fajlovyh derev'ev iz odnoj sistemy UNIX v druguyu sistemu UNIX NAZNACHENIE Kopiruet polnuyu ierarhiyu fajlovoj sistemy s pomoshch'yu uucp v druguyu sistemu UNIX i podderzhivaet strukturu fajlovogo dereva. FORMAT VYZOVA uutrans PRIMER VYZOVA cd $HOME/backup uutrans remote ~russ Nachinaya s podkataloga backup moego registracionnogo kataloga, zapustit' uutrans s cel'yu peredachi vseh moih fajlov. Fajly posylayutsya v sistemu remote i razmeshchayutsya tam v moem registracionnom kataloge (/usr/russ). TEKST PROGRAMMY 1 : 2 # @(#) uutrans v1.0 Transfer file trees via uucp 3 # Author: Russ Sage 4 if [ $# -gt 0 ] 5 then echo "uutrans: argument count error" >&2 6 echo "usage: uutrans" >&2 7 exit 1 8 fi 10 SELF=`uuname -l` 12 echo "source directory( to exit): \c" 13 read SOURCE 14 if [ "$SOURCE" = "" -o ! -d "$SOURCE" ] 15 then exit 1 16 fi 18 echo "\ndestination system( for $SELF): \c" 19 read SYSTEM 20 echo "\ndestination directory( for ~/$LOGNAME): \c" 21 read DEST 23 : ${SYSTEM:="$SELF"} 24 : ${DEST:="~/$LOGNAME"} 26 echo "\nQUEUEING:" 28 find $SOURCE -type f -print | sort | while read FILE 29 do 30 echo $FILE 31 uucp -c -d -r $FILE $SYSTEM!$DEST/$FILE 32 done PEREMENNYE SREDY VYPOLNENIYA DEST Mesto naznacheniya, kuda nuzhno kopirovat' fajly FILE Opredelennyj kopiruemyj fajl LOGNAME Soderzhit registracionnoe imya SELF Soderzhit uzlovoe imya tekushchej sistemy SOURCE Istochnik vseh kopiruemyh fajlov SYSTEM Imya sistemy, v kotoruyu nuzhno kopirovat' OPISANIE ZACHEM NAM NUZHEN KOMANDNYJ FAJL uutrans? Kopirovanie fajlov iz odnoj sistemy v druguyu s pomoshch'yu uucp - dovol'no prostaya zadacha: dostatochno ukazat', kakie fajly kuda nuzhno napravit'. No kak byt' v sluchae, kogda vam nuzhno skopirovat' ierarhiyu fajlov? Kak garantirovat', chto fajly raspolozhatsya v sisteme-adresate v vide ierarhii, a ne budut zasunuty v odin i tot zhe katalog? Edinstvennoe predlozhenie v dokumentacii po uucp (dazhe ne na stranicah rukovodstva) govorit o tom, kak eto sdelat'. Esli vy nikogda ne chitali ego, to skoree vsego vashi peresylki zavershatsya neudachej. Nam nuzhno instrumental'noe sredstvo, kotoroe peredaet drevovidnye struktury v drugie sistemy, sohranyaya pri etom formu etih struktur. My hotim obespechit' prostoj sposob vypolneniya etoj raboty, chtoby ne iskat' kazhdyj raz pripryatannuyu informaciyu. CHTO DELAET uutrans? Uutrans predostavlyaet gibkij interfejs, garantiruyushchij pravil'noe kopirovanie fajlovyh ierarhij. |tot komandnyj fajl znaet, kakie fajly peredavat', v kakuyu sistemu ih napravit' i gde ih razmestit' v etoj sisteme. Kogda vy zapuskaete uutrans, pervym delom on zaprashivaet ishodnyj katalog dlya peresylki fajlov. Esli vy ne hotite prodolzhat', nazhmite vozvrat karetki dlya vyhoda. Obratite vnimanie, chto ispol'zuetsya komanda find, poetomu put', kotoryj vy ukazyvaete v otvet na podskazku, yavlyaetsya prefiksom marshrutnogo imeni dlya vseh peredavaemyh fajlov. Naprimer, esli vashim tekushchim katalogom yavlyaetsya $HOME i vy hotite sdelat' ego katalogom-istochnikom, vvedite ".". Operator find sgeneriruet dlya fajla /src/f.c marshrutnoe imya ./src/f.c. Esli zhe vy vvedete, naprimer, imya /usr/russ, to rezul'tiruyushchim marshrutnym imenem budet /usr/russ/src/f.c. Takim obrazom, trebuetsya nebol'shaya predusmotritel'nost', chtoby izbezhat' sozdaniya lishnih urovnej kataloga v sisteme-adresate. Zatem zaprashivaetsya imya sistemy-adresata. Esli vy hotite, chtoby eto byla vasha sobstvennaya sistema, nazhmite vozvrat karetki. |to pozvolit skopirovat' fajly v predelah togo zhe zhestkogo diska ili v drugie fajlovye sistemy. V zaprose kataloga-adresata umolchaniem yavlyaetsya PUBDIR. Esli vam eto ne podhodit, ukazhite tochnoe marshrutnoe imya kataloga, s kotorogo vy hotite nachat' ierarhiyu v sisteme-adresate. (Napomnim takzhe, chto mnogie sistemy nakladyvayut ogranicheniya na to, kuda vy mozhete kopirovat' fajly s pomoshch'yu uucp.) Sposob, kotorym uutrans podderzhivaet pravil'noe fajlovoe derevo - eto ukazanie absolyutnogo marshrutnogo imeni v sisteme-adresate, nizhe kotorogo budut raspolagat'sya vse peredavaemye fajly. Edinstvennyj sposob sdelat' eto - zanesti marshrutnoe imya v peremennuyu i ispol'zovat' ee v kachestve putej kak istochnika, tak i adresata pri vyzove uucp. Kogda vsya vhodnaya informaciya vvedena, ispol'zuetsya komanda find, chtoby najti vse fajly, otnosyashchiesya k dannoj ierarhii. Zatem kazhdoe marshrutnoe imya peredaetsya po konvejeru v cikl, kotoryj otobrazhaet imya i peredaet fajl adresatu pri pomoshchi uucp. Dlya togo chtoby uskorit' ves' process i sekonomit' svobodnoe prostranstvo, fajly stavyatsya v ochered' v kataloge podkachki (t.e. ne delaetsya popytka vyzvat' udalennuyu sistemu), i nikakie fajly ne kopiruyutsya v katalog podkachki. |to ekonomit vremya, kotoroe ushlo by na kopirovanie bol'shih kolichestv fajlov, i dazhe mozhet obezopasit' vashu mashinu ot avarijnyh zavershenij raboty, tak kak kopirovanie bol'shogo chisla fajlov zabiraet vse svobodnoe prostranstvo. Kogda vse fajly postavleny v ochered', vam nuzhno vruchnuyu podsoedinit'sya k uucp s pomoshch'yu komandy 'c' ili 'r' utility uust. Vse katalogi v sisteme-adresate dolzhny sozdavat'sya avtomaticheski po mere peresylki fajlov. Neskol'ko nepriyatnyj vopros - prava sobstvennosti i dostupa k fajlam na prinimayushchej storone. Obychnaya posledovatel'nost' dejstvij takova: 1. Postavit' fajly v ochered' k uucp, ispol'zuya instrumental'noe sredstvo uutrans. 2. Vyjti iz sistemy-istochnika. 3. Vojti v sistemu-adresat. 4. Zapustit' uust i povtorno podklyuchit'sya k uucp. Esli vy priderzhivaetes' takoj tehnologii postanovki v ochered' i peredachi, to vy polnost'yu kontroliruete, kakie fajly kuda napravlyayutsya. Imeetsya pobochnyj effekt, zaklyuchayushchijsya v tom, chto prava dostupa k fajlam v kataloge-adresate ustanavlivayutsya v sootvetstvii s maskoj interpretatora shell (shell umask) togo processa, kotoryj proizvodit povtornoe podklyuchenie. Neobhodimo otmetit', chto esli u vas net prav dostupa na zapis' v vashej umask, to sozdaetsya peresylochnyj katalog, no v nego ne mogut byt' pomeshcheny nikakie fajly, chto podryvaet peredachu fajlov s pomoshch'yu uucp. Dlya razresheniya etoj problemy izmenite vashu umask na "000" (po umolchaniyu ona ravnyaetsya 777 dlya katalogov i 644 dlya obychnyh fajlov). PRIMERY 1. cd $P uutrans . remote Smenit' katalog na PUBDIR. Peredat' vse fajly iz tekushchego kataloga (.) v udalennuyu sistemu, razmeshchaya ih v podrazumevaemom kataloge ~/$LOGNAME, t.e. v moem kataloge PUBDIR. 2. uutrans /etc remote /tmp/etc Peredat' vse fajly iz kataloga /etc v sistemu remote, pomeshchaya ih v katalog /tmp/etc. POYASNENIYA Stroki 4-8 proveryayut nalichie oshibok. Esli v komandnoj stroke est' argumenty, pechataetsya soobshchenie ob oshibke. Stroka 10 inicializiruet peremennuyu SELF imenem vashego sistemnogo uzla, ispol'zuemogo utilitoj uucp. Stroki 12-16 zaprashivayut katalog-istochnik i chitayut otvet v peremennuyu SOURCE. Esli nichego ne vvedeno ili ukazan ne katalog, programma zavershaetsya. Stroki 18-21 zaprashivayut sistemu-adresat i katalog-adresat. Umolchaniyami yavlyayutsya vasha sobstvennaya sistema i katalog PUBDIR dlya razmeshcheniya fajlov. |ti umolchaniya oblegchayut konfigurirovanie, svyazannoe s peresylkoj informacii, chtoby ne bylo neobhodimosti vvodit' mnogo dannyh. V strokah 23 i 24 proveryaetsya, inicializirovany li peremennye. Esli peremennoj SYSTEM prisvoen vozvrat karetki, v nee zanositsya znachenie SELF. Esli peremennaya DEST pustaya, ej prisvaivaetsya ~/$LOGNAME. |ti operatory ustanavlivayut znacheniya po umolchaniyu. Stroka 26 pechataet soobshchenie o tom, chto fajly stavyatsya v ochered'. Ves' fokus zaklyuchaetsya fakticheski v strokah 28-32. Komanda find nachinaet rabotat' s kataloga SOURCE i nahodit vse obychnye fajly. |tot spisok peredaetsya utilite sort, tak chto uucp peresylaet fajly v otsortirovannom poryadke. |to oblegchaet otslezhivanie togo, kakie fajly byli peredany, esli voznikayut kakie-to problemy. Otsortirovannyj spisok popadaet v cikl while, chitayushchij imena fajlov. Kazhdoe imya otobrazhaetsya na ekran dlya spravki, i fajl stavitsya v ochered' k udalennoj sisteme. V stroke 31 ukazany takie opcii uucp: -r dlya postanovki v ochered', -c dlya togo, chtoby ne kopirovat' fajly v katalog podkachki, i -d dlya sozdaniya katalogov, neobhodimyh v udalennoj sisteme. Dlya podderzhki drevovidnoj struktury my primenyaem magicheskij sintaksis $SYSTEM!$DEST/$FILE. Nam nuzhno ne tol'ko skopirovat' fajly v sistemu i v katalog, no i opredelit' marshrutnoe imya vplot' do samogo fajla. |to garantiruet, chto fajly budut rasfasovany po katalogam. Esli by byl ispol'zovan sintaksis $SYSTEM!$DEST, to vse fajly popali by v odin katalog i ih ierarhicheskaya struktura byla by uteryana. Posle togo kak vse fajly postavleny v ochered', oni nahodyatsya v etoj ocheredi do teh por, poka ih ne pozovet udalennaya sistema. Togda fajly budut skopirovany v etu sistemu. KONFIGURACIONNYE RESHENIYA Zachastuyu na praktike vokrug nashej sistemy UNIX nakaplivaetsya mnogo ne osobenno sovmestimoj apparatury, vklyuchaya terminaly, mikro-|VM i modemy. Kak zastavit' ih rabotat' sovmestno? Teper' kogda my rassmotreli osnovnye osobennosti apparatury i programmmnogo obespecheniya dlya kommunikacij v sisteme UNIX, my gotovy predstavit' nekotorye primery raboty kommunikacij v kompleksah s sistemoj UNIX. My hotim rassmotret' ryad konfiguracij, ispol'zuyushchih razlichnye kombinacii apparatury. Problemy menyayutsya, no nash obshchij podhod ostaetsya. PODKLYUCHENIE UNIX K MODEMU I GLAVNOJ MASHINE Pervaya zadacha, kotoruyu my rassmotrim, eto ispol'zovanie "personal'noj" sistemy UNIX, modema i glavnoj mashiny. U nas est' sistema UNIX s odnim posledovatel'nym portom, no my imeem kak modem, tak i liniyu pryamogo podklyucheniya k sisteme bol'shego razmera. Kak nam ispol'zovat' odin posledovatel'nyj port i dlya modema, i dlya glavnoj mashiny? Reshenie pokazano na ris. 8-10. Ris. 8-10. Podklyuchenie sistemy UNIX k modemu i glavnoj mashine --------------------------------------------------------------- ***** +----------------+ * * | | * modem * | glavnaya mashina | * * | | ***** +----------------+ ^ ^ | Pryamoj kabel' | Nul'-modem | | | +---------------+ | ------>| |------- | pereklyuchatel' | | | \ / \___________/ ^ | | Pryamoj kabel' | v +-------------+ | | | UNIX | | | +-------------+ --------------------------------------------------------------- Nam nuzhen blok pereklyucheniya. |tot blok imeet odin vhod na odnoj storone i dva vhoda na drugoj. My podsoedinyaem UNIX k glavnomu vhodu, chto pozvolyaet pereklyuchat'sya libo na modem, libo na glavnuyu mashinu. Zdes' dva razlichnyh podsoedineniya: UNIX <-- --> modem Vyzov iz UNIX pri pomoshchi cu, uucp i obrashchenie v UNIX s udalennogo terminala UNIX --> glavnaya mashina UNIX obrashchaetsya k glavnoj mashine, kak pryamo podklyuchennyj terminal PODKLYUCHENIE UNIX I TERMINALA K MODEMU |ta konfiguraciya analogichna predydushchej, za isklyucheniem togo, chto vsya apparatura lokal'na. My hotim ispol'zovat' modem kak dlya terminala, tak i dlya UNIX. Konfiguraciya pokazana na ris. 8-11. Port sistemy UNIX podsoedinyaetsya k odnoj storone pereklyuchatelya, a terminal k drugoj. Otmetim, chto terminal NE budet obrashchat'sya v sistemu UNIX. Vse kabeli pryamolinejnye. V takom komplekse vozmozhny sleduyushchie konfiguracii: UNIX <-- --> modem Obrashchenie v UNIX s udalennogo terminala i vyzov iz UNIX s pomoshch'yu cu, uucp terminal --> modem Dlya vyzova iz UNIX tol'ko v kachestve nemogo terminala Ris. 8-11. Podklyuchenie UNIX i terminala k modemu ---------------------------------------------------------------- ***** * * * modem * * * ***** ^ | | Pryamoj kabel' | v /-----------\ / \ | | | pereklyuchatel' | | | ------->| |<------- | |_______________| | Pryamoj | | Pryamoj kabel' | | kabel' | | v | +-----------+ +--------------+ | | | | | UNIX | | terminal | | | | | +-----------+ +--------------+ ---------------------------------------------------------------- PODKLYUCHENIE UNIX K TERMINALU, MODEMU I GLAVNOJ MASHINE |ta situaciya dovol'no slozhna i trebuet dvuh blokov pereklyucheniya. Sootvetstvuyushchaya arhitektura pokazana na ris. 8-12. Ris. 8-12. Podklyuchenie sistemy UNIX k terminalu, modemu i glavnoj mashine -------------------------------------------------------------------- ***** +----------------+ * * | | * modem * | glavnaya mashina | * * | | ***** +----------------+ ^ ^ Pryamoj | | Nul'- kabel' | | modem | +---------------+ | +-------------+ ----->| |----- | | | pereklyuchatel' | | terminal | | 2 | | | \ / +-------------+ \___________/ | ^ | Nul'-modem | Pryamoj kabel' | | | +---------------+ | ------>| |<------ | pereklyuchatel' | | 1 | \ / \___________/ ^ | | Pryamoj kabel' | v +-------------+ | | | UNIX | | | +-------------+ -------------------------------------------------------------------- Nachnem s sistemy UNIX. V nej imeetsya liniya, idushchaya v pereklyuchatel' 1 v kachestve glavnogo vhoda. Pereklyuchatel' 1 osushchestvlyaet pereklyuchenie mezhdu terminalom i blokom pereklyucheniya 2. |to pozvolyaet sisteme UNIX libo poluchat' terminal dlya registracii v sisteme (v predpolozhenii, chto rabotaet getty), libo poluchat' modem dlya registracii v sisteme, libo posylat' informaciyu modemu ili glavnoj mashine (predpolagaetsya, chto processa getty net). Zametim, chto mezhdu terminalom i UNIX dolzhen byt' nulevoj modem, no my ne mozhem sdelat' nul'-modem srazu posle UNIX, potomu chto nam nuzhen pryamoj kabel' dlya podsoedineniya k modemu. Zatem blok pereklyucheniya 2 vypolnyaet kommutaciyu mezhdu modemom i glavnoj mashinoj. Liniya k modemu dolzhna byt' pryamoj, a liniya v glavnuyu mashinu dolzhna byt' nul'-modemom. Vozmozhny sleduyushchie vzaimosvyazi: UNIX <-- terminal Obrashchenie v UNIX s terminala po linii getty UNIX <-- --> pereklyuchatel' <-- --> modem Vyzov iz UNIX s pomoshch'yu cu, uucp i obrashchenie v UNIX s udalennogo terminala UNIX --> pereklyuchatel' --> glavnaya mashina Obrashchenie iz UNIX pri pomoshchi cu, uucp SISTEMA UNIX, MIKRO-|VM I MODEM V etoj konfiguracii takzhe trebuetsya dva bloka pereklyucheniya. U nas est' mashina s dvumya posledovatel'nymi liniyami, na kotoroj rabotaet UNIX, avtonomnaya mikro-|VM i modem, kotoryj oni dolzhny sovmestno ispol'zovat'. UNIX-mashina takzhe vosprinimaet registraciyu s avtonomnoj mashiny, pozvolyaya ej emulirovat' terminal, esli u nas est' sootvetstvuyushchee programmnoe obespechenie. Reshenie pokazano na ris. 8-13. Ris. 8-13. Sistema UNIX, mikro-|VM i modem ------------------------------------------------------------------- ***** * * * modem * * * ***** ^ | pryamoj kabel' | v ______________ / \ / \ | pereklyuchatel' | | 2 | ------------------- ^ ^ | | | | ----------------- ------------------- | | | ------------------------------- | | | | | | | | | | | ------------------- | | | | | | | pereklyuchatel' | | | \ 1 / | | \_____________/ Pryamoj | | Nul'-modem ^ kabel' | | | v v | +--------+ +-------------+ | | | | | UNIX | | mikro-|VM | | | | | +--------+ +-------------+ ------------------------------------------------------------------- Mikro-|VM mozhet rabotat' dvumya sposobami: libo kak terminal v sisteme UNIX, libo kak terminal dlya obrashcheniya k modemu. Sistema UNIX imeet odin posledovatel'nyj port, pozvolyayushchij svyazyvat'sya s mikro-|VM cherez pereklyuchatel' 1. Drugaya posledovatel'naya liniya idet v blok pereklyucheniya 2, podsoedinennyj k modemu. Po etoj linii mozhno libo obrashchat'sya iz sistemy UNIX vo vneshnij mir, libo prinimat' vneshnie vyzovy s cel'yu udalennoj registracii v sisteme cherez modem. Pereklyuchatel' 2 kommutiruet modem mezhdu mikro-|VM i sistemoj UNIX. Vozmozhny takie kombinacii: mikro-|VM --> pereklyuchatel' --> modem Obrashchenie vovne s pomoshch'yu kommunikacionnyh sredstv mikro-|VM --> pereklyuchatel' --> UNIX Registraciya v sisteme putem emulyacii terminala UNIX <-- pereklyuchatel' <-- mikro-|VM Registraciya s terminala, podklyuchennogo napryamuyu UNIX <-- --> pereklyuchatel' <-- --> modem Vyzov iz UNIX pri pomoshchi cu, uucp, udalennaya registraciya modem <-- pereklyuchatel' <-- mikro-|VM Vyzov modema s mikro-|VM modem <-- --> pereklyuchatel' <-- --> UNIX Vyzov iz UNIX ili obrashchenie v UNIX; trebuetsya izmenenie getty dlya posledovatel'noj linii i avtootveta modema ALXTERNATIVNOE RESHENIE Vozmozhno eshche odno reshenie predydushchej zadachi. Ono ispol'zuet neskol'ko bol'she vozmozhnostej, chem predydushchee reshenie. Te zhe osnovnye problemy resheny, no podhod pri etom sil'no otlichaetsya. V konfiguracii, pokazannoj na ris. 8-14, bloki pereklyucheniya podsoedinyayutsya inache, chem v predydushchem komplekse. Dostupny te zhe puti peredachi informacii, a takzhe nekotorye novye. Ris. 8-14. Sistema UNIX, mikro-|VM i modem v al'ternativnoj konfiguracii --------------------------------------------------------------------- ***** * * ------->* modem * | * * -------------------- | ***** | | | | | | pryamoj kabel' | | v | _______________ | | | | nulevoj | pereklyuchatel' | | modem \ 2 / | \-----------/ | ^ | | pryamoj kabel' | | | v | /-----------\ | / \ | | pereklyuchatel' | | | 1 | | +_______________+ | ^ ^ | | | | pryamoj kabel' | | pryamoj kabel' | ------------------- -------------- | | | v v | +--------+ +---------------+ | | | | | UNIX | | mikro-|VM | | | | | +--------+ +---------------+ ---------------------------------------------------------------------- Kak mikro-|VM, tak i sistema UNIX podklyucheny k pereklyuchatelyu 1. |tot pereklyuchatel' prisoedinen k bloku pereklyucheniya 2 glavnym vhodom. Linii ot mikro-|VM, ot UNIX, mezhdu pereklyuchatelyami i modemnaya liniya dolzhny byt' pryamymi kabelyami. Tol'ko vhodnaya liniya sistemy UNIX dolzhna byt' nul'-modemom. Pereklyuchatel' 2 kommutiruet odin iz central'nyh processorov mezhdu modemom i vtoroj posledovatel'noj liniej sistemy UNIX. Modemnaya liniya mozhet idti ot modema ili k nemu, no liniya sistemy UNIX dolzhna byt' tol'ko vhodyashchej, potomu chto v UNIX rabotaet getty. Vozmozhny takie kombinacii: mikro-|VM --> pereklyuchatel' --> modem Obrashchenie vovne pri pomoshchi kommunikacionnyh sredstv mikro-|VM --> pereklyuchatel' --> UNIX Registraciya v sisteme putem emulyacii terminala UNIX <-- --> pereklyuchatel' <-- --> modem Obrashchenie iz ili v UNIX s pomoshch'yu cu, uucp UNIX --> pereklyuchatel' --> UNIX Vyhod s pervoj linii idet vo vtoruyu liniyu dlya registracii v sisteme modem <-- --> pereklyuchatel' <-- --> processor Vybor central'nogo processora zavisit ot pereklyuchatelya 1 UNIX <-- pereklyuchatel' <-- processor V zavisimosti ot pereklyuchatelya 1, odin iz processorov mozhet zaregistrirovat'sya v sisteme TRI SISTEMY UNIX Poslednyaya konfiguraciya, kotoruyu my rassmotrim, eto soedinenie treh sistem UNIX. Dannoe reshenie bylo podskazano konfiguraciej s pryamym podsoedineniem 16-razryadnoj mashiny PC XENIX, 32-razryadnoj mashiny PC XENIX i glavnoj mashiny VAX. Dlya togo chtoby vypolnit' takoe podklyuchenie, nam nuzhno tri dvunapravlennyh bloka pereklyucheniya. Ne tak vazhno, kakaya iz mikro-|VM 1 i mikro-|VM 2 yavlyaetsya 32- ili 16-razryadnoj mashinoj. Oni mogut byt' v vashem pomeshchenii, a glavnaya mashina mozhet stoyat' gde-to v drugom meste i soedinyat'sya kabelem s vashim pomeshcheniem. Pri etom predpolagaetsya, chto kabel' ot glavnoj mashiny uzhe yavlyaetsya nul'-modemom v vashem podklyuchenii. Eshche odin nulevoj kabel' raspolagaetsya mezhdu dvumya sistemami UNIX na mikro-|VM, chtoby mozhno bylo zaregistrirovat'sya s odnoj iz etih sistem v drugoj sisteme v kachestve terminala. Ostal'nye kabeli pryamye (sm. ris. 8-15). Ris. 8-15. Tri sistemy UNIX --------------------------------------------------------------------- +------------------+ | | | UNIX | | glavnaya mashina | | | +------------------+ ^ | nul'-modem | ______________ / \ / \ | pereklyuchatel' | | 3 | |__________________| ^ ^ | | pryamoj kabel' | | pryamoj kabel' ---------------- ---------------- | | |