The UNIX and Linux Forums  
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.

Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här.

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
Generic Shell Script till Arkiv en fil mak1600 Shell-programmering och Skript 8 07-26-2008 09:51
skrift purge JP003 Shell-programmering och Skript 1 07-11-2008 07:42
Filarkiv Script KeesH Shell-programmering och Skript 10 06-09-2008 12:11
göra ett arkiv script jimmyc Shell-programmering och Skript 1 09-15-2007 05:02
Läs från fil sedan purge eller arkiv. kayarsenal Shell-programmering och Skript 15 08-10-2006 09:24

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Sök i denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 10-13-2008
regnumber regnumber is offline
Registered User
  
 

Join Date: oktober 2008
Inlägg: 9
shell script som arkivhanteringen purge

Jag skriver ett shell script för Arkiv Dränera för tabell med rader <1 år. The shell script måste extrahera rader från bordet och skriva sådana som utvunnits rader till en textfil. Sedan från textfilen kommer varje rader läsas och raderas med hjälp av Radera sökning en efter en. Fälten kommer att definieras med hjälp av position.

För t ex. ZB_RCVBL_TRACKER består av fälten enligt följande.
PCN, ACCNO, TRANCD, belopp, LOB_TIMESTAMP
Efter rader utvinns och skrivna i en textfil. Jag måste få fråga PCN, ACCNO, TRANCD, LOB_TIMESTAMP från textfilen och låta dessa värden till frågan

DELETE FROM ZB_RCVBL_TRACKER där PKN \u003d? och ACCNO \u003d? och TRANCD \u003d? och LOB_TIMESTAMP \u003d?

Om SQLCODE är 0, kan jag fortsätta furthur.

Kan någon hjälpa mig att uppnå denna uppgift.

Kod:
==================================
#! /bin/ksh
############################
#   AFI Monitor Script
############################

. /db2/uszlad48/sqllib/db2profile
export mondir=/home/bmwdev1/script/krishna
export monlog=$mondir/Error_Report_`date +%Y%m%d`.log

export bakdir=/home/bmwdev1/script/krishna/bkup
export baklog=$bakdir/Error_Report_`date +%Y%m%d`_bkup.log

# connect to DB
#echo "connect to database r2pdev" >>$monlog

# extract the eligible rows from the table
db2 "SELECT * FROM ZB_RCVBL_TRACKER WHERE TIMESTAMP_UPDATED < (SYSDATE – 1 YEAR)WITH UR"  >> $monlog
echo "After SQL execution" >> $monlog
==================================


Krishnakanth
  #2 (permalänk)  
Old 10-13-2008
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programmerare, författare
  
 

Join Date: mars 2007
Ort: Toronto, Kanada
Inlägg: 2361

Kod:
while read PCN ACCNO TRANCD AMOUNT LOB_TIMESTAMP
do

   db2 "DELETE FROM ZB_RCVBL_TRACKER where PCN = $PCN and \
       ACCNO=$ACCNO and TRANCD = $TRANCD and LOB_TIMESTAMP = $LOB_TIMESTAMP" || break

done < "$FILE"
  #3 (permalänk)  
Old 10-14-2008
regnumber regnumber is offline
Registered User
  
 

Join Date: oktober 2008
Inlägg: 9
Tack för ditt svar Johnson.

Här problemet är hur man läser PCN, ACCNO, TRANCD, belopp, LOB_TIMESTAMP från en textfil. Uppgifterna kommer att vara följande i textfilen.

Citat:

9564587 111222333 AD 563,85 2008 -10-01-00.00.00.000000
9564588 111222334 AE 567,85 2008 -10-02-00.00.00.000000
9564589 111222335 AF 963,85 2008 -10-03-00.00.00.000000
9564590 111222336 AH 566,85 2008 -10-04-00.00.00.000000
De data som finns i en textfil är rådata. Längden på varje fält är fast längd.
Är det möjligt att göra som följande.
PCN är 7 byte från 1 till 7
accno är 9 byte från 9 till 17
tran_cd är 2 byte från 19 till 20
Beloppet är 8 byte från 22 till 29
LOB_TIMESTAMP är 26 byte från 30 till 55

kan vi definiera så här och kommer att skicka data. Om så är fallet hur du definierar i shell script?

Kunde du behaga låta mig veta hur man ska gå furthur.

Krishnakanth
  #4 (permalänk)  
Old 10-14-2008
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programmerare, författare
  
 

Join Date: mars 2007
Ort: Toronto, Kanada
Inlägg: 2361

Vad är fel med skriptet jag postat?
  #5 (permalänk)  
Old 10-14-2008
regnumber regnumber is offline
Registered User
  
 

Join Date: oktober 2008
Inlägg: 9
Johnson,

Skriptet som du har gett works fine. Men i mitt fall är det en annan.

Jag har gett prov vad jag arbetar nu. Låt mig ge dig ett exakt det jag arbetar för närvarande.

Följande data i en textfil. (DB2 "SELECT TRACKING_NUM, TRACKING_NUM_SUFFIX, ERROR_SRC_CD, MSG_NUM, MSG_ID, MSG_TYP, MSG_TEXT, TIMESTAMP_UPDATED, USER_UPDATED FRÅN ZB_RCBL_ERROR_MSG_MIG MED UR">> $ monlog1)

Citat:
12345 10 E-123 - - - Hello - --
12345 10 E - - - Hello - --
12345 10 A - - - Hello - --
12345 10 T - - - Hello - --
1234 15 - - - - ERROR - --
123456 10 - - - - FEL - --
123456 10 - - - - FEL - --
255678 200 - - - - ERRORCORRECTION - --
255678 200 - - - - ERRORCORRECTION - --
1111111111 10 - - - - - - --
7890 10 errormsg 90 78 E FEL 2008-08-11-06.53.12.924263 R2P
12345 11 eadf j123 10 E detta är emsg 2008-08-11-14.05.11.745265 --
12345 11 eadf j123 10 E detta är emsg 2008-08-12-09.39.38.886385 --
12345 11 eadf j123 10 E detta är emsg 2008-08-12-09.42.21.223536 --
12345 11 eadf j123 10 E detta är emsg 2008-08-12-09.48.57.911702 --
12345 11 eadf j123 10 E detta är emsg 2008-08-12-09.49.59.296360 --
22345 11 error j123 10 E detta är en emsg 2008-08-12-10.08.33.843147 hello
255679 25 - - - - - - --
BEYJYWG83L 0 R 902 - B System exception occurred, se BMW_EXCEPTION_LOG bord 2008-09-10-00.41.32.787352
BEYJYXMT4K 0 R 902 - B System exception occurred, se BMW_EXCEPTION_LOG bord 2008-09-11-19.01.23.878551
BEYEHF93QY 0 R 003 B Inga meddelandet finns i ZBV_BILL_REJCT_RSN tabell 2008-08-28-16.31.01.881717
BEYJYTT8FQ 0 R 013 B Ogiltig transaktionskod 2008-09-04-17.39.04.005237
BEYJYTT8FQ 0 R 016 B Ogiltig Fee Code 2008-09-04-17.39.04.008137
BEYJYTT8FQ 0 R 016 B Ogiltig Fee Code 2008-09-04-17.39.04.011939
BEYJYTT8FQ 0 R 016 B Ogiltig Fee Code 2008-09-04-17.39.04.012851
BEYJY2SZVL 0 R 003 B Policy / Contract kontonummer väntar i ZB_MASTER_DATA_LOG 2008-09-16-09.22.29.120192
BEYJY2SXNG 0 R 003 B Policy / Contract kontonummer väntar i ZB_MASTER_DATA_LOG 2008-09-16-09.19.33.868772
BEYJY2SMS3 0 R 003 B Policy / Contract kontonummer väntar i ZB_MASTER_DATA_LOG 2008-09-16-08.53.07.872138
BEYJY2SMJD 0 R 003 B Policy / Contract kontonummer väntar i ZB_MASTER_DATA_LOG 2008-09-16-08.50.17.307262
BEYJY2EG2K 0 R 003 B Policy / Contract kontonummer väntar i ZB_MASTER_DATA_LOG 2008-09-17-15.56.03.418917
002211556 0 R 001 B Identiska Fordran transaktion har redan postat för denna politik. 2008-09-19-01.41.01.454234
002211556 0 R 002 B En eller flera uncleared errored fordringar för politiken 2008-09-23-01.36.07.982876
002211556 0 R 002 B En eller flera uncleared errored fordringar för politiken 2008-09-23-01.38.44.515880
002211556 0 R 001 B Identiska Fordran transaktion har redan postat för denna politik. 2008-09-23-16.32.20.565704
6634583444 0 R 902 - J System exception occurred, se BMW_EXCEPTION_LOG bord 2008-09-15-12.44.09.383234

Om jag ge följande skript.

Citat:
while read TRACKING_NUM TRACKING_NUM_SUFFIX ERROR_SRC_CD MSG_NUM MSG_ID MSG_TYP MSG_TEXT TIMESTAMP_UPDATED USER_UPDATED
göra

DB2 "SELECT TRACKING_NUM, TRACKING_NUM_SUFFIX, ERROR_SRC_CD, MSG_NUM, MSG_ID, MSG_TYP, MSG_TEXT, TIMESTAMP_UPDATED, USER_UPDATED FRÃ…N ZB_RCBL_ERROR_MSG_MIG VAR TRACKING_NUM \u003d $ TRACKING_NUM OCH TRACKING_NUM_SUFFIX \u003d $ TRACKING_NUM_SUFFIX OCH TIMESTAMP_UPDATED \u003d $ TIMESTAMP_UPDATED MED UR">> $ monlog2

gjort < "$ FILE"
Skriptet som du har gett fungerar inte i detta fall. Bacause värdet på fältet MSG_TEXT är som "identisk Receivable transaktion har redan postat för denna politik." 73 bytes lång.

Låt mig gärna veta hur man ska gå furthur.

Krishnakanth
  #6 (permalänk)  
Old 10-14-2008
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programmerare, författare
  
 

Join Date: mars 2007
Ort: Toronto, Kanada
Inlägg: 2361

Vänligen lägga kod och data prov inom [code] taggar, inte [quote] tags.

Testa skriptet genom att upprepa kommandot istället för att köra det.
Kod:
echo db2 "SELECT TRACKING_NUM, TRACKING_NUM_SUFFIX, ERROR_SRC_CD, MSG_NUM, MSG_ID, MSG_TYP, MSG_TEXT, TIMESTAMP_UPDATED, USER_UPDATED FROM ZB_RCBL_ERROR_MSG_MIG WHERE TRACKING_NUM = $TRACKING_NUM AND TRACKING_NUM_SUFFIX = $TRACKING_NUM_SUFFIX AND TIMESTAMP_UPDATED = $TIMESTAMP_UPDATED WITH UR"
Kontrollera att den linje som du har byggt är korrekt innan du avlägsnar echo.
Closed Thread

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är På
Smilies är På
[IMG] kod PÃ¥
HTML-koden är Av
Trackback är På
Pingbacks är På
Refbacks är På




Alla tider är GMT -4. Klockan är nu 10:50.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0