Nieuws:

We zijn er weer.

Na lange tijd van afwezigheid zijn we er weer  :laugh:
We hebben alle wachtwoorden gereset, je oude wachtwoord werkt niet meer.Je moet via het "wachtwoord vergeten"-linkje je wachtwoord resetten. Je krijgt hiervoor een mailtje op het adres dat je bij ons geregistreerd hebt.

De komende tijd zijn we nog druk bezig om de rest van de site op te bouwen, dus het kan zijn dat sommige onderdelen (tijdelijk) niet werken.

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Bash script testen  (gelezen 2846 keer)

Offline vis

  • Lid
  • Steunpunt: Nee
Bash script testen
« Gepost op: 2010/02/25, 17:39:53 »
Beste,

Ik heb een script dat er voor moet zorgen dat er allerlei data verwijderd wordt. Alles wat wordt verwijderd wordt ook gelogd. Is het mogelijk om zo'n script te laten draaien zonder dat deze ook werkelijk bestanden verwijderd, maar wel het logbestand aanmaakt?

Ik wil namelijk eerst zeker weten dat alles werkt voordat ik het script echt laat draaien aangezien het om 8TB aan data gaat.

Alvast bedankt,

Vis

Offline rick.blub

  • Lid
  • Steunpunt: Nee
Re: Bash script testen
« Reactie #1 Gepost op: 2010/02/25, 19:58:01 »
Kan je het script hier posten?
Kunnen we iets beter zien hoe het te werk gaat :P
Volop Ubuntu 12.04 gebruiker.

Offline Rachid

  • Vertaalteam
    • rachidbm
    • Mijn blog
  • Steunpunt: Nee
Re: Bash script testen
« Reactie #2 Gepost op: 2010/02/25, 22:51:53 »
Je kunt dit soort dingen makkelijker testen door echo voor het verwijder commando te zetten.
dus ipv: rm bestand
doe je: echo rm bestand
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Offline vis

  • Lid
  • Steunpunt: Nee
Re: Bash script testen
« Reactie #3 Gepost op: 2010/02/26, 18:51:45 »
Bedankt voor de tip, ga ik eens testen.

Offline ivo

  • Lid
  • Steunpunt: Nee
Re: Bash script testen
« Reactie #4 Gepost op: 2010/03/09, 22:00:25 »
@Wazzzaaa,

Da's leuk met die echo er voor, maar dan zie je alleen maar wat er uitgevoerd zou gaan worden. In werkelijkheid doet ie niks, dus ook geen logbestand aanmaken.

Beter kun je in zo'n geval een directory aanmaken waarin je een aantal vergelijkbare bestanden plaatst. Vervolgens test je daarmee je script.
There are only 10 types of people in the world; those who understand binary and those who don't.

Offline ivo

  • Lid
  • Steunpunt: Nee
Re: Bash script testen
« Reactie #5 Gepost op: 2010/03/09, 22:01:00 »
Bedankt voor de tip, ga ik eens testen.

post je script hier nou eens, dan kunnen we je beter helpen.
There are only 10 types of people in the world; those who understand binary and those who don't.

Offline socialdefect

  • Lid
    • socialdefect
    • Socialdefect's Blog
  • Steunpunt: Nee
Re: Bash script testen
« Reactie #6 Gepost op: 2010/03/17, 13:02:22 »
Beter kun je in zo'n geval een directory aanmaken waarin je een aantal vergelijkbare bestanden plaatst. Vervolgens test je daarmee je script.

Inderdaad is dit een betere oplossing, ook is het handig om variabelen te gebruiken in je script, mede voor hergebruik zodat je alleen het variabel van de te verwijderen map hoeft te veranderen en niet elke regel waarin de naam voor komt maar dit is ook zeer handig bij het testen, je maakt dan gewoon een test map aan met test bestanden er in en past de variabelen in je script zo aan dat het word toegepast op de test bestanden.

Ook handig is in dit geval een klein scriptje te maken waarmee je de test map overnieuw kan maken zodat je dit niet telkens handmatig hoeft te doen als het niet in een keer slaagt voor je test; bv:
#!/bin/sh

mkdir test
mkdir -p test/testdir/testdir2/one_more_dir
touch test/testdir/testfile
etc............

nog een handige truuk om een (minder agressief) script te testen is met bash -x script.shBash geeft dan een output van alle acties die worden uitgevoerd zodat je gemakkelijk kan debuggen. In jouw geval dus alleen handig wanneer je het uitvoert op een test dir.