Bash script csv bestand.

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • belrpr
  • Registratie: Februari 2010
  • Laatst online: 10:30
Voor een bash script ben ik op zoek om een csv bestand te maken met volgend info:
DATUM Status

Het script loopt normaal 1 x per dag.
Bij problemen kan dit meermaals per dag lopen. Hoe kan er in bash worden voorkomen dat een bepaalde datum meermalen in het bestand voorkomt?

Alvast bedankt voor alle tips.

Acties:
  • 0 Henk 'm!

  • Rainmaker
  • Registratie: Augustus 2000
  • Laatst online: 14-07-2024

Rainmaker

RHCDS

Dat kan "bash" niet.

Dit zul je in je script moeten opvangen.

De input en gewenste output ontgaan me hier volledig. Dit klinkt bijna als een huiswerkopdracht(?).

Waar komt die info vandaan, wat wil je parsen, wat moet eruit komen?

Kun je het script niet gewoon aanpassen dat het maximaal 1 keer per dag loopt?

We are pentium of borg. Division is futile. You will be approximated.


Acties:
  • 0 Henk 'm!

  • daft_dutch
  • Registratie: December 2003
  • Laatst online: 08-09 21:46

daft_dutch

>.< >.< >.< >.<

nou als je een file maakt met datum tijd.
en dan in de volg orde eerste datum eerst. laatste datum als laatst
kan je een tail -n 1 op die file uit voeren en als die datum ouder is dan de huidige datum append de data aan de file anders doe niets.

btw klinkt als een svn log voor process-mining. moet er ook niet een instantie ID bij. of is het altijd die datum actie log altijd van de zelfde instantie?

>.< >.< >.< >.<


Acties:
  • 0 Henk 'm!

  • belrpr
  • Registratie: Februari 2010
  • Laatst online: 10:30
Als jonge 30er is huiswerk al lang verleden tijd.
Het is een back-up script op een linux server. De monitoringstool kan csv bestanden uitlezen en de statussen hiervan weergeven. De tail -n 1 is inderdaad een goede oplossing.

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 30-09 22:30

Hero of Time

Moderator LNX

There is only one Legend

belrpr schreef op maandag 07 december 2015 @ 14:22:
Als jonge 30er is huiswerk al lang verleden tijd.
Ooit van doorstuderen gehoord, of omscholen? Avondschool? Genoeg mogelijkheden dat je eind 20 begin 30 nog steeds huiswerk hebt hoor, dus zo gek is het niet dat men hier aan een schoolopdracht denkt. De relatieve eenvoud gaf mij ook die gedachte.
Het is een back-up script op een linux server. De monitoringstool kan csv bestanden uitlezen en de statussen hiervan weergeven. De tail -n 1 is inderdaad een goede oplossing.
Backups lopen maar 1x per dag en kunnen uitlopen naar een volgende dag. Waarom moet je dan zorgen dat het maar 1x per dag wordt genoteerd? Stel, je backup start je om 22:00 en duurt de ene keer 2:03 uur en de andere keer 1:40 uur. Dan heb je 2x dezelfde datum als eindtijd van de backup.

Wat heb je nog meer draaien dat je maar 1 entry per dag mag hebben? Wat doe je met de resultaten? Welke notatie heb je voor datum, is dat puur DDMMJJ of heb jer ook nog HH:MM bij? Je bent wel erg summier met informatie. Kom dus met meer, anders heeft het niet veel zin om dit verder te bespreken.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • johnkeates
  • Registratie: Februari 2008
  • Laatst online: 04-07 16:30
Ik zou er dan sowieso nog een flock voor hangen.

  • Rainmaker
  • Registratie: Augustus 2000
  • Laatst online: 14-07-2024

Rainmaker

RHCDS

belrpr schreef op maandag 07 december 2015 @ 14:22:
Het is een back-up script op een linux server. De monitoringstool kan csv bestanden uitlezen en de statussen hiervan weergeven.
Aha, dus het is om door een script uitgelezen te worden?

Waarom overschrijf je dan niet gewoon iedere keer het bestand? Voor een monitoring ben je toch alleen geinteresseert in de status van de laatste poging?

Als je de pogingen van meerdere dagen wil houden, schrijf het dan weg naar logfiles in het format <timestamp>.csv.

Daarna zeg je tegen in het monitoring script te kijken naar de nieuwste file en / of degene met het hoogste cijfer.

We are pentium of borg. Division is futile. You will be approximated.


Acties:
  • 0 Henk 'm!

  • Thc_Nbl
  • Registratie: Juli 2001
  • Laatst online: 21-05 22:24
hier een functie

Bash:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
check_backup_file () {
    if [ ${KEEP_DAYS} = "yes" ] ; then
        BACKUPDATE=$(${CMD_DATE} +%Y-%m-%d)     # ISO 8601 standard date.
        ${DEBUG} "Message: checking for previous backups of this day : $d"
        # determin last use counter nr
        COUNTER=$(ls ${STOREDIR} | ${CMD_GREP} ${BACKUPDATE} | ${CMD_SORT} | ${CMD_GREP} $d | ${CMD_TAIL} -n1 | ${CMD_CUT} -d"-" -f5 | ${CMD_CUT} -d"." -f1 )
        if [ -z $COUNTER ]; then
            COUNTER=0
            BACKUPDATE="${BACKUPDATE}-${COUNTER}"
        else
            COUNTER=$((COUNTER+1))
            BACKUPDATE="${BACKUPDATE}-${COUNTER}"
        fi
        ${DEBUG} "Message: setting date and counter : ${BACKUPDATE} for  $d"
    fi
    if [ ${KEEP_DAYS} = "time" ] ; then
        BACKUPDATE=$(${CMD_DATE} +%Y-%m-%d_%H%M%S)      # ISO 8601 standard date/time
    fi
}

handig om erbij te hebben, als je start met --debug gaat het log naar console, zonder naar syslog
Bash:
1
2
3
4
5
if [ -n "$1" ] && [ "$1" = "--debug" ]; then
      DEBUG="${CMD_ECHO}"
else
    DEBUG="${CMD_LOGGER} -t $0"
fi


Deze kan je meerdere keren per dag draaien, je bestanden krijgen OF een volgnummer Of de datum + tijd.
questie van ontrafelen en in je eigen script hangen.

[ Voor 10% gewijzigd door Hero of Time op 14-12-2015 14:32 . Reden: gebruik AUB volgende keer netjes [code] blokken ]

ehhh.. noppes

Pagina: 1