iB-InformatikBoard.ch - Benutzer helfen Benutzern   IT-Lohnumfrage ¦ MS-CLIP ¦ Google  


    Diskussionen über Freizeit und Job: Diskussionen über Weiterbildung: Diskussionen über die Computerwelt:  
    Neu hier? Forum für Einsteiger
Wichtige F.A.Q.'s und Regeln
Off Topic
iB-Updates und News
Feedback und Vorschläge
Informatik Job-Forum
Ich suche eine Informatikstelle
Ich biete eine Informatikstelle
Microsoft MCSE Zertifikate
Microsoft Zertifikate Allgemein
CISCO Zertifikate
SIZ-Zertifikaten und Lernhilfen
Zertifikate und Diplome Allgemein
Weiterbildung mit E-Learning
Windows Workstation   Windows Server
Software Allgemein   Linux Software
Programmiersprachen   Webdesign
Security   Internet
Hardware/Netzwerk   Wireless
Pockets, Smartphones, PDA's   Games
Allgemeine Tipps, Bücher und Tools
HowTo    Online Schnäppchen
 
   

Willkommen auf informatikBoard.ch - Benutzer helfen Benutzern
Zurück   iB-Startseite > Informiere dich über die Computerwelt: Geräte, Hard- und Software > Linux Software
Willkommen bei InformatikBoard.ch:
Bevor du Schreiben oder Antworten kannst,
musst du dich hier kostenlos Registrieren!

Antwort
 
Themen-Optionen
Bash-Scripting .... Sammelthread
Alt
  (#1)
Super Profi Benutzer
 
Benutzerbild von spacyfreak
 
Status: Offline
Beiträge: 1,825
Registriert seit: 10.01.2005
Ort: Germanien
Standard Bash-Scripting .... Sammelthread - 03.08.2005, 09:12

Ich dachte ich eröffne mal einen Thread, in dem der geneigte (Linux-)Admin kleine Scriptbeispiele oder Lösungen für wiederkehrende Probleme ablegen kann, die auch für andere interessant sein könnten.
Nett wäre eine möglichst ausführliche Erklärung der Funktionsweise, damit es auch andere Hirne nachvollziehen können, was und wiso es gemacht wurde.

Ich fange an mit einem klitzekleinen Script, das folgendes machen soll:

1. Nächtlich soll die komplette MySql-Datenbank gesichert werden (bei laufender DB!)
2. Der Name der Sicherungsdatei soll das aktuelle Datum enthalten
2. Die Sicherung soll gepackt werden
3. Die Sicherung wird mir per Mail zugesendet

###################################

#! /bin/bash
# set -x

#Script zur automatischen Erstellung eines MySql Backups #der kompletten Datenbank


#1. Definieren der Datumsanzeige (siehe "man date")
DATUM=`date "+%Y%m%d"`


#1. Sicherung der kompl. Datenbank in das File mysql-$DATUM.dump

mysqldump -u root -pp@ssw0rd --opt --all-databases > mysql-$DATUM.dump


#2. Packen der Datei

gzip -f mysql-$DATUM.dump


#3. Mail an admin@firma.de

echo "Hier die aktuelle MySql-DB des Servers S1" | mail -s "mysqlbackup Server S1" -a mysql-$DATUM.dump.gz admin@firma.de


####################################

Damit das Script nächtlich ausgeführt wird (automatisch) machen wir einen cronjob.


crontab -e (editieren)

| minute | hour | day of month | month of year | day of week |

| 0 | 1 | 1-29 | 1-12 | 1-6 | (cd /usr/bin ; ./mysqldump.sh)


CCNA, MCSE ...
640-801 / 642-551 / 642-502 / 70-292 / 70-215 / 70-270 / 70-216 / 70-217 / 70-218 / 70-219 / 70-224 / LPI 101 / LPI 102

Geändert von spacyfreak (03.08.2005 um 09:51 Uhr).
  spacyfreak eine Nachricht über Yahoo! schicken  
Mit Zitat antworten
Bash-Scripting .... Sammelthread
 
Links zum gleichem Thema:

GeschenkeNews die besondere Art zu schenken
Geschenke der besonderen Art.
sed Beispiel
Alt
  (#2)
Super Profi Benutzer
 
Benutzerbild von spacyfreak
 
Status: Offline
Beiträge: 1,825
Registriert seit: 10.01.2005
Ort: Germanien
Standard sed Beispiel - 03.08.2005, 09:40

Folgende Zeile soll zeigen, wie man mit dem Befehl "sed"
aus einer Config-Datei (hier "smb.conf") nach einem bestimmten Suchmuster (=Freigabename) suchen kann.

Nehmen wir an, wir haben für verschiedene User Freigaben in der smb.conf eingetragen, die mit [hostname] beginnen. Gelegentlich wollen wir bestimmte Freigaben löschen, ohne uns mit "vi" durch die "smb.conf" hangeln zu müssen u. manuell zu löschen. Ein grafisches Tool wollen wir nicht verwenden, da der Server komplett ohne X-Window läuft
Sobald sed das Muster in der Config entdeckt hat, soll es die gefundene Zeile sowie die folgenden Zeilen löschen, BIS zur Zeile in der das Muster "printable = no" steht.
sed soll also einen ganzen Block aus der Config Datei löschen. Dazu wird ein Anfangsbereich und Endbereich angegeben.
Dieser Bereich wird dann komplett aus der 'smb.conf' geloescht.

Die Synthax dafuer lautet

sed -e /"Anfang"/,/"Ende"/D


Da in der 'smb.conf' nicht nur eine Zeile geloescht werden muss, wird der sed Befehl erweitert. sed soll zunaechst die Zeile finden, die mit folgendem String beginnt: [hostname] und dann diese Zeile
entfernen.
Da '[' von der bash interpretiert werden kann, muessen dazu die Klammern ('[]') maskiert werden ('\[').
Der ganze Such-String muss in Gaensefuesschen gesetzt sein (""), damit sed die entsprechende Zeile finden und loeschen ('/D') kann.

Es soll jedoch nicht nur die Zeile in der 'smb.conf' geloescht werden, die den Hostnamen enthaelt [hostname] sondern auch alle folgenden Zeilen BIS EINSCHLIEßLICH der Zeile 'printable = no', die den Abschluss dieser Freigabe fuer den zu loeschenden User darstellt.
Das $1 steht für den Hostnamen. Der "hostname" steht für den Rechnernamen, auf den die Freigabe im Beispel benannt wurde.
Das Ergebnis der "sed" Bearbeitung wird in eine temporäre Datei geschrieben "smb.conf.var" und diese überschreibt dann die Original-smb.conf.

Wenn das Script, das die Anweisung enthält, z.B. "delete_freigabe" heisst, ruft man es so auf:

./delete_freigabe hostname



####################################

sed -e /"\[$1\]"/,/"printable = no"/D /etc/samba/smb.conf > /tmp/smb.conf.var
mv /tmp/smb.conf.var /etc/samba/smb.conf

####################################


CCNA, MCSE ...
640-801 / 642-551 / 642-502 / 70-292 / 70-215 / 70-270 / 70-216 / 70-217 / 70-218 / 70-219 / 70-224 / LPI 101 / LPI 102

Geändert von spacyfreak (03.08.2005 um 10:00 Uhr).
  spacyfreak eine Nachricht über Yahoo! schicken  
Mit Zitat antworten
Alt
  (#3)
Super Profi Benutzer
 
Benutzerbild von kermit
 
Status: Offline
Beiträge: 2,161
Registriert seit: 28.09.2004
Ort: Wettswil am Albis
Alter: 29
Standard 16.08.2005, 18:32

Genau das, was ich für den Mysql-Server während meine Ferienabwesenheit benötige!
Danke!

bis bald
Kermit
   
Mit Zitat antworten
Antwort



Unsere iB-Sponsoren:
itrain.ch
klubschule.ch
iB-Sponsor: inside-it.ch
ARP DATACON - PC Onlineshop für Computer, Computerbedarf und Software


Sponsor-Links:



Bitte beachtet das Angebot unserer Sponsoren:
Clever-Schenken.ch Geschenke und Geschenkideen iB-Sponsor: itrain.ch iB-Sponsor: klubschule.ch iB-Sponsor: inside-it.ch
GeschenkeNews die besondere Art zu schenken
Geschenke der besonderen Art.



Lesezeichen
Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
VBS und Powershell scripting Games zer00 Programmiersprachen Allgemein 2 28.03.2007 19:43
Einstellungen der Bash übertragen kermit Linux Software 3 17.01.2006 23:47
Scripting Exam? tele_type MICROSOFT Zertifikate Allgemein 3 23.08.2005 14:12
Windows scripting lernen map23 Programmiersprachen Allgemein 10 28.07.2005 14:19
2mount Script - Linux Bash Scrip Maverick Linux Software 1 19.11.2004 20:36


« Vorheriges Thema | Nächstes Thema »
Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Partnerlinks:
www.Clever-Schenken.ch - Geschenke und Geschenkideen, persönlich uns speziell
www.GeschenkeNews.ch - Geschenke und Geschenkideen
www.BigBellyBank.ch - Die lustige Sparkasse mit AHA-Effekt
www.EcoSphere.ch - Das Mini-Aquarium aus der NASA-Forschung für Zuhause
www.Frauen-Geschenke.ch - Spezielle Geschenke nicht nur für Frauen

 

Copyright ©2008 InformatikBoard.ch
Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
vB Skin by vBStyles.com
Search Engine Optimization by vBSEO 3.2.0



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90