subject: Beschrijving van het informatiesysteem MFGNSI date: 17 juni 1996
from: Sharief Muradin Org. NSI05518 HZ HB160 035 6875256
smuradin@hvspg01.att.com
Inleiding
MFGNSI is een centraal informatiesysteem waar de output files van PRIDE naar toegestuurd worden voor distributie. Hier bieden alle Office Engineers binnen EMEA-regio hun projecten aan, waarna deze gedistributeerd worden naar de site waar het project gefabriceerd moet worden.
Tevens stuurt de fabrieken alle informatie voor wat betreft acceptatie, screening, workaround etc.
van een project via dit informatiesysteem terug naar de Office Engineers.
Het principe van MFGNSI is als volgt:
Om ervoor te zorgen dat de zender en de ontvanger niet opelkaar zitten te wachten, verstuurt de zender zijn projecten eerst naar het informatiesysteem MFGNSI. Dit stuurt op zijn beurt een
conformation terug naar de zender met de boodschap ik heb je project ontvangen en dit ga ik doorsturen naar de ontvanger. Hierdoor weet de zender dat zijn project goed in MFGNSI isontvangen. Hiermee is traject A gedekt. Mocht de zender de conformation na enige tijd niet hebben ontvangen, dan moet hij het project opnieuw aanbieden of contact opnemen met de beheerder van MFGNSI.
Na ontvangst van een project in MFGNSI, wordt een Announcement of transmission van een project verstuurd naar de ontvanger ter kennisgeving dat dit project aangeboden is. Tevens wordt er een historie van het project bijgehouden in de volgende vorm (project_list):
Date Project Issue Group Cis 960617 m01980 001 panl NE 960520 727080 004 oehz N 951013 841100 002 oepl NP
etc etc etc etc etc
MFGNSI Ontvanger
Zender A B
Dit bijhouden gebeurt steeds 20 minuten over het hele uur en wordt voor een dag bijgehouden in een report-file
==============================================================================
Week: 623.1 Date: 03-Jun-96/22:30 --- Review of PPI-files received today
---
Time Projno Iss Mfg Project description
1105 g93250 001 N MIERLO E H. Cayir 070-3377145
1105 h07020 001 N MILLINGEN AAN DE RIJ Nico Bruin 035-6874 1105 h07290 001 N UTRECHT-ZUID B Edwin Meulenkam 070-33772 1205 g92050 001 N EUROPOORT-DINTELHAVE Marc van Santen 070 1205 g92630 001 N TERHEIJDEN D A.Watchman 070-3377112 1205 g92980 001 N ESCH B A.WATCHMAN 070-3377112
1205 h02780 001 N ESPEL-CENTRUM C A.Watchman 070-3377112 1205 h03030 001 N WIJTHMEN C A.Watchman 070-3377112 1205 m0200 001 N SMP20 FOR SRC ST. PETERSBURG S. Muradin 1305 874610 002 N ATT-NSE FORMACION TR ANGEL IZQUIERDO 253 1405 g93460 001 N UDENHOUT B A.WATCHMAN 070-3377112 1405 h07550 001 N MONNICKENDAM F R.M.J.P. Lokoll 070-33772 1505 910430 001 N MULTI LINK RLG+COMBIMUXR.v.ROSSUM 4437 1605 910430 002 N MULTI LINK RLG+COMBIMUXR.v.ROSSUM 4437 1605 946060 001 N NAALDWIJK-CENTRUM G Ernest Pronk 070-337 1605 946070 001 N SLIEDRECHT-CENTRUM C Ernest Pronk 070-33 1705 874610 003 N ATT-NSE FORMACION TR ANGEL IZQUIERDO 253
--- Manufacturing Huizen - S. Muradin - Tel +31 35 87 5256 ==============================================================================
Dit rapport wordt 1 keer per dag om 22.30 uur verstuurt naar de ontvanger ter kennisgeving dat deze projecten in CIS zijn aangekomen. Nu is het de beurt aan de ontvanger, om na te gaan aan de hand van het rapport of ook daadwerkelijk alle projecten in CIS aanwezig zijn. Mocht èèn van de projecten ontbreken in CIS, dan moet de ontvanger dit melden aan de beheerder van MFGNSI. Die biedt op zijn beurt het (de) desbetreffende project(en) opnieuw aan. Hiermee is traject B gedekt.
Opbouw van MFGNSI
Transfer I
n t a k e
D I S T R .
Bydg.
Tres C.
Huizen
Fabriek
...OCM OEPL OENL
SCR, 999, WKA etc SCR, 999, WKA etc
PPI + ODM PPI + ODM PPI + ODM
PPI PPI + ODM
PPI + ODM
PPI + ODM PPI + ODM
Zender MFGNSI Ontvanger
MFGNSI is heel eenvoudig opgezet en is volledig in UNIX shell language geschreven. De zenders zijn hier de afdelingen die projecten aanbieden voor fabricage zoals: Office Engineers (OEN), Order Cycle Management (OCM) en de Project acceptatie groep van de fabrieken opzich. De Onvangers zijn de fabrieken.
De hoofd ingrediénten van het systeem zijn de Intake-, Transfer- en Distribute processen waaruit het informatiesysteem is opgebouwd. Hiernaast zijn er nog wat processen die ervoor zorgen dat het systeem periodiek opgeschoond- en gearchiveerd worden. De PPI en de screeningfiles worden drie jaar bewaard. De ODM plus de workaround files voor èèn jaar. Daarna worden ze van het systeem verwijderd.
Het systeem is zo opgezet, dat wanneer mutatie plaats moet vinden, niet de hoofd processen maar de referentie files aangepast dienen te worden.
De hoofd processen zijn ($HOME/ctl/):
intake.ctl : Het verzamelen- en registeren van binnengekomen projectfiles.
distribute.ctl : Het distribueren van de binnengekomen projectfiles naar de juiste directorie structuur binnen MFGNSI en het versturen van de files naar de manufacturing
site.
transfer.ctl : De ontvangen projectfiles verhuizen naar het xmit gebied voor distribute.ctl.
report.ctl : Samenstellen van een report file, waarin de dagelijkse projecten zijn vermeld.
De periodieke processen zijn ($HOME/ctl/):
archiver.ctl : Om log en report files te archiveren.
cleaner.ctl : Het opschonen van de directorie structuur in MFGNSI.
De referentie files zijn ($HOME/files/):
archive_list : Dit is een lijst die door distribute.ctl wordt gebruikt om de projectfiles in de juiste directorie neer te zetten.
============================================================================================
ppi $HOME/data/ppi Kolom 1 - Extensie van het projectnummer lab $HOME/data/lab Kolom 2 - archief directorie
l21 $HOME/data/lab l37 $HOME/data/lab fus $HOME/data/lab pji $HOME/data/dfi hwi $HOME/data/dfi cbi $HOME/data/dfi pwi $HOME/data/dfi cnf $HOME/data/dfi oda $HOME/data/dfi odm $HOME/data/odm
=============================================================================================
cis_destination: Hierin wordt de uuto adres van CIS gedefinieerd waar de matspec file (PPI) naar toegestuurd moet worden.
=============================================================================================
nlintcb!cbinter Kolom 1 - uuto adres
=============================================================================================
dfi_list : Hier wordt de dfi projectfile extensie types gedefinieerd.
=============================================================================================
pji Kolom 1 - Extensie van het projectnummer hwi
cbi pwi ppi f52 cnf oda
=============================================================================================
ident_list : Hier wordt de manufacturing sites (de ontvangers) gespecificeerd met hun mnemonics
mxx. De mnemonics worden verder gebruikt in de master_screen-en de project_review files.
=============================================================================================
mth panl M hzske04!mfasdoc Kolom 1 - scr/rev file extensie mtc paes M hvgtw!magtw!mass31!efasdoc Kolom 2 - project acceptatie groep mjk paid M hvgtw!idgtw!jkbgnp!jzwier Kolom 3 - Message vlag. M is ja.
mpl papl M hvgtw!plgtw!bybss01!fasmpl Kolom 4 - E-mail adres
=============================================================================================
mail _destination: Hier wordt de E-mail adres vermeld naar waar de error meldingen, gegenereerd in MFGNSI naar toegestuurd moeten worden.
=============================================================================================
hzske04!fasmnl Kolom 1 - email addres
=============================================================================================
mfg_list : Hier worden de manufacturing adressen vermeld in relatie met de CIS indicatoren zoals vermeld in de ppi-files.
=============================================================================================
<N> M hzske04!fasmnl Kolom 1 - <MFG destination> CIS indicator
<E> M hvgtw!magtw!mass31!efasdoc Kolom 2 - Message vlag. M is ja
<I > M hvgtw!idgtw!jkbgnp!jzwier Kolom 3 - E-mail addres
<P> M hvgtw!plgtw!bybss02!fasmpl
<O> M att!ocrje!ocap!fep
=============================================================================================
oe_list : Hier worden de Office engineering (zenders) groepen gespecificeerd in relatie met hun mnemonic van projectdata transmissie methode.
=============================================================================================
oeuk uuto M hvspg01 hvspg01!oeuk Kolom 1 - Office Engineering mnemonic voor intern gebruik oenl uuto M hvsdg01 hvsdg01!oenl Kolom 2 - Methode van data transmissie.
oehz uuto M hzshg01 hzshg01!oehz Kolom 3 - Message vlag. M is ja oees uuto M mass31 hvgtw!magtw!mass31!oesp Kolom 4 - UNIX machines oepl uuto M bybss02 hvgtw!plgtw!bybss02!oepl Kolom 5 - E-mail addressen lmpl uuto M bybss01 hvgtw!plgtw!bybss01!bgerrit
lmpl uuto M bybgis01 hvgtw!plgtw!bybss01!bgerrit oeid uuto M jksprd hvgtw!idgtw!jkbgnp!jksprd!oejk lmnl copy M lmnl hvspg01!lmcps
lmes uuto M laluna hvgtw!magtw!laluna!lmes panl copy M panl hzske04!mfasdoc forc copy M forc hvspg01!foreclm
=============================================================================================
project_list : Hier worden de ontvangen ppi files geregistreerd op datum, project, issue, etc.
m.b.v. deze lijst wordt tevens herkend van wie een project afkomstig is.
=============================================================================================
941123 762400 005 oehz NE Kolom 1 - Datum van de ontvangen ppi file
950120 762410 003 oepl NE Kolom 2 - Projectnummers
941201 762430 001 oehz NP Kolom 3 - laatste issue van de ontvangen ppi -file 950117 762431 000 oepl PN Kolom 4 - MFG bestemmings indicator 941123 762500 004 oehz NE
950110 762800 002 oehz NE 950120 762810 003 oepl NE 941101 762900 003 oehz N
=============================================================================================
report_list : Hier zijn de E-mail adressen opgenomen waar dagelijks de report files naar toegestuurd moet worden. $HOME/report/report.<wkn>.<day>
=============================================================================================
hvspg01!oeuk Kolom 1 - E-mail adres
hvsdg01!oenl hzshg01!oehz
hvgtw!magtw!mass31!oesp hvgtw!plgtw!bybss02!oepl hvgtw!idgtw!jkbgnp!jksprd!oejk hvspg01!lmcps
hvgtw!magtw!laluna!lmes hvspg01!mfasdoc hzske04!fasmnl hvspg01!foreclm
hvgtw!magtw!mass31!efasdoc hvgtw!idgtw!jkbgnp!jzwier hvgtw!idgtw!jkbgnp!rvilla hvgtw!plgtw!bybss02!fasmpl
=============================================================================================
rev_list : Hier zijn alle E-mail adressen opgenomen die een copy ontvangen van de project_rev.mxx file. Dit is een voortgangslijst van de fabrieken waarin de prioriteiten van fabricage van projecten zijn vermeld.
=============================================================================================
hvspg01!oeuk Kolom 1 - E-mail addressen
hvsdg01!oenl hzshg01!oehz
hvgtw!magtw!mass31!oesp hvgtw!plgtw!bybss02!oepl hvgtw!idgtw!jkbgnp!jksprd!oejk hvgtw!magtw!mass31!efasdoc
=============================================================================================
scr_list : Hier zijn alle project acceptatie groepen vermeld in relatie met hun screening
type
scx .=============================================================================================
scr panl M hzske04!mfasdoc Kolom 1 - Screen file type
sce paes M hvgtw!magtw!mass31!efasdoc Kolom 2 - Project Acceptatie groep sci paid M hvgtw!idgtw!jkbgnp!jzwier Kolom 3 - Message vlag. M is ja scp papl M hvgtw!plgtw!bybss01!fasmpl Kolom 4 - E-mail addres
=============================================================================================
wka_list : Hier zijn alle project acceptatie groepen vermeld in relatie met hun workaround
type
wkx=============================================================================================
wka panl M hzske04!mfasdoc Kolom 1 - Workaround file type wke paes M hvgtw!magtw!mass31!efasdoc Kolom 2 - Project Acceptatie groep wki paid M hvgtw!idgtw!jkbgnp!jzwier Kolom 3 - Message vlag. M is ja wkp papl M hvgtw!plgtw!bybss01!fasmpl Kolom 4 - E-mail addres
=============================================================================================
Directorie structuur MFGNSI:
bin cis ctl
dfi lab odm data
ppi scr wka doc
error files
mfgnsi forc
hold junk
lmnl log misc panl receive reject report rje work xmit
Bin : Hier bevinden wat nuttige tools, zoals print- , cron-, tracer etc.
cis : Hier worden de verzonden matspec files voor een week bewaard.
ctl : Hier worden de procescontrol tools bewaard zoals, intake.ctl, distribute.ctl etc.
data : Hier worden alle file types opgeslagen die betrekking hebben op projecten en in de daarvoor bestemde sub-directorie bewaard.
doc : Hier wordt wat documentatie bewaard.
error : Hier worden de error meldingen verzameld, welke door de procescontrol tools zijn gegenereerd Zoals intake.ctl, ditribute.ctl etc.
files : Hier worden de referentie files bewaard. Zoals oe_list, mfg_list etc.
forc : Dit is de communicatie kanaal voor de zender foreclm.
hold : Hier worden projectfiles naar toegestuurd die niet zijn herkend door distribute.ctl en ook als de ppi file ontbreekt.
junk : Hier worden files naar toegestuurd die door geen enkel procescontrol tools zijn herkend.
lmnl : Dit is de communicatie kanaal voor de zender Logistic Management NL (OCM).
log : Hier worden de log files bewaard van alle processen.
misc : Hier worden alle master_screen- en project_review files verzameld.
panl : Dit is het communicatie kanaal voor de project acceptatie groep NL (mfasdoc).
receive : Hier worden alle juiste en goede projectfiles naar toegestuurd, nadat intake.ctl zijn werk heeft gedaan.
reject : Hier worden projectfiles verzameld welke zijn geweigerd door de processen. De files worden hier 30 dagen bewaard, daarna worden ze verwijderd.
report : Hier worden de dagelijkse rapporten verzameld in de vorm: report.<wkn>.<dag>.
De rapporten worden 4 weken bewaart, daarna worden ze verwijderd.
rje : De algemene directorie waar bestanden binnenkomen.
work : De gezamenlijke werk directorie waar intake.ctl en distribute.ctl gebruik van
maken.
xmit : Dit is de input kanaal voor distribute.ctl waar alle projectfiles naar toe zijn verstuurd door transfer.ctl.
Projectfiles hebben de volgende vorm: <6 karakters.extensie> m.a.w. *.* bijvoorbeeld: 123450.ppi, 123450.f20, 123450.fus etc.
Zenders en Ontvangers:
Hieronder zijn alle zenders en ontvangers gegroepeerd met hun systeem naam en login id. Verder zijn de UNIX commando’s vermeld, hoe projectfiles te versturen naar MFGNSI.
Zenders
Off. Eng. Group Manier van verzenden naar MFGNSI
Huizen (hzshg01!oehz) Vanaf hzshg01: uuto -p <projno>.* hvspg01!mfgnsi Forepark (hvsdg01!oenl) Vanaf hvsdg01: uuto -p <projno>.*hvspg01!mfgnsi
Tres Cantos (mass31!oesp) Vanaf mass31 : uuto -p <projno>.* magtw!hvgtw!hvspg01!mfgnsi Malmesbury (hzshg01!oeuk) Vanaf hzshg01: uuto -p <projno>.* hvspg01!mfgnsi
Jakarta (jksprd!oejk) Vanaf jksprd : uuto -p <projno>.* jkbgnp!idgtw!hvgtw!hvspg01!mfgnsi Bydgoszcz (bybss02!oepl) Vanaf bybss02: uuto -p <projno>.* plgtw!hvgtw!hvspg01!mfgnsi
Order Cycle Manage. Manier van verzenden naar MFGNSI
lmnl (hvspg01!xxxxx) Vanaf hvspg01: cp <projno>.* ~mfgnsi/lml; chmod 774 ~mfgnsi/lmnl/*
lmes (laluna!lmes) Vanaf laluna : uuto -p <projno>.* magtw!hvgtw!hvspg01!mfgnsi
Fabriek Manier van verzenden naar MFGNSI
panl (hzske04!mfasdoc) Vanaf hzske04: uucp <projno>.* hvspg01!~mfgnsi/panl
foreclm (hvspg01!foreclm) Vanaf hvspg01: cp <projno>.* ~mfgnsi/forc; chmod 774 ~mfgnsi/forc/*
Ontvangers
Project Accep. Group Manier van verzenden naar MFGNSI
Huizen MHZ (hzske04!fasmnl) Vanaf hzske04: uucp <*.scr.*> hvspg01!~mfgnsi/panl uucp <*.wka.*> hvspg01!~mfgnsi/panl
uucp <master_scr.mth> hvspg01!~mfgnsi/panl uucp <project_rev.mth> hvspg01!~mfgnsi/panl Tres Cantos MTC
(mas31!efasdoc)
Vanaf mass31 : uuto -p <*.sce.*> magtw!hvgtw!hvspg01!mfgnsi uuto -p <*.wke.*> magtw!hvgtw!hvspg01!mfgnsi
uuto -p <master_scr.mtc> magtw!hvgtw!hvspg01!mfgnsi uuto -p <project_rev.mtc> magtw!hvgtw!hvspg01!mfgnsi Jakarta MJK (jkbgnp!jzwier) Vanaf jkbgnp : uuto -p <*.sci.*> idgtw!hvgtw!hvspg01!mfgnsi
uuto -p <*.wki.*> idgtw!hvgtw!hvspg01!mfgnsi
uuto -p <master_scr.mjk> idgtw!hvgtw!hvspg01!mfgnsi uuto -p <project_rev.mjk> idgtw!hvgtw!hvspg01!mfgnsi Bydgoszcz MPL
(bybss02!fasmpl)
Vanaf bybss02 : uuto -p <*.scp.*> plgtw!hvgtw!hvspg01!mfgnsi uuto -p <*.wkp.*> plgtw!hvgtw!hvspg01!mfgnsi
uuto -p <master_scr.mpl> plgtw!hvgtw!hvspg01!mfgnsi uuto -p <project_rev.mpl> plgtw!hvgtw!hvspg01!mfgnsi
lml : Logistic Management NL (Huizen)
lmes : Logistic Management Spain (Tres Cantos) panl : Project Acceptance Group NL (Huizen) foreclm : Forecast Management
Cron tabel :
Crontab Tabel
Cron Proces Minuten Uren Dag v/d Mnd Maanden Dag v/d Wk
archiver.ctl 00 02 * * 1
cleaner.ctl 00 03 * * 1-6
intake.ctl 05 04-20 * * 1-6
distribute.ctl 35 05-21 * * 1-6
report.ctl 30 22 * * 1-6
reffiles.ctl 00 00 * * 1
Dag v/d Wk : 0-6 (zondag = 0)
Dag v/d Mnd : 1-31
Beschrijving van de processen:
Intake.ctl:
Intake.ctl is èèn van de hoofd processen van MFGNSI die projectfiles binnen haalt en registreert.
De volgende stappen worden doorlopen:
1. Verzamelen van alle projectfiles vanaf de uuto- en copy gebied in de $HOME/work directorie.
2. Verwijderen van alle onnodige files.
3. Verhuizen van alle project_rev.* files naar $HOME/.save.
4. Verhuizen van alle master_scr.* files naar $HOME/.save.
5. Verhuizen van alle *.sc*.* files naar $HOME/.save.
6. Verhuizen van alle *.wk*.* files naar $HOME/.save.
7. Registreren van alle ppi-files in de referentie file project_list en verhuizen naar $HOME/.work.
8. Verhuizen van al de ODM files naar $HOME/.work.
9. Verhuizen van eventuele junk projecten naar $HOME/junk.
10. Checken of er projectfiles zijn aangeboden door een niet geregistreerd systeem.
11. Registreren van alle ppi-files in $HOME/report/report.dat.
12. Registreren van alle binnen gekomen projectfiles in $HOME/log/receive.log.
13. Verhuizen van alle goede projectfiles van $HOME/.work naar $HOME/receive.
14. Registreren van alle project_rev.* in $HOME/log/receive.log en verhuis het naar $HOME/xmit.
15. Registreren van alle master_scr.* in $HOME/log/receive.log en verhuis het naar $HOME/xmit.
16. Registreren van alle *.sc*.* in $HOME/log/receive.log en verhuis het naar $HOME/xmit.
17. Registreren van alle *.wk*.* in $HOME/log/receive.log en verhuis het naar $HOME/xmit.
Schematisch is dit als volgt samen te vatten:
transfer.ctl
1). Alle files vanaf de uuto- en copy gebieden worden hier verzameld.
2) .save 7) xmit
1) work
3) .work 6) receive 8) xmit
4) reject
5) junk
2). Alle project_rev, master_scr, *sc* en *wk* worden vanaf 1) hier naar toe gestuurd.
3). Alle goede projectfiles worden hier naar toegestuurd, CIS indicator gezet.
4). De niet goede projectfiles waarvan de CIS indicator onbepaald is worden hier naar toegestuurd.
5). Alle files die de project file format niet hebben.
6). Alle goede projectfiles met CIS indicator gezet.
7). Alle files van 2) worden naar xmit area gestuurd.
8). Nadat transfer.ctl is gedraaid worden de projectfiles naar de xmit area gestuurd. Dit is het ingangs kanaal voor distribute.ctl
De volgende referentie files worden door intake.ctl gebruikt:
•
$HOME/files/oe_list
•
$HOME/files/scr_list
•
$HOME/files/ident_list
•
$HOME/files/project_list
Distribute.ctl
Distribute.ctl is èèn van de hoofd processen van MFGNSI die de projectfiles distribueert naar de ontvangers en/of naar de zenders alsmede de files in de juiste directorie structuur binnen MFGNSI rangschikken. De volgende stappen worden doorlopen:
1. Distribueren van project_rev files naar de adressen zoals vermeld in rev_list.
2. Distribueren van master_scr files naar de adressen zoals vermeld in screen_list.
3. Verhuizen van eventueel aanwezige files van $HOME/hold naar $HOME/xmit.
4. Distribueer naar de zenders aan de hand van de project_list de *.sc*.* files.
5. Distribueer naar de zenders aan de hand van de project_list de *.wk*.* files.
6. Versturen van alle ppi file naar CIS, zoals vermeld in cis_destination.
7. Testen of $HOME/.work leeg is.
8. Checken of de ppi-files geregistreerd zijn in project_list.
9. Distribueren van de projectfiles aan de hand van de CIS indicator.
10. Testen of $HOME/xmit leeg is. De eventuele bestanden verhuizen naar $HOME/junk.
11. Archiveren van de projectfiles aan de hand van archive_list.
12. Stuur een melding van de eventueel gevonden fouten naar de destination zoals vermeld in
mail_destination file.
1). Alle goede projectfiles waarvan de CIS indicators zijn geregistreerd in project_list.
2). Alle project_rev* en master_scr* files worden hier gearchiveerd.
3). Projecten van eerdere sessies die niet verwerkt konden worden, verwerken in deze sessie.
4). Alle screening files worden hier gearchiveerd.
5). Alle workaround files worden hier gearchiveerd.
6). Hier worden de projectfiles naar toegestuurd die niet geregistreerd zijn in project_list of als de bestemming niet bekent is in oe_list.
7). Hier worden de matspec gedurende 2 weken bewaard, die naar CIS zijn verstuurt.
8). Op dit punt moet $HOME/.work helemaal leeg zijn.
9). Alle projectfiles welke geregistreerd staan in project_list.
10). Hier worden alle files naar toegestuurd die niet voldoen aan de project file formaat.
11). Alle *.ppi files worden hier gearchiveerd.
12). Alle ODM files worden hier gearchiveerd (*.[df][a0-9][0-9]).
13). Alle label files worden hier gearchiveerd (*.lab, *.l21, *.fus, *.l37).
14). Alle DFI files worden hier gearchiveerd (*.pji, *.hwi, *.cbi, *.pwi, *.cnf, *.oda).
De volgende referentie files worden door distribute.ctl gebruikt:
2) misc 1) xmit
3) hold
4) data/scr 5) data/wka 6) hold 7) cis
11) data/ppi
8) .work 9) .work
12) data/odm 10) junk
13) data/lab 14) data/dfi
•
$HOME/files/oe_list
•
$HOME/files/rev_list
•
$HOME/files/mfg_list
•
$HOME/files/screen_list
•
$HOME/files/project_list
•
$HOME/files/archive_list
•
$HOME/files/cis_destination
•
$HOME/files/mail_destination
Archiver.ctl
Hiermee wordt wekelijks de log files gearchiveerd in $HOME/log en verwijderd indien ouder dan 4 weken. De volgende stappen worden doorlopen:
1. Archiveren van alle log files in weken bijv. intake_<weeknr>.
2. Opruimen van alle log files ouder dan 4 weken.
De volgende referentie files worden door archive.ctl gebruikt:
Geen
Cleaner.ctl
Cleaner.ctl ruimt alle mails- en archief directories op. Anders zou de file systeem snel vol raken.
De volgende stappen worden doorlopen:
1. Ruim alle uucp mail op.
2. Ruim alle news mail op.
3. Ruim de reject directorie op na 30 dagen.
4. Ruim de cis directorie op na een week.
5. Ruim de report directorie op na 2 weken.
6. Ruim de $HOME/data/*/* op na 1 jaar
De volgende referentie files worden door cleaner.ctl gebruikt:
•
$HOME/files/project_list
report.ctl
Report.ctl genereert een overzicht van alle ppi file die op die dag ontvangen zijn door MFGNSI. De volgende stappen worden doorlopen:
1. Genereren van het rapport m.b.v. de file in $HOME/report/report.dat.
2. Zet de report.dat file om naar report.PYPW.Z.
3. Stuur de gegenereerde rapport naar de gebruikers zoals vermeld in report_list.
De volgende referentie files worden door report.ctl gebruikt:
•
$HOME/files/report_list
Transfer.ctl
Transfer.ctl dient ervoor om intake.ctl en distribute.ctl aan elkaar te koppelen. Nu gebeurt dit automatisch. Dit kan in de toekomst uitgebreid worden door bijvoorbeeld dat deel van de ppi-file naar de manufacturing site te versturen waar het gefabriceerd moet worden i.p.v. het gehele project. Hier worden de projectfiles van $HOME/receive/* naar $HOME/xmit verhuist.
Gebruikt geen referentie files.
Bijlage Intake.ctl
1. #!/usr/lbin/ksh
2. exec 1>>$HOME/log/intake.log 2>&1 3. . /etc/profile
4. CTL=$HOME/ctl 5. FIL=$HOME/files 6. LOG=$HOME/log 7. REC=$HOME/receive 8. REJ=$HOME/reject 9. REP=$HOME/report 10. ERR=$HOME/error 11. XMT=$HOME/xmit 12. WRK=$HOME/work 13. BUF=$HOME/.work 14. SAV=$HOME/.save 15. JNK=$HOME/junk 16. NOC=$HOME/.nottocis 17. TRM=$HOME/transmissie 18. date
19. datum=`date '+%a %d-%h-%y %H:%M MET'`
20. dtm=`unidate`
21. wkn=`unidate PYPW.Z`
22. dtim=$wkn'.'`date '+%T' | cut -c1-2,4-5`
23. TIJD=`date '+%T' | cut -c1-2,4-5`
24. dmail=`cat $FIL/mail_destination`
25. cd $WRK 26. if test -s busy_flg 27. then
28. TXT=' MAYDAY MAYDAY MAYDAY !!!! workarea is NOT ready for intake.ctl !!!!' 29. echo $TXT
30. echo $TXT | mail $dmail 31. exit
32. fi
33. echo 'x' > busy_flag 34. > $ERR/error_mes
35. ###### colect files from uuto and copy area #################################
36. cd $WRK
37. cat $FIL/oe_list | while read lin 38. do
39. oeg=`echo $lin | cut -d' ' -f1`
40. via=`echo $lin | cut -d' ' -f2`
41. mes=`echo $lin | cut -d' ' -f3`
42. sys=`echo $lin | cut -d' ' -f4`
43. des=`echo $lin | cut -d' ' -f5`
44. flag=0
45. if [ $via = uuto ] 46. then
47. flag=1
48. if test -f /usr/spool/uucppublic/receive/mfgnsi/$sys/*
49. then
50. mv /usr/spool/uucppublic/receive/mfgnsi/$sys/* . 51. flag=2
52. fi 53. fi
54. if [ $via = copy ] 55. then
56. flag=1
57. if test -f $HOME/$sys/*
58. then
59. mv $HOME/$sys/* . 60. flag=2
61. fi 62. fi
63. if [ $flag = 2 ] 64. then 65. ownit * 66. chmod 744 * 67. if test -f *.Z 68. then
69. mv *.Z $SAV/.
70. cd $SAV 71. uncompress *.Z 72. for fil in * 73. do
74. if [ -f $WRK/$fil ] 75. then
76. new=`find $fil -newer $WRK/$fil -print`
77. if [ -n "$new" ] 78. then mv $fil $WRK/.
79. else rm $fil 80. fi
81. else mv $fil $WRK/.
82. fi 83. done 84. cd $WRK 85. fi
86. ###### rm unwanted files ####################################################
87. if test -f *.fpr
88. then rm *.fpr 89. fi
90. if test -f *.fas 91. then rm *.fas 92. fi
93. if test -f *.odm 94. then rm *.odm 95. fi
96. ###### mv project_rev.* to $SAV #############################################
97. if test -f project_rev.*
98. then mv project_rev.* $SAV/.
99. fi
100. ###### mv master_scr.* to $SAV ##############################################
101. if test -f master_scr.*
102. then mv master_scr.* $SAV/.
103. fi
104. ###### mv *.sc*.* to $SAV ###################################################
105. if test -f *.sc*.*
106. then mv *.sc*.* $SAV/.
107. fi
108. ###### mv *.wk*.* to $SAV ###################################################
109. if test -f *.wk*.*
110. then mv *.wk*.* $SAV/.
111. fi
112. ###### continue for ppi-file projects #######################################
113. if test -f *.ppi 114. then
115. ls *.ppi | cut -d'.' -f1 > ppilog 116. for prj in `cat ppilog`
117. do
118. cis=`cat $prj'.ppi' | grep CIS: | sed 's/.*CIS://' | sed 's/\/.*$//' | sed 's/\ .*$//'`
119. if [ -n "$cis" ] 120. then
121. read Ax Bx iss Cx < $prj.ppi
122. cat $FIL/project_list | sed "/$prj/d" > project_list 123. echo $dtm' '$prj' '$iss' '$oeg' '$cis >> project_list 124. sort -u +0.7 -0.13 project_list > $FIL/project_list 125. if [ $mes = M ]
126. then $CTL/message.ctl "$des" "$datum" "$prj.*" 0 127. fi
128. mv $prj.* $BUF/.
129. rm project_list 130. else
131. for fil in $prj.*
132. do
133. echo $dtim' '$oeg' '$fil >> $LOG/receive.log 134. done
135. $CTL/message.ctl "$des" "$datum" "$prj.*" 2 136. mv $prj.* $REJ/.
137. echo '\n Project file(s) '$prj'.* are rejected !!!!' >> $ERR/error_mes 138. fi
139. done 140. rm ppilog 141. fi
142. ###### continue for other projects ##########################################
143. if test -f *.*
144. then
145. ls *.* | cut -d'.' -f1 | sort -u > fillog 146. for prj in `cat fillog`
147. do
148. if [ $mes = M ]
149. then $CTL/message.ctl "$des" "$datum" "$prj.*" 0 150. fi
151. mv $prj.* $BUF/.
152. done 153. rm fillog 154. fi
155. ##### continue for junk projects ###########################################
156. if test -f * 157. then
158. ls | sed '/busy_flag/d' | sed '/ls_files/d' > ls_files 159. if test -s ls_files
160. then
161. echo '\n Reception of UNIDENTIFIED files !!!!' >> $ERR/error_mes 162. ls -o * | sed '/busy_flag/d' | sed '/ls_files/d' | cut -c11- >> $ERR/error_mes 163. echo ' Files are moved to '$JNK >> $ERR/error_mes
164. for fil in `cat ls_files`
165. do
166. mv $fil $JNK/.
167. done 168. fi 169. rm ls_files 170. fi 171. fi
172. ###### test outcome process is OK ###########################################
173. if [ $flag = 0 ]
174. then echo '\n UNKNOWN data collection system '$via' !!!!' >> $ERR/error_mes 175. fi
176. done
177. ###### mv prj files with cis not equal to N to $NOC #########################
178. cd $BUF 179. if [ -f *.ppi ] 180. then
181. ls *.ppi | cut -d'.' -f1 > ppitmp 182. for prj in $(cat ppitmp) 183. do
184. $(grep CIS: ${prj}.ppi)
185. cis=$(print ${x##*CIS:} | awk '{ print $1 }') 186. if [ "${#cis}" = "1" ] && [ "${cis}" != "N" ] 187. then
188. mv ${prj}.* $NOC 189. fi
190. done 191. rm ppitmp 192. fi
193. ###### prepare received ppi files records ###################################
194. cd $BUF 195. > project.rep 196. if test -f *.ppi 197. then
198. for ppi in *.ppi 199. do
200. read Ax prj iss txt < $ppi 201. txt=`echo $txt | cut -c1-40`
202. cis=`cat $ppi | grep CIS: | sed 's/.*CIS://' | sed 's/\/.*$//' | sed 's/\ .*$//'`
203. cis=`echo $cis'@@@@@@' | cut -c1-6`
204. echo ' '$TIJD' '$prj'0 '$iss' '$cis' '$txt | tr '@' ' ' >> project.rep 205. done
206. fi
207. cat project.rep >> $REP/report.dat 208. rm project.rep
209. ###### intake file-logging ##################################################
210. cd $BUF 211. if test -f * 212. then 213. for fil in * 214. do
215. prj=`echo $fil | cut -d'.' -f1`
216. own=`grep $prj $FIL/project_list | cut -c19-22`
217. if [ -z "$own" ] 218. then own='----' 219. fi
220. echo $dtim' '$own' '$fil >> $LOG/receive.log 221. # echo $fil >> $LOG/'receive.'$wkn 222. done
223. fi
224. ###### move all files to receive area #######################################
225. cd $BUF 226. if test -f * 227. then mv * $REC/.
228. fi
229. ###### project_rev file-logging #############################################
230. cd $SAV
231. if test -f project_rev.*
232. then
233. for fil in project_rev.*
234. do
235. sit=`echo $fil | cut -d'.' -f2`
236. own=`grep $sit $FIL/ident_list | cut -c5-8`
237. if [ -z "$own" ] 238. then own='????' 239. fi
240. echo $dtim' '$own' '$fil >> $LOG/receive.log
241. # echo $fil >> $LOG/'receive.'$wkn 242. mv $fil $XMT/.
243. done 244. fi
245. ###### master_scr file-logging ##############################################
246. cd $SAV
247. if test -f master_scr.*
248. then
249. for fil in master_scr.*
250. do
251. sit=`echo $fil | cut -d'.' -f2`
252. own=`grep $sit $FIL/ident_list | cut -c5-8`
253. if [ -z "$own" ] 254. then own='????' 255. fi
256. echo $dtim' '$own' '$fil >> $LOG/receive.log 257. # echo $fil >> $LOG/'receive.'$wkn 258. mv $fil $XMT/.
259. done 260. fi
261. ###### scr file-logging #####################################################
262. cd $SAV 263. if test -f *.sc*.*
264. then
265. cat $FIL/scr_list | while read lin 266. do
267. ext=`echo $lin | cut -d' ' -f1`
268. if [ -f *.$ext.* ] 269. then
270. own=`echo $lin | cut -d' ' -f2`
271. mes=`echo $lin | cut -d' ' -f3`
272. des=`echo $lin | cut -d' ' -f4`
273. if [ $mes = M ]
274. then $CTL/message.ctl "$des" "$datum" "*.$ext.*" 0 275. fi
276. for fil in *.$ext.*
277. do
278. echo $dtim' '$own' '$fil >> $LOG/receive.log 279. # echo $fil >> $LOG/'receive.'$wkn 280. mv $fil $XMT/.
281. done 282. fi 283. done 284. fi
285. ###### wka file-logging #####################################################
286. cd $SAV 287. if test -f *.wk*.*
288. then
289. cat $FIL/wka_list | while read lin 290. do
291. ext=`echo $lin | cut -d' ' -f1`
292. if [ -f *.$ext.* ] 293. then
294. own=`echo $lin | cut -d' ' -f2`
295. mes=`echo $lin | cut -d' ' -f3`
296. des=`echo $lin | cut -d' ' -f4`
297. if [ $mes = M ]
298. then $CTL/message.ctl "$des" "$datum" "*.$ext.*" 0 299. fi
300. for fil in *.$ext.*
301. do
302. echo $dtim' '$own' '$fil >> $LOG/receive.log 303. # echo $fil >> $LOG/'receive.'$wkn 304. mv $fil $XMT/.
305. done 306. fi 307. done 308. fi
309. ###### finalise intake procedure ############################################
310. cd $WRK
311. if test -s $ERR/error_mes
312. then cat $ERR/error_mes | mail $dmail 313. cat $ERR/error_mes >> $ERR/'errors.'$wkn 314. fi
315. rm $ERR/error_mes 316. rm busy_flag 317. cd $HOME 318. $CTL/transfer.ctl 319. date
320. echo '######################## end of intake.ctl ############################'
Bijlage Distribute.ctl
1. #!/usr/lbin/ksh
2. exec 1>>$HOME/log/distribute.log 2>&1 3. . /etc/profile
4. LOG=$HOME/log 5. FIL=$HOME/files 6. CTL=$HOME/ctl 7. REJ=$HOME/reject 8. ERR=$HOME/error 9. JNK=$HOME/junk 10. HLD=$HOME/hold 11. CIS=$HOME/cis 12. WRK=$HOME/work 13. BUF=$HOME/.work 14. XMT=$HOME/xmit 15. SCR=$HOME/data/scr 16. WKA=$HOME/data/wka 17. MIS=$HOME/misc 18. NOC=$HOME/.nottocis 19. date
20. datum=`date '+%a %d-%h-%y %H:%M MET'`
21. dtm=`unidate`
22. wkn=`unidate PYPW.Z`
23. tim=`date '+%T' | cut -c1-2,4-5`
24. dtim=$wkn'.'$tim
25. TIJD=`date '+%T' | cut -c1-2,4-5`
26. cdate=`unidate | cut -c3-` # Aanvraag Iris Notenboom 31 jan 1995 27. cisdt="${cdate}.${tim}" # Aanvraag Iris Notenboom 31 jan 1995 28. dmail=`cat $FIL/mail_destination`
29. cd $WRK 30. if test -s busy_flg 31. then
32. TXT=' MAYDAY MAYDAY MAYDAY !!!! workarea is NOT ready for intake.ctl !!!!' 33. echo $TXT
34. echo $TXT | mail $dmail 35. exit
36. fi
37. echo 'x' > busy_flag 38. > $ERR/error_mes
39. ########## distribute project_rev files #########################
40. cd $XMT
41. if test -f project_rev.*
42. then
43. for rev in project_rev.*
44. do
45. cat $FIL/rev_list | while read des 46. do
47. echo $dtim' '$rev' '$des >> $LOG/xmit.log 48. uuto -p $XMT/$rev $des
49. # echo '\nuuto -p '$rev' '$des 50. done
51. # echo $rev >> $LOG/'xmit.'$wkn 52. mv $rev $MIS/.
53. done 54. fi
55. ########## distribute master_scr files ##########################
56. cd $XMT
57. if test -f master_scr.*
58. then
59. for scr in master_scr.*
60. do
61. cat $FIL/screen_list | while read des 62. do
63. echo $dtim' '$scr' '$des >> $LOG/xmit.log 64. uuto -p $XMT/$scr $des
65. # echo '\nuuto -p '$scr' '$des 66. done
67. # echo $scr >> $LOG/'xmit.'$wkn 68. mv $scr $MIS/.
69. done 70. fi
71. ########## restore files from hold ##############################
72. cd $HLD 73. if test -f * 74. then mv * $XMT/.
75. fi
76. ########## distribute screen files ##############################
77. cd $XMT 78. if test -f *.sc*.*
79. then
80. for scr in *.sc*.*
81. do
82. prj=`echo $scr | cut -d'.' -f1`
83. lin=`grep $prj $FIL/project_list`
84. if [ -n "$lin" ] 85. then
86. oeg=`echo $lin | cut -d' ' -f4`
87. mes=`grep $oeg $FIL/oe_list | cut -c11-11`
88. des=`grep $oeg $FIL/oe_list | cut -c21-`
89. if [ -n "$des" ] 90. then
91. cat $scr >> $SCR/$prj'.SCR' 92. chmod 744 $SCR/$prj'.SCR'
93. echo $dtim' '$scr' '$des >> $LOG/xmit.log 94. # echo $scr >> $LOG/'xmit.'$wkn 95. uuto -p $XMT/$scr $des
96. # echo '\nuuto -p '$scr' '$des 97. if [ $mes = M ]
98. then $CTL/message.ctl "$des" "$datum" "$scr" 1 99. fi
100. rm $scr 101. else
102. echo '\n UNKNOWN Off Eng group for '$scr' !!!!' >> $ERR/error_mes 103. echo ' File is moved to '$HLD'/.' >> $ERR/error_mes
104. mv $scr $HLD/.
105. fi 106. else
107. echo '\n UNKNOWN project owner for '$scr' !!!!' >> $ERR/error_mes 108. echo ' File is moved to '$HLD'/.' >> $ERR/error_mes
109. mv $scr $HLD/.
110. fi 111. done 112. fi
113. ########## distribute workaround files ##########################
114. cd $XMT 115. if test -f *.wk*.*
116. then
117. for wka in *.wk*.*
118. do
119. prj=`echo $wka | cut -d'.' -f1`
120. lin=`grep $prj $FIL/project_list`
121. if [ -n "$lin" ] 122. then
123. oeg=`echo $lin | cut -d' ' -f4`
124. mes=`grep $oeg $FIL/oe_list | cut -c11-11`
125. des=`grep $oeg $FIL/oe_list | cut -c21-`
126. if [ -n "$des" ] 127. then
128. cat $wka >> $WKA/$prj'.WKA' 129. chmod 744 $WKA/$prj'.WKA'
130. echo $dtim' '$wka' '$des >> $LOG/xmit.log 131. # echo $wka >> $LOG/'xmit.'$wkn 132. uuto -p $XMT/$wka $des
133. # echo '\nuuto -p '$wka' '$des 134. if [ $mes = M ]
135. then $CTL/message.ctl "$des" "$datum" "$wka" 1 136. fi
137. rm $wka 138. else
139. echo '\n UNKNOWN Off Eng group for '$wka' !!!!' >> $ERR/error_mes 140. echo ' File is moved to '$HLD'/.' >> $ERR/error_mes
141. mv $wka $HLD/.
142. fi 143. else
144. echo '\n UNKNOWN project owner for '$wka' !!!!' >> $ERR/error_mes 145. echo ' File is moved to '$HLD'/.' >> $ERR/error_mes
146. mv $wka $HLD/.
147. fi 148. done 149. fi
150. ########## send ppi_matspec_nl to cbinter #######################
151. cd $XMT
152. if [ -s $FIL/cis_destination ] 153. then
154. dcis=`cat $FIL/cis_destination`
155. > ppi_matspec_nl 156. if test -f *.ppi 157. then
158. for ppi in *.ppi 159. do
160. cat $ppi >> ppi_matspec_nl 161. done
162. fi
163. if [ -s ppi_matspec_nl ] 164. then
165. uuto -p $XMT/ppi_matspec_nl $dcis
166. # uuto -p $XMT/ppi_matspec_nl hvssa01!wwillem
167. # uuto -p $XMT/ppi_matspec_nl nlintcb!cbinter #Op aanwezing Amjo hvlpa!acinter veranderen naar deze 168. echo 'uuto -p '$XMT'/ppi_matspec_nl '$dcis
169. # echo 'uuto -p '$XMT'/ppi_matspec_nl 'nlintcb!cbinter #Op aanwezing Amjo hvlpa!acinter veranderen naar deze
170. cp ppi_matspec_nl $CIS/'matspec_'$wkn'.'$tim 171. fi
172. rm ppi_matspec_nl 173. fi
174. ########## test work area is empty ##############################
175. cd $BUF 176. if test -f * 177. then
178. echo '\nREMAINING files on '$BUF' !!!!\n' >> $ERR/error_mes 179. ls -o * >> $ERR/error_mes
180. echo '\nFiles are DELETED.' >> $ERR/error_mes 181. rm $BUF/*
182. fi
183. ########## REPORT FILES FOR NOT CIS=N ###########################
184. cd $NOC
185. MADA=$(unidate MMDD -2) 186. > projnoc.rep
187. if test -f *.ppi 188. then
189. for ppi in *.ppi 190. do
191. read Ax prj iss txt < $ppi
192. txt=`echo $txt | cut -c1-40`
193. cis=`cat $ppi | grep CIS: | sed 's/.*CIS://' | sed 's/\/.*$//' | sed 's/\ .*$//'`
194. cis=`echo $cis'@@@@@@' | cut -c1-6`
195. echo ' '$TIJD' '$prj'0 '$iss' '$cis' '$txt '<---' | tr '@' ' ' >> projnoc.rep 196. touch ${MADA}0000 ${prj}*.*
197. mv ${prj}*.* $XMT/.
198. done 199. fi
200. cat projnoc.rep >> $REP/report.dat 201. rm projnoc.rep
202. ########## check ppi-files new CIS: string ######################
203. cd $XMT 204. if test -f *.ppi 205. then
206. ls *.ppi | cut -d'.' -f1 > ppilog 207. for prj in `cat ppilog`
208. do
209. cis=`cat $prj'.ppi' | grep CIS: | sed 's/.*CIS://' | sed 's/\/.*$//' | sed 's/\ .*$//'`
210. if [ -n "$cis" ] 211. then
212. ocis=`grep $prj $FIL/project_list | cut -c24-`
213. if [ -z "$ocis" ] 214. then
215. ocis=$cis 216. oeg='panl'
217. read Ax Bx iss Cx < $prj.ppi 218. cp $FIL/project_list project_list
219. echo $dtm' '$prj' '$iss' '$oeg' '$cis >> project_list 220. sort -u +0.7 -0.13 project_list > $FIL/project_list
221. echo '\nNIEUW PROJECT GEREGISTREERD voor '$prj' !!!! '$iss' '$oeg' '$cis 222. rm project_list
223. fi
224. if [ $cis != $ocis ] 225. then
226. oeg=`grep $prj $FIL/project_list | cut -c19-22`
227. read Ax Bx iss Cx < $prj.ppi
228. cat $FIL/project_list | sed "/$prj/d" > project_list 229. echo $dtm' '$prj' '$iss' '$oeg' '$cis >> project_list 230. sort -u +0.7 -0.13 project_list > $FIL/project_list
231. echo '\nNIEUWE CIS: STRING GEREGISTREERD voor '$prj' !!!! '$ocis' ===> '$cis 232. rm project_list
233. fi 234. else
235. echo '\n INVALID CIS: string for '$prj'.ppi !!!!' >> $ERR/error_mes 236. fi
237. done 238. rm ppilog 239. fi
240. ########## distribute project data ##############################
241. cd $XMT 242. if test -f *.*
243. then
244. ls *.* | cut -d'.' -f1 | sort -u > project_log 245. for prj in `cat project_log`
246. do
247. cis=`grep $prj $FIL/project_list | cut -c24-`
248. if [ -n "$cis" ] 249. then
250. # compress $prj.*
251. len=`echo $cis | wc -c`
252. len=`expr $len - 1`
253. qty='@@@@@@'`ls $prj.* | wc -l`'x' 254. num=`echo $qty | wc -c`
255. num=`expr $num - 5 ` 256. qty=`echo $qty | cut -c${num}-`
257. cnt=1
258. while [ $cnt -le $len ] 259. do
260. mfg=`echo ${cis} | cut -c${cnt}`
261. des=`grep '<'$mfg'>' $FIL/mfg_list | cut -c7-`
262. if [ -n "$des" ] 263. then
264. echo $dtim' '$prj'.* '$qty' '$des | tr '@' ' ' >> $LOG/xmit.log 265. uuto -p $XMT/$prj.* $des
266. # echo '\nuuto -p '$prj'.* to '$des 267. $CTL/message.ctl "$des" "$datum" "$prj.*" 1 268. else
269. echo '\n '$FIL'/mfg_list INVALID CIS:'$mfg' destination for '$prj' !!!!' >> $ERR/error_mes 270. fi
271. cnt=`expr $cnt + 1`
272. done
273. # echo $prj'.*' >> $LOG/'xmit.'$wkn 274. mv $prj.* $BUF/.
275. else
276. echo '\n '$FIL'/project_list MISSING projno for '$prj' !!!!' >> $ERR/error_mes 277. echo 'File(s) is(are) moved to '$HLD'/.' >> $ERR/error_mes
278. mv $prj.* $HLD/.
279. fi 280. done 281. rm project_log 282. fi
283. ########## test xmit area is empty ##############################
284. cd $XMT 285. if test -f * 286. then
287. echo '\nUNIDENTIFIED files on '$XMT' !!!!\n' >> $ERR/error_mes 288. ls -o * >> $ERR/error_mes
289. echo '\nFiles are moved to '$JNK >> $ERR/error_mes 290. mv $XMT/* $JNK/.
291. fi
292. ########## archive projectfiles ################################
293. cd $BUF
294. if test -f * 295. then
296. cat $FIL/archive_list | while read lin 297. do
298. ext=`echo $lin | cut -d' ' -f1`
299. dir=`echo $lin | cut -d' ' -f2`
300. if test -f *.$ext
301. then mv *.$ext $HOME/$dir/.
302. fi 303. done 304. if test -f *
305. then mv * $HOME/data/odm/.
306. fi 307. fi
308. ########## finalise distribute procedure ########################
309. cd $WRK
310. if test -s $ERR/error_mes
311. then cat $ERR/error_mes | mail $dmail 312. cat $ERR/error_mes >> $ERR/'errors.'$wkn 313. fi
314. rm $ERR/error_mes 315. rm busy_flag 316. cd $HOME 317. date
318. ################# Projecten van rvr t.b.v. SIS #######################
319. cd $HOME/rvr 320. if test -f *.ppi 321. then
322. ls -log > rvr.log
323. mv *.ppi $HOME/data/ppi/
324. echo "--- Received at $dtim ---" >> $HOME/log/rvr.log 325. cat rvr.log >> $HOME/log/rvr.log
326. rm rvr.log 327. fi
328. echo '#################### end of distribute.ctl ########################'
Bijlage Report.ctl
1. #!/usr/lbin/ksh
2. exec 1>>$HOME/log/report.log 2>&1 3. . /etc/profile
4. FIL=$HOME/files 5. REP=$HOME/report 6. date
7. cd $REP
8. wkn=`unidate PYPW.Z`
9. dtm=`date '+%d-%h-%y/%H:%M'`
10. ####### generate report_mes #############################################
11. > report_mes
12. echo ' ==============================================================================' >>
report_mes
13. echo ' Week: '$wkn' Date: '$dtm >> report_mes 14. echo ' ---' >> report_mes 15. if test -s report.dat
16. then
17. echo '\n Review of PPI-files received today' >> report_mes 18. echo ' ---\n\n' >> report_mes 19. echo ' Time Projno Iss Mfg Project description\n' >> report_mes 20. sort +0.9 -0.15 report.dat | tr '@' ' ' >> report_mes
21. else
22. echo '\n NO PPI-files were received today' >> report_mes 23. echo ' ---' >> report_mes
24. fi
25. echo '\n\n ---' >> report_mes 26. echo ' Manufacturing Huizen - S. Muradin - Tel +31 35 87 5256' >> report_mes
27. echo ' ==============================================================================' >>
report_mes 28. if test -f report.dat 29. then rm report.dat 30. fi
31. ####### save report_mes #################################################
32. mv report_mes report.$wkn 33. chmod 744 report.$wkn
34. ####### send report_mes to users ########################################
35. echo 'uuto -p report.'$wkn 36. for des in `cat $FIL/report_list`
37. do
38. uuto -p $REP/report.$wkn $des 39. # echo 'uuto -p report.'$wkn' '$des 40. done
41. uuto -p $HOME/files/project_list hvspg01!rvrossum 42. uuto -p $HOME/files/project_list hzske04!rvrossum 43. cd $HOME
44. date
45. echo '######################## end of report.ctl ############################'
Bijlage Cleaner.ctl
1. #!/usr/lbin/ksh
2. exec 1>>$HOME/log/cleaner.log 2>&1 3. . /etc/profile
4. CIS=$HOME/cis 5. LOG=$HOME/log 6. DAT=$HOME/data 7. FIL=$HOME/files 8. REJ=$HOME/reject 9. REP=$HOME/report 10. date
11. ############ clear uucp mail #######################################
12. #/appl2/ptop/all/cmd/mailx << endmail 13. #s *ucp uucp_mail
14. #q 15. #endmail 16. #if [ -f uucp_mail ] 17. # then
18. # rm uucp_mail 19. #fi
20. ############ clear news mail #######################################
21. news > news.log 22. if [ -f news.log ] 23. then rm news.log 24. fi
25. ############ clean reject-directory ################################
26. cd $REJ 27. if test -f * 28. then
29. find * -mtime +30 -print > dellog 30. if test -s dellog
31. then 32. cat dellog
33. for fil in `cat dellog`
34. do 35. rm $fil 36. done 37. fi 38. rm dellog 39. fi
40. ############ clean cis-directory ###################################
41. cd $CIS 42. if test -f * 43. then
44. find * -mtime +6 -print > dellog 45. if test -s dellog
46. then 47. cat dellog
48. for fil in `cat dellog`
49. do 50. rm $fil 51. done 52. fi 53. rm dellog 54. fi
55. ############ clean report-directory ################################
56. cd $REP 57. if test -f * 58. then
59. find * -mtime +28 -print > dellog 60. if test -s dellog
61. then 62. cat dellog
63. for fil in `cat dellog`
64. do 65. rm $fil 66. done 67. fi 68. rm dellog 69. fi
70. ############ clean data-directory ##################################
71. cd $HOME
72. #monday=`unidate Z`
73. #if [ $monday -eq 1 ] 74. # then
75. # dtm=`unidate -366 YYMMDD`
76. # > project_list 77. # > delete_list
78. # cat $FIL/project_list | while read lin 79. # do
80. # dat=`echo $lin | cut -d' ' -f1`
81. # prj=`echo $lin | cut -d' ' -f2`
82. # if [ $dat -ge $dtm ]
83. # then echo $lin >> project_list 84. # else
85. # if [ -f $DAT/*/$prj* ] 86. # then
87. # rm $DAT/*/$prj*
88. # fi
89. # echo $lin >> delete_list 90. # fi
91. # done
92. # if [ -s delete_list ] 93. # then
94. # echo '\n Projects deteleted this run:\n' 95. # cat delete_list
96. # fi
97. # rm delete_list 98. # chmod 740 project_list 99. # mv project_list $FIL/.
100. #fi
101. #cd $HOME 102. date
103. echo '####################### end of cleaner.ctl ###########################'
Bijlage Archive.ctl
1. #!/usr/lbin/ksh
2. exec 1>$HOME/log/archiver.log 2>&1 3. . /etc/profile
4. LOG=$HOME/log 5. date
6. wkn=`unidate -2 PYPW`
7. ###### archive log files ###########################################
8. cd $LOG
9. mv intake.log intake_$wkn 10. mv distribute.log distribute_$wkn 11. mv receive.log receive_$wkn 12. mv xmit.log xmit_$wkn 13. mv report.log report_$wkn
14. ###### clean log-directory #########################################
15. cd $LOG 16. if test -f * 17. then
18. find * -mtime +28 -print > dellog 19. if test -s dellog
20. then 21. cat dellog
22. for fil in `cat dellog`
23. do 24. rm $fil 25. done 26. fi 27. rm dellog 28. fi
29. cd $HOME 30. date
31. echo '###################### end of archiver.ctl ##########################'
Bijlage Message.ctl
1. #message sending subroutine 2. if [ $4 -eq 0 ]
3. then
4. echo '\n Confirmation of RECEPTION\n ---' > ._xmessagx_.
5. des='From:' 6. else 7. if [ $4 -eq 1 ] 8. then
9. echo '\n Announcement of TRANSMISSION\n ---' > ._xmessagx_.
10. des='To:@@' 11. else
12. echo '\n Project Data is REJECTED\n ---' > ._xmessagx_.
13. des='To:@@' 14. fi
15. fi
16. echo ' '$des' '$1'\n Date: '$2'\n' | tr '@' ' ' >> ._xmessagx_.
17. ls -o $3 | cut -c23-31,45- >> ._xmessagx_.
18. mail $1 < ._xmessagx_.
19. #echo '\n mailed to '$1':' 20. #cat ._xmessagx_.
21. rm ._xmessagx_.