wget automatisieren

Status
Für weitere Antworten geschlossen.

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.662
Punkte für Reaktionen
1.560
Punkte
314
Hallo!
Da mein Vorhaben, die Verzeichnisstruktur meiner (im Internet liegender) Website per FTP mittels "duplicity" auf der DS zu sichern, fehlgeschagen ist, versuche ich das jetzt mal mit wget!

Mit...
Code:
wget -m ftp://PASSWORT:BENUTZER@MEINE.DOMAIN
... läuft das auch zu meiner vollsten Zufriedenheit!

Nun möchte ich das Ganze jedoch automatisieren. Hab auch schon einen Ansatz, weis blos nicht, ob ich das so durchführen kann. Nach meinem letzten Crash inkl. Reset der DS, bin ich halt vorsichtiger geworden :eek:) (Anfänger haben es halt nicht leicht)

Und zwar dachte ich an sowas hier:

Code:
#minute hour    mday    month   wday    who     command
30      21       *       *       0       root    wget -m -P /volume1/backup/ ftp://PASSWORT:BENUTZER@MEINE.DOMAIN

Das ganze füge ich in die /etc/crontab ein, richtig. Und dann läuft jeden Sonntag um 21:30 Uhr ein Backup in das Verzeichnis /volume1/backup. Richtig?

Ist das ganze so korrekt, stimmen die Pfadangaben, oder bin ich auf der falschen Spur? Oder sollte ich die Parameter noch verändern, oder oder oder....!

Ein Frage beschäftigt mich auch noch. Ist es ein großes Sicherheitsrisiko, wenn ich die Benuzter/Passwort -Angaben im Klartext in die crontab eintrage. Kann ja jeder versierte Angreifer auch problemlos auslesen. Gibts dafür einen besseren/anderen Weg?

Gruß Tommes!
 

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
2
Punkte
84
Ja, cron ist schon der richtige Weg. Komplette Pfadangaben sind im Allgemeinen zu empfehlen.

Wegen dem PW geht ja nicht wirklich anders. Zugriff hat nur root/admin, also für ein sicheres PW sorgen. Außerdem wenn jemand so auf Deiner DS drauf ist, hast Du eh ein Problem.
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.662
Punkte für Reaktionen
1.560
Punkte
314
Also kann ich das so in die crontab schreiben, ohne das ich die Kiste auf's Kreuz lege.
Fahre grade noch ein paar Versuche wegen der Pfadangaben, aber soweit läuft die ganze Sache schon erschreckend gut (Per Eingabe auf der Konsole).

Sicheres Passwort hab ich und ins Internet hab ich die DS eh nicht gestellt. Von daher werd ich das gleich mal so testen.

Gruß Tommes!
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.662
Punkte für Reaktionen
1.560
Punkte
314
Ok, Cronjob angelegt und läuft. Ich bin begeistert. Echte genial!

Was jetzt noch fehlt, wäre eine Benachrichtigung über die erfolgreiche Sicherung per Mail oder wenigstens per DSM. So in der Art, wie die "Dateisicherung und -wiederherstellung" aus dem DSM.

Geht sowas, und wenn ja, wie?

Gruß Tommes!
 

joku

Benutzer
Mitglied seit
06. Mrz 2011
Beiträge
6.664
Punkte für Reaktionen
2
Punkte
164
Was jetzt noch fehlt, wäre eine Benachrichtigung über die erfolgreiche Sicherung per Mail
Hallo Tommes,
wenn Du keine Unterdrückung verwendest, wie zB >/dev/null 2>&1, solltest Du eine Mail erhalten.
Du kannst es auch in eine Logfile schreiben.
Befehl 1> logfile-$(date +%Y-%m-%d-%H-%M-%S).log

Gruß Jo
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.662
Punkte für Reaktionen
1.560
Punkte
314
Hey joku!

Nun, eine Mail habe ich nicht erhalten und habe auch bewust keine Unterdrückung eingerichtet. Ich weis nur, das ich Mails von meiner DS erhalte, wenn eine erfolgreiche Sicherung über "Dateisicherung und -wiederherstellung" im DSM von statten ging.

Das mit dem Logfile werde ich mir dann morgen mal zu Gemüte führen. Hab für heute erstmal genug Erfolgserlebnisse gehabt. Und man soll sein Glück ja nicht zu sehr herrausfordern :)

Gruß Tommes!
 

joku

Benutzer
Mitglied seit
06. Mrz 2011
Beiträge
6.664
Punkte für Reaktionen
2
Punkte
164
Nun, eine Mail habe ich nicht erhalten und habe auch bewust keine Unterdrückung eingerichtet.
Hallo Hallo Tommes,
die werden immar an den Ausführenden gesendet, im Normalfall :)
benutzt Du cronjobs ?

Gruß Jo
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.662
Punkte für Reaktionen
1.560
Punkte
314
Morgähn !
Nun, der Ausführende ist wohl root, aber root kann ich keine Mail-Adresse geben, nur dem Admin! Oder ist Admin = root auf der Konsole? Sie verwenden ja auch das gleiche Passwort! Und ja, das ganze läuft jetzt über einen Cronjob.

Gruß Tommes!
 

joku

Benutzer
Mitglied seit
06. Mrz 2011
Beiträge
6.664
Punkte für Reaktionen
2
Punkte
164
aber root kann ich keine Mail-Adresse geben, nur dem Admin! Oder ist Admin = root auf der Konsole
Moin, moin, Tommes.
root hat eine, diese kannst Du in seinem home /root mit einer Datei
.forward
benutzer@mail.tld

an einem anderen schicken. admin und root sind zwei Benutzer.

Gruß JO
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.662
Punkte für Reaktionen
1.560
Punkte
314
Hey Jo!

Nun das der root auch eine eigene Mailadresse bekommt, wusste ich nicht. Leider kann ich das erst heut Abend ausprobieren.

Also ich persönlich nutze das super-geniale AdminTool von Itary und habe darüber auch meinen Cronjob angelegt. Wenn in dem AdminTool das cronjobs.spk enthalten ist, dann nutze ich das. Wenn nicht, kann ich das ja auch mal installieren.

Danke schonmal für die Tipps!
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.662
Punkte für Reaktionen
1.560
Punkte
314
Also irgendwie klappt das mit der Mail-Bestätigung nicht. Habe die Datei /.forward unter /root/.forward angelegt und meine Mail-Adresse dort eingetippt, abgespeichert, cron ausgeführt und..... erhalte keine Mail. Also mal eine alternative Mail-Adresse eingegeben und das gleiche von vorne.....und.... immer noch keine Mail!

DS mal neu gestartet und nochmal die Datei /root/.forward geöffnet und siehe da, keine Mail-Adresse mehr gespeichert. Dafür aber....

Rich (BBCode):
Synology> /opt/bin/pstree -aclpn|egrep "init|crond"|egrep -v grep

init,1
  |-crond,5232

Wie soll ich das jetzt verstehen?

Gruß Tommes!
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.662
Punkte für Reaktionen
1.560
Punkte
314
OK, das Problem im vorherigen Beitrag hat sich erledigt. Passt jetzt. Bekomme aber immer noch keine Mail. Ich glaub mir fehlt da noch ein Puzzelteil. Vor allem versteh ich nicht, was mir bzw. dem root die DS denn schicken soll? Die DS weis doch nur, das ich einen Cronjob ausgeführt habe, nicht aber den Inhalt des Cronjobs, oder? Also brauche ich bestimmt dieses Logfile, wovon du geredet hast, richtig?

Wie meintest du das denn mit dem logfile anlegen, genau? Kann ich dieses Logfile per Mail versenden?
Befehl 1> logfile-$(date +%Y-%m-%d-%H-%M-%S).log
Bitte Noobfreundlich erklären!

Ich hab gesehen, das unter /var/log/cron.log die Infos abgelegt werden, die durch die wget Anweisung durchgeführt wurden. Kann ich mir vielleicht dieses Logfile irgendwie an meine E-Mailadresse senden?

Ich weis, Fragen über Fragen...... und immer diese Anfänger...... schlimm schlimm schlimm!

Gruß Tommes!
 

joku

Benutzer
Mitglied seit
06. Mrz 2011
Beiträge
6.664
Punkte für Reaktionen
2
Punkte
164
Ich hab gesehen, das unter /var/log/cron.log die Infos abgelegt werden, die durch die wget Anweisung durchgeführt wurden. Kann ich mir vielleicht dieses Logfile irgendwie an meine E-Mailadresse senden?
Wenn Du schon einen Log hast, brauchst Du das andere nicht.
Ja der cron sollte eine Mail an den Ausführenden senden, nach dem Auftrag.

Gruß Jo
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.662
Punkte für Reaktionen
1.560
Punkte
314
OK, ich geb's auf. Ich schaff es einfach nicht, das mir diese Mi..kiste eine Mail nach Abschluss des Cronjobs schickt.
Und langsam hab ich auch keine Lust mehr, noch mehr Zeit in diese Thema zu investieren. Schließlich hab ich ja mein ursprüngliches Ziel, meine Verzeichnisstruktur zu sichern, erreicht. Und die Log's kann ich mir ja dann manuell in der /var/log/cron.log anschauen. Immerhin etwas!
Vielleicht muß ich mich auch erstmal intensiv mit Linux auseinandersetzen um dem ganzen hier folgen zu können und um die Zusammenhänge zu verstehen. Aber so hat das erstmal keinen Sinn, Blind im System rum zu matschen! (Anwender mit gefährlichen Halbwissen)

Trotzdem Danke für eure Hilfe

Gruß Tommes!
 

dany

Benutzer
Mitglied seit
31. Mrz 2008
Beiträge
352
Punkte für Reaktionen
0
Punkte
22

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.662
Punkte für Reaktionen
1.560
Punkte
314
Hi Dany!

Ich danke dir vielmals für diesen Tipp. Hat super funktioniert, wenn ich auch ein paar Startprobleme hatte. Was habe ich getan:

1. Nail installiert

2. Die Datei S99wget2myWeb.sh in /opt/etc/init.d/ erstellt.
Inhalt der Datei:
Rich (BBCode):
#!/bin/sh

wget -m -P /volume1/public/ ftp://PASSWORT:BENUTZER@DOMAIN.DE/

dat_now=`date +%Y-%m-%d_%H:%M:%S`
cat /var/log/cron.log | /opt/bin/nail -s"Synch $dat_now to nas" meine@email.ch
(Bitte verbessern, wenn ich hier etwas falsch gemacht habe, auch wenn es bei mir so läuft)

2. Einen Cronjob erstellt, mit dem Verweis auf die S99wget2myWeb.sh
Rich (BBCode):
#minute hour    mday    month   wday    who     command
30        21       *         *          0         root     /opt/etc/init.d/S99wget2myWeb.sh

3. Mit /opt/etc/init.d/S99wget2myWeb.sh auf der Konsole manuell einen Testlauf durchgeführt!

4. TEST BESTANDEN

5. Cronzeit an aktuelle Zeit angepasst und auf die Ausführung gewartet: LÄUFT ! (HÖLLE)


Fragen bzw. Probleme die mich noch beschäftigen.

-Nail
Bei Eingabe der Zugangsdaten mit meinem Web.DE Konto erhielt ich immer die Fehlermeldung
Code:
 smtp-server: 535 Authentication credentials invalid


Bei folgender config der nail.rc
set smtp-auth=login
set smtp=smtp.web.de
set pop=pop3.web.de
set from=BENUTZER@web.de
set smtp-auth-user=BENUTZER@web.de
set smtp-auth-password=PASSWORT
Bei Eingabe der Zugangsdaten mit meinem GMX.DE Konto läuft es ohne Probleme.

-Versenden der cron.log!
Nun, da sich schon jede Menge Zeug in der log.Datei angesammelt hatten, bekam ich eine stattliche Mail von 8 MB zugesendet. Also kam mir der Gedanke,
den Inhalt der cron.log nach dem versenden über mein Script automatisch zu löschen. Ich setzte dann in die letzte Zeile ein
Code:
echo -n > /var/log/cron.log
(und das als Noob) was dazu führte, das ich noch nicht mal einen Dateianhang erhielt. So wie es aussieht habe ich mir dabei auch die cron.log zerschossen, da jetzt garnichts mehr in diese Datei gespeichert wird (Noob eben). Sie ist leer und bleibt auch leer! Kann ich das irgendwie wieder funktionstüchtig machen?

Ansonsten bin ich mit dem Ergebnis schon mal sehr zufrieden und sage nochmal Danke für diesen tollen Tipp!


Gruß Tommes!
 
Zuletzt bearbeitet:

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
2
Punkte
84
/opt/etc/init.d ist auf jeden Fall das falsche Verzeichnis, das ist für Startskripte gedacht. /opt/bin wäre besser.

Log: Löschen und cron neu starten sollte eigentlich reichen. Ansonsten leitet man üblicherweise die Ausgabe in ein eigenes Log und das kannst Du ja dann auch problemlos löschen.
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.662
Punkte für Reaktionen
1.560
Punkte
314
Hi !

Das mit /opt/etc/init.d ist mir auch grad aufgefallen, da ich beim Neustart der DS auf einmal eine Mail erhalten habe. Werde die Datei verschieben.

Das mit der .log funktioniert aber immer noch nicht. Es wird nichts mehr reingeschrieben!


Gruß Tommes!
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.662
Punkte für Reaktionen
1.560
Punkte
314
Oh man, wie blöd muss man eigenlich sein.
Wenn ich das Script manuell über die Konsole ausführe, dann kann cron mir auch kein Logfile füllen.

Jetzt funktioniert das auch mit dem echo -n > /var/log/cron.log am Ende meines Scriptes. Jetzt habe ich es entlich geschafft.

-Der Cronjob wird gestartet und ruft mein Script auf
-die Verzeichnisstruktur meiner Webiste wird auf die DS gezogen bzw. aktuallisiert
-nach Beendigung wird mir eine Mail generiert mit dem Protokoll der cron.log
-Nach dem Versenden der Mail, wird der Inhalt der cron.log wieder gelöscht.

Ich werd bekloppt! Ich habs geschafft!

Danke Leute!

Gruß Tommes!
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat