3 kleine Skript für mich

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
julianw
Beiträge: 10
Registriert: 07.07.2008 22:05:56
Kontaktdaten:

3 kleine Skript für mich

Beitrag von julianw » 07.07.2008 22:18:44

Hallo,
hoffe, ihr könnt mir helfen:
Ich hätte drei kleine Aufgaben, bei der ich eure Hilfe bräuchte. Dürfte aber kein großes Problem für euch darstellen (hoffe ich).

1.)
Ich bräuchte einen Skript, der sich per FTP auf einen Server anmeldet und gewisse Verzeichnisse komplett herunterlädt, diese packt und die Datei mit dem aktuellen Datum versieht. Dieser Skript sollte dann per Cronjob aufrufbar sein.
Bsp.:
Serververzeichnisse: /html/Seite1; /html/Seite2; /html/Seite3

Skript lädt diese 3 Ordner herunter, packt sie und erstellt die Dateien: /home/user/Backups/Site1/$Datum.tar; /home/user/Backups/Site2/$Datum.tar; /home/user/Backups/Site3/$Datum.tar

Nettes extra: Wenn möglich, sollte der Skript auto. Dateien, die älter als 6 Wochen sind, löschen.

2.)
Der Skript sollte ein MySQL-Backup des Server's erstellen. Leider habe ich keinen externen Zugriff auf MySQL. Jedoch kann ich auf den Server php-Datein hochladen und natürlich ausführen. Daher wollte ich Fragen, ob einer von euch eine Lösung kennt?

Grundidee: Der PC authentifiziert sich am Server (.htaccess-Schutz), führt den Skript aus, der eine MySQL-Daten zurückgibt und speichert diese.

Nettes extra: Auch hier sollte der Skript auto. Dateien, die älter als 6 Wochen sind, löschen.

3.)
Ein Server im lokalen Netzerk ist immer on. Zusätzlich hab ich noch einen Client PC mit Windows. Auf dem Client sind Dateien Freigegeben (mit Benutzername und Passwort-Schutz)
Der Server soll jetzt, sobald der PC gestartet wird, ein auto. Backup der Dateien machen. Vor allem kann es auch sein, dass der Client währendes des Backups heruntergefahren wird. Auf dem Client kann auch eine Software installiert werden, wenn dies nötig ist.
Hier hab ich leider noch keinen Lösungsansatz gefunden, nur, dass Cronjob und Ping sicherlich nützlich sein wird.

Nettes extra: Wenn möglich, sollten später nur noch veränderte Dateien kopiert werden.

Hintergrundinfo's:
Server:
- Debian Etch
- Im lokalen Netzerk (also nicht im Internet)
- 24h on

Würde mich über Antworten und Vorschläge freuen :D

MfG
Julian
IOBlogger - mein kleiner privater Blog

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: 3 kleine Skript für mich

Beitrag von Duff » 08.07.2008 07:55:56

Hast du dich schon mal mit der Shell-Programmierung beschäftigt?
-> sollte damit möglich sein

Zum Löschen von Dateien eines bestimmten Alters, kannst du z.B. find benutzen.
Oh, yeah!

uname
Beiträge: 12427
Registriert: 03.06.2008 09:33:02

Re: 3 kleine Skript für mich

Beitrag von uname » 08.07.2008 08:18:10

Für das Problem mit dem FTP-Download empfehle ich dir den Befehl

Code: Alles auswählen

ncftpget
ncftpget gehört zum Paket http://packages.debian.org/etch/ncftp .

Alternativ kannst du auch das FTP-Verzeichnis mounten mit http://packages.debian.org/etch/curlftpfs .

julianw
Beiträge: 10
Registriert: 07.07.2008 22:05:56
Kontaktdaten:

Re: 3 kleine Skript für mich

Beitrag von julianw » 08.07.2008 13:18:14

Nun ja, leider bin ich wiegesagt ein Newbie zum Thema Linux und kenne mich daher auch kaum mit der Shell-Programmierung aus. Wäre echt gücklich, wenn ihr mir die Skripte proggen könnt, sodass ich sie nur abschreiben zu brauche.
Hatte mich schon öfters versucht, hat aber leider alles nicht geklappt. :cry:
IOBlogger - mein kleiner privater Blog

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Re: 3 kleine Skript für mich

Beitrag von nepos » 08.07.2008 13:34:23

Das Datenbank-Backup per PHP-Skripten würde ich lassen. Warum?
Die meisten Hoster beschränken die Laufzeit von Skripten. Wenn die DB zu gross wird, dann wird das Backup-Skript einfach abgebrochen.

Benutzeravatar
Meillo
Moderator
Beiträge: 9254
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: 3 kleine Skript für mich

Beitrag von Meillo » 08.07.2008 15:52:43

julianw hat geschrieben:1.)
Ich bräuchte einen Skript, der sich per FTP auf einen Server anmeldet und gewisse Verzeichnisse komplett herunterlädt, diese packt und die Datei mit dem aktuellen Datum versieht. Dieser Skript sollte dann per Cronjob aufrufbar sein.
installiere dir `mirrordir', damit kannst du ziemlich einfach eine Kopie ziehen. Syntax siehe Manpage.
Dann packen:

Code: Alles auswählen

tar -czf /path/to/backup/site1_`date +%F`.tar.gz website-kopie
Die Befehle einfach hintereinander in ein Shellscript packen und das per Cron aufrufen.
(Zumindest diese zwei Dinge kannst du dir selbst anlesen!)

Nettes extra: Wenn möglich, sollte der Skript auto. Dateien, die älter als 6 Wochen sind, löschen.
Erstelle dir für diese Aufgabe ein separates Script, das ist einfacher.
Als Ansatzpunkte:
- for-Schleife über die Dateien und mit `touch -t' und `expr -ot' arbeiten
- `find' verwenden (vermutlich besser)

2.)
Der Skript sollte ein MySQL-Backup des Server's erstellen. Leider habe ich keinen externen Zugriff auf MySQL. Jedoch kann ich auf den Server php-Datein hochladen und natürlich ausführen. Daher wollte ich Fragen, ob einer von euch eine Lösung kennt?

Grundidee: Der PC authentifiziert sich am Server (.htaccess-Schutz), führt den Skript aus, der eine MySQL-Daten zurückgibt und speichert diese.
Die Idee ist mal gar nicht schlecht.
Es gibt dafür bestimmt schon eine Menge fertige Scripte, suche nach einem.
@nepos: Ich meine, man kann die (standardmäßig 30s) Laufzeit für ein Script irgendwie hochsetzen, falls der Hoster es nicht unterbunden hat. Vielleicht war's mit .htaccess-Dateien ... weiß es aber nicht mehr.
In jedem Fall sollte es schon etwas fertiges geben, das auch damit klar kommt.
Der Rest ist ja gleich wie beim Webspace-Backup.
Nettes extra: Auch hier sollte der Skript auto. Dateien, die älter als 6 Wochen sind, löschen.
Schreibe ein extra Script, wie oben angedeutet, dann kannst du es (mit unterschiedlichen Paramterübergaben) für beides verwenden.

3.)
Ein Server im lokalen Netzerk ist immer on. Zusätzlich hab ich noch einen Client PC mit Windows. Auf dem Client sind Dateien Freigegeben (mit Benutzername und Passwort-Schutz)
Der Server soll jetzt, sobald der PC gestartet wird, ein auto. Backup der Dateien machen. Vor allem kann es auch sein, dass der Client währendes des Backups heruntergefahren wird. Auf dem Client kann auch eine Software installiert werden, wenn dies nötig ist.
Hier hab ich leider noch keinen Lösungsansatz gefunden, nur, dass Cronjob und Ping sicherlich nützlich sein wird.
Dein Client könnte dem Server sagen, wann er online geht (dazu selbst was schreiben). Sonst halt per Ping rausfinden.
Wenn der Client runterfährt und somit das Backup abbricht, hast du halt von dem Tag keines ... ist ja sowieso nicht anders möglich.
Vermutlich willst du aber nicht _jedes_ Mal, wenn dein Rechner einschaltet, backupen.
Ich schlage vor, ein normales Backup-Programm auf dem Client laufen zu lassen (Windows kann sowas ja auch schedulen). Und die erstellte komprimierte Datei dann rüberzukopieren.
Nettes extra: Wenn möglich, sollten später nur noch veränderte Dateien kopiert werden.
Sowas können die Programme normalerweise. Es gibt bestimmt was freies (oder zumindest kostenloses) für Windows, das das kann.


Würde mich über Antworten und Vorschläge freuen :D
Fertige Lösunge wirst du von uns eher nicht kriegen, aber Anregungen und Ansatzpunkte. Wenn du nun darauf aufbaust und versuchst etwas zu erstellen, dann helfen wir aber gerne falls später Probleme und Fragen auftauchen.
Use ed once in a while!

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: 3 kleine Skript für mich

Beitrag von Duff » 08.07.2008 21:52:47

Die Lösung zum Löschen von 6 Wochen alten files und älter, könnte mit find vielleicht so aussehen:

Code: Alles auswählen

find /pfad/zum/Verzeichnis -name "*.auto" -a -mtime +42 -exec rm {} \;
Oh, yeah!

Antworten