Ordner alle 24 h zippen und auf anderen Server schieben
-
- Beiträge: 25
- Registriert: 04.02.2012 12:24:45
Ordner alle 24 h zippen und auf anderen Server schieben
Hallo und guten Morgen lieben Community,
ich hoffe ich bin hier im richtigen Forum und stelle mich nicht gar zu dämlich an....
Nun zu meinem Problem:
Ich betreibe einen Minecraft-server, dessen Karte (ein simpler Ordner) ich alle 24 Stunden einmal zippen und zum Download anbieten will. Dieses *.zip File soll dann etwa so heissen: Serverkarte_[aktuelles Datum].
Dieses File soll wenn es fertig ist automatisch per securecopy auf einen anderen Debian Server geschoben werden. (Da dieser eine bessere Bandbreite hat)
Außerdem sollen immer nur die 10 aktuellsten files da sein, die älteren sollen automatisch gelöscht werden.
Ich hoffe ihr könnt mir helfen. Ich freue mich auf eure Antworten und bedanke mich schonmal im Vorraus.
Grüße
mayosemmel
EDIT: Eine Sache habe ich noch vergessen: Das Script soll bei einem neustart des Roots automatisch wieder aktiv sein (habe keine Lust es jedes mal mit Hand zu starten.)
ich hoffe ich bin hier im richtigen Forum und stelle mich nicht gar zu dämlich an....
Nun zu meinem Problem:
Ich betreibe einen Minecraft-server, dessen Karte (ein simpler Ordner) ich alle 24 Stunden einmal zippen und zum Download anbieten will. Dieses *.zip File soll dann etwa so heissen: Serverkarte_[aktuelles Datum].
Dieses File soll wenn es fertig ist automatisch per securecopy auf einen anderen Debian Server geschoben werden. (Da dieser eine bessere Bandbreite hat)
Außerdem sollen immer nur die 10 aktuellsten files da sein, die älteren sollen automatisch gelöscht werden.
Ich hoffe ihr könnt mir helfen. Ich freue mich auf eure Antworten und bedanke mich schonmal im Vorraus.
Grüße
mayosemmel
EDIT: Eine Sache habe ich noch vergessen: Das Script soll bei einem neustart des Roots automatisch wieder aktiv sein (habe keine Lust es jedes mal mit Hand zu starten.)
Re: Ordner alle 24 h zippen und auf anderen Server schieben
Wie bist du denn bis jetzt vorgegangen?
Ich persönlich würde leicht anders herangehen: auf der Maschine mit dem Gameserver via Script und Cronjob betreffende Datei erstellen und in ein via http erreichbares Verzeichnis packen. Auf der Zielmaschine ein entsprechendes Gegenstück schreiben, das zu den festgelegten Zeiten die Datei abholt, und dafür sorgt, dass im Gegenzu die jeweils älteste Datei gelöscht wird. Scheint mir nicht zu komplex, gebraucht würde in diesem Fall im Wesentlichen: Grundlagen im Shellscripting, cron, zip, date und wget.
Soll es wirklich über scp laufen, muss halt ein entsprechendes Schlüsselpaar ohne Passphrase generiert werden, oder mit expect oder Ähnlichem gearbeitet werden. Das Script auf der Zielmaschine muss dann nur regelmäßig die Dateien zählen und ggf. die älteste löschen.
cu,
niemand
Ich persönlich würde leicht anders herangehen: auf der Maschine mit dem Gameserver via Script und Cronjob betreffende Datei erstellen und in ein via http erreichbares Verzeichnis packen. Auf der Zielmaschine ein entsprechendes Gegenstück schreiben, das zu den festgelegten Zeiten die Datei abholt, und dafür sorgt, dass im Gegenzu die jeweils älteste Datei gelöscht wird. Scheint mir nicht zu komplex, gebraucht würde in diesem Fall im Wesentlichen: Grundlagen im Shellscripting, cron, zip, date und wget.
Soll es wirklich über scp laufen, muss halt ein entsprechendes Schlüsselpaar ohne Passphrase generiert werden, oder mit expect oder Ähnlichem gearbeitet werden. Das Script auf der Zielmaschine muss dann nur regelmäßig die Dateien zählen und ggf. die älteste löschen.
cu,
niemand
-
- Beiträge: 25
- Registriert: 04.02.2012 12:24:45
Re: Ordner alle 24 h zippen und auf anderen Server schieben
Diese Möglichkeit ist für mich auch in Ordnung...
...Erfüllt für mich ja den selben Zweck
Allerdings habe ich mich hauptsächlich aufgrund des Cron Jobs usw an euch gewendet.
Habe zwar Grundkenntnisse allerdings bin ich noch nicht sehr Fortgeschritten. Bin Fachinformatiker im 1. Lehrjahr.
Bin durchaus Lernwillig und nicht auf den Kopf gefallen....deshalb hoffe ich auf eure Hilfe.
Grüße
mayo
...Erfüllt für mich ja den selben Zweck
Allerdings habe ich mich hauptsächlich aufgrund des Cron Jobs usw an euch gewendet.
Habe zwar Grundkenntnisse allerdings bin ich noch nicht sehr Fortgeschritten. Bin Fachinformatiker im 1. Lehrjahr.
Bin durchaus Lernwillig und nicht auf den Kopf gefallen....deshalb hoffe ich auf eure Hilfe.
Grüße
mayo
Re: Ordner alle 24 h zippen und auf anderen Server schieben
cron selbst besteht eigentlich nur aus einem Daemon, der Scripte und ähnliche Sachen gemäß der crontabs aufruft. Wie man dort etwas einträgt, ist in der manpage (einfach mal 'man 5 crontab' eingeben) recht gut erklärt. Im Normalfall wird cron beim Start des Systems mitgestartet.
Aber vorher sollten deine Scripte fertig, und getestet sein. Bei den Scripten ist zu beachten, dass sie nicht die gewohnte Umgebung des Users haben, sondern so Sachen wie $PATH selbst gesetzt werden sollten (oder man arbeitet mit absoluten Pfaden).
cu,
niemand
Aber vorher sollten deine Scripte fertig, und getestet sein. Bei den Scripten ist zu beachten, dass sie nicht die gewohnte Umgebung des Users haben, sondern so Sachen wie $PATH selbst gesetzt werden sollten (oder man arbeitet mit absoluten Pfaden).
cu,
niemand
-
- Beiträge: 25
- Registriert: 04.02.2012 12:24:45
Re: Ordner alle 24 h zippen und auf anderen Server schieben
Also ich hab mir jetzt überlegt, dass es ja Sinn machen würde, wenn ich auf dem Server auf dem der Gameserver läuft, immer ein File erstelle namens "map.zip".
Dieses hole ich mir dann mit dem anderen Server.....welcher das dann entsprechend umbenennt.
Nun noch ein Paar fragen:
1. Wie bringe ich es fertig, das der Server mir immer das Aktuelle Datum in den Dateinamen schreibt?
2. Wie setze ich es um, das immer nur die aktuellsten 10 Files da bleiben?
Dieses hole ich mir dann mit dem anderen Server.....welcher das dann entsprechend umbenennt.
Nun noch ein Paar fragen:
1. Wie bringe ich es fertig, das der Server mir immer das Aktuelle Datum in den Dateinamen schreibt?
2. Wie setze ich es um, das immer nur die aktuellsten 10 Files da bleiben?
Re: Ordner alle 24 h zippen und auf anderen Server schieben
Das aktuelle Datum gibt dir 'date' (auch mal die Hilfe lesen, um die Formatierung anzupassen), Dateien zählen kann man beispielsweise mit 'ls -l | wc -l'. Ausgabe einer Variablen zuweisen geht etwa so: 'DATUM=$(date +%Y%m%d)' → 'echo $DATUM' würde dann heute „20120204“ ausgeben.
Vielleicht hilft es weiter …
cu,
niemand
Vielleicht hilft es weiter …
cu,
niemand
Re: Ordner alle 24 h zippen und auf anderen Server schieben
-l (minus el) nur bei wc:niemand hat geschrieben:Dateien zählen kann man beispielsweise mit 'ls -l | wc -l'.
Code: Alles auswählen
% mkdir empty
% ls -l empty
insgesamt 0
% ls -l empty | wc -l
1
% ls empty | wc -l
0
Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: Ordner alle 24 h zippen und auf anderen Server schieben
Und ls ohne -l gibt mehrere Files in einer Zeile aus. 'wc -w' tut es auch nicht, sobald Spaces in den Dateinamen sind. Die . und .. kann man rausrechnen, sind konstant.
Edit: gerade mal ausprobiert, hattest Recht: wc -l bringt das richtige Ergebnis.
cu,
niemand
Edit: gerade mal ausprobiert, hattest Recht: wc -l bringt das richtige Ergebnis.
cu,
niemand
-
- Beiträge: 25
- Registriert: 04.02.2012 12:24:45
Re: Ordner alle 24 h zippen und auf anderen Server schieben
Problem gelöst!!
Jetzt muss ich nur noch bis morgen warten, ob der CronJob richtig läuft.
Hier meine Lösung:
Auf dem Gameserver:
Auf dem Downloadserver:
Falls ihr noch Vorschläge zur Verbesserung habt, immer her damit!!
Vielen Dank an alle
mayosemmel
Jetzt muss ich nur noch bis morgen warten, ob der CronJob richtig läuft.
Hier meine Lösung:
Auf dem Gameserver:
Code: Alles auswählen
zip -r /var/www/dl/map.zip /home/user/minecraft/world
Code: Alles auswählen
wget -q -P /home/root buddeltest.dyndns.org/dl/map.zip
datum=$(date +%d.%m.%Y)
cp /home/root/map.zip /var/www/$datum.zip
old_date=$(date --date '-10 days' +%d.%m.%Y)
rm /var/www/$old_date.zip
rm /home/root/map.zip
Vielen Dank an alle
mayosemmel