PDA

Bekijk Volledige Versie : Linux Batch Scripting



WH-Tim
21/02/05, 22:32
Iemand een voorbeeld van een for loop welke iedere keer 1 regel van random.log uitleest en dan de eerste waarde in deze .log als %1 opslaat, og iig dat ik deze kan gebruiken.

Linux batchscripting manuals of andere websites zijn ook welkom!

Tim

SebastiaanStok
22/02/05, 12:54
Een voorbeeld van een toepassing die frequent voorkomt: stel je wil in een grote directorystruktuur (niet in 1 directory) alle files die eindigen op .class vernietigen. Dit kan je doen in de zsh met de bewerking

for i in `find . -name "*.class"` do rm $i ;

http://64.233.183.104/search?q=cache:LSDFGp7U8VIJ:islab.ruca.ua.ac.be/bart/linux.html+linux+sh+for-loop&hl=nl&lr=lang_nl

http://www.google.nl/search?hl=nl&q=linux+sh+%22for%22&btnG=Zoeken&lr=lang_nl

Niet veel maar is iets :)

Je kan met tail het bestand uit lezen, zie ook man tail

Edit: Ik zelf heb deze gemaakt om die overbodige Thumb.db files te verwijder :D

#!/bin/sh
for i in `find . -name "Thumbs.db"`;
do rm $i
done

WH-Tim
22/02/05, 20:36
Bedankt, op linux.com staan ook aardige handleidingen zag ik :)

SebastiaanStok
23/02/05, 14:14
Ik ga die loop ook gebruiken voor een backup script.

Dat nog niet zo wil lukken :mad:

WH-Tim
23/02/05, 14:55
Is de zoekfunctie misschien een optie?

http://www.webhostingtalk.nl/search.php?s=&action=showresults&searchid=393227&sortby=lastpost&sortorder=descending

SebastiaanStok
27/02/05, 17:33
Inmidels is het gelukt.

#!/bin/bash
# Backup script to backup te whole dang system.
# Version 1.0

# Waht is the dir to writ te backups to.
BACKUP_DIR=/data/backup_system

i=0

# Loop until all parameters are used up
while [ "$i" -le $(($# + 1)) ]; do

echo "Backingup maount point \"$1\"..."

tar -cvpzf ${BACKUP_DIR}${1}_`date '+%Y-%m-%d'`.tar.gz $1 > /data/backup_system${1}_`date '+%Y-%m-%d'`.log

shift

i=$((i + 1))

done

En aanroepen met

system_backup.sh /boot /root /etc

Ik heb niets in home staat dus die hoef ik niet te backupen :p

WH-Tim
27/02/05, 22:03
Dat script kan een heel stuk netter. Vooral aangezien je steeds dezelfde paden gebruikt en je het niet dagelijks handmatig gaat uitvoeren. Ook die tar optie lijkt mij niet heel nuttig, zcf zonder verbose en zonder log is ook goed, maar das mijn mening. in Tar heb je ook een list optie. Cronjob om uit te voeren (root user cron dus) en tar zcf home.tar.gz /home /root /boot etc..

Tim

SebastiaanStok
01/03/05, 10:41
Ik snap je even niet :(

tar zcf home.tar.gz /home /root /boot

Ik draai een cronjob, ik maak iderere week ee n backup.

Het is toch beter een backup temaken op datum.

Met welke script maak jij je backups ?
En het is mij nog niet gelukt ook /usr/local er bij te nemen, en dan het lieftst zonder plaatjes er bij :).

WH-Tim
01/03/05, 18:23
ja, je doet nu in je cron zetten:

/bin/sh /backup/script.sh /home /bin /tmp /etc

Als je toch gewoon in je script zet dat je een backup maakt van die mappen en zonder al die parameters aanroept, kan het ook niet misgaan door ontbrekende parameters.

tar --help doet trouwens wonderen. tar --help | grep exclude ook ;)

Ik maak trouwens backups met een eigen gemaakt script, ook via een .sh met cronjob en in de toekomst heb ik de plannen om rsynd te gaan gebruiken.


Wekelijks een backup maken is trouwens niet genoeg, als je net een CMS maakt en je server crasht ben je alsnog je hele CMS kwijt. En ik kan het weten, mij is het gebeurd afgelopen week :)