per shellscript/crontab daten aus sql datenbank loeschen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Midifan, 20.07.2006.

  1. #1 Midifan, 20.07.2006
    Zuletzt bearbeitet: 20.07.2006
    Midifan

    Midifan Grünschnabel

    Dabei seit:
    20.07.2006
    Beiträge:
    4
    Zustimmungen:
    0
    Hallo,
    Ich würde gerne aus meiner MySql DB per Crontab & Shellscript daten aus der Datenbank loeschen. also alles was aelter als 5 Monate ist bzw. wäre mir eine genaue anzahl an tagen vielleicht sogar lieber aber zuerst sollte dies hier mal funktionieren.
    und hab mir dazu folgendes überlegt
    clean.sh
    Code:
    #!/bin/bash
    MYYEAR=`date '+%Y'`
    MYMONTH=`date '+%m'`
    MYDATE=`date '+-%d 00:00:00'`
    # (( MYYEAR = MYYEAR - 1 ))
    
    if [ $MYMONTH -lt 5 ]; then
            (( MYYEAR = MYYEAR -1 ))
            (( MYMONTH = 12 - 5 + `date '+%m'`))
    else
            (( MYMONTH = MYMONTH - 5 ))
    fi
    
    echo $MYYEAR"-"$MYMONTH$MYDATE
    /opt/lampp/bin/mysql -u root --password=blabla -e 'delete from license_usage where flmusage_date < $MYYEAR-$MYMONTH-$MYDATE' licenses_indientest
    
    crontab schaut so aus
    Code:
    05 00 * * * /root/clean.sh
    
    Edit: jetzt hab ich die fehlermeldung vom testen vergessen.
    >Error 1054 (42s22) at line1: Unknown Column '$MYYEAR' in 'where clause'

    und es funktioniert nicht..habe ich irgendwo einen denkfehler oder liegts an der syntax? ich bitte um Hilfe :)

    Ps: System ist ein Suse Linux 9.3 mit der aktuellesten Xampp distribution 1.53a.

    Danke im vorraus für hilfreiche beiträge :))
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 phrenicus, 20.07.2006
    phrenicus

    phrenicus Routinier

    Dabei seit:
    24.05.2006
    Beiträge:
    253
    Zustimmungen:
    0
    Ort:
    Tübingen, Germany
    Hallo,

    ist in Apostrophe gesetzt. Der Shell hast Du damit gesagt, dass sie nichts, aber auch gar nichts auf der Kommandozeile auswerten darf, auch keine Variablen.

    Versuchs mal mit doppelten Anführungsstrichen :oldman

    Gruß
     
  4. #3 Midifan, 20.07.2006
    Midifan

    Midifan Grünschnabel

    Dabei seit:
    20.07.2006
    Beiträge:
    4
    Zustimmungen:
    0
    ok, jetzt gibts keine fehlermeldung mehr.funktionieren tuts noch immer nicht. kann es daran liegen das bei mir die zeit in einem eigenen feld gespeichert wird? sprich flm_usagedate hat das format yyyy-mm-dd und es gibt noch ein spalte flmusage_time mit dem format hh:mm:ss ?
     
  5. #4 phrenicus, 20.07.2006
    phrenicus

    phrenicus Routinier

    Dabei seit:
    24.05.2006
    Beiträge:
    253
    Zustimmungen:
    0
    Ort:
    Tübingen, Germany
    Ehrlich gesagt: keine Ahnung. Ich weiß nicht viel über MySQL.
    Es kann aber natürlich sein. Deinem "date"-Kommando kannst Du ja aber genau das Format mitgeben, das Du haben möchtest.

    Gruß
     
  6. #5 Midifan, 20.07.2006
    Midifan

    Midifan Grünschnabel

    Dabei seit:
    20.07.2006
    Beiträge:
    4
    Zustimmungen:
    0
    ok, das ändert genau nix. unter phpmyadmin muss man das date oder eben text zb. mit 'Text' kennzeichnen. vielleicht liegts ja daran. aber wenn du sagst das unter ' ' alle variablen von oben ausschließt?
    wie soll den das funktionieren oder könnte ich zb.
    "befehl ' " variablen " ' restlicher befehl " machen?
     
  7. #6 Wolfgang, 20.07.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    Das ist ja schon mehr Mysql-Thema, womit ich mich schon lange nicht mehr beschäftige.
    Aber wenn du ' übergeben willst, kannst du das in der Variablen z.B. so machen:
    Code:
    $ A="'TEST'"; echo $A
    'TEST'
    
    Gruß Wolfgang
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  9. #7 Midifan, 20.07.2006
    Midifan

    Midifan Grünschnabel

    Dabei seit:
    20.07.2006
    Beiträge:
    4
    Zustimmungen:
    0
    ok, wenn ich jetzt das datum übergeben will..

    $ A ="'Date'"; echo $A wird mir aber 'Date' zurückgeben und net '07-20' oder?

    dh. ich muss am "befehl '" variable "' resttext" machen right?
    ich bin mir net sicher warum es net funktioniert, deswegen hab ichs in shell skripte reingegeben. wennst magst verschiebst das thema halt.
     
  10. #8 Wolfgang, 20.07.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    ;)
    Gruß Wolfgang
     
Thema:

per shellscript/crontab daten aus sql datenbank loeschen

Die Seite wird geladen...

per shellscript/crontab daten aus sql datenbank loeschen - Ähnliche Themen

  1. Python Softwareentwickler (Hintergrundentwicklung und Datenanalyse)

    Python Softwareentwickler (Hintergrundentwicklung und Datenanalyse): Stelle : Software-Entwickler Anzahl : 3 Standort : Manila(Die Philippinen) Dezhong Investment LTD. Unser internationales...
  2. Neue Vision von KDE: Datenschutz, Freiheit, Privatsphäre

    Neue Vision von KDE: Datenschutz, Freiheit, Privatsphäre: Das KDE-Projekt hat sich eine neue Leitlinie gesetzt. Schon immer war es das Ziel des Projektes, mit seiner Arbeit die Welt ein Stückchen besser...
  3. Debian-Projektleiterwahl mit nur einem Kandidaten

    Debian-Projektleiterwahl mit nur einem Kandidaten: Bei der anstehenden jährlichen Debian-Projektleiterwahl tritt nur ein Kandidat an, der Franzose Mehdi Dogguy. Der amtierende Projektleiter Neil...
  4. Deutsche Bahn öffnet Fahrplandaten

    Deutsche Bahn öffnet Fahrplandaten: Über ein API stellt die Deutsche Bahn die aktuellen Fahrplandaten unter einer Creative-Commons-Lizenz allen Interessenten zur Nutzung bereit....
  5. Samba Datentransfer bricht ab

    Samba Datentransfer bricht ab: Hallo zusammen, ich suche seit 2 Tagen im Internet nach einer Lösung, aber ich finde einfach keine brauchbare. Folgendes Szenario: Ich vor einem...