Ich führe eine Rails-Anwendung auf meinem Ubuntu 12.04-Server aus. Ich habe einen Cron-Job eingerichtet, um jeden Morgen um 2 Uhr eine Sicherungskopie aller in meine Anwendung hochgeladenen Dateien zu erstellen. Das sind eine Menge Dateien (ca. 900 MB). Aber wenn die Benutzer die App später am Morgen verwenden müssen, können sie darauf zugreifen. Ich habe mich also mit SSH angemeldet (was unglaublich langsam ist), als ich endlich da war, habe ich einen Top-Befehl ausgeführt und sehe, dass der Gzip-Prozess alle Top 10 füllt. Sie sind ziemlich klein, aber ich vermute, es gibt noch mehr davon.
Dies ist der Tar-Befehl, der ausgeführt wird
tar -cvzf $BASEBACKUP/uploads-$DATE.tar.gz /var/www/bptrial/current/public/uploads/* --exclude=tmp
Meine Crontab
* 2 * * * cd /home/user/backup && sh mysql_backup.sh && sh files_backup.sh >> /tmp/cron.log
Sollte es wirklich so viele Stunden dauern, 900 MB an Dateien zu komprimieren? Und warum müssen dafür alle Ressourcen verbraucht werden?
Antwort1
Ich denke, fkraiem hat recht.
Um es genauer zu erläutern:
Laut den Crontab-Manpages
user@host $ man 5 crontab
Die Zeit- und Datumsfelder sind:
field allowed values
----- --------------
minute 0-59
hour 0-23
day of month 1-31
month 1-12 (or names, see below)
day of week 0-7 (0 or 7 is Sun, or use names)
A field may be an asterisk (*), which always stands for ``first-last''.
Unter deinem Kommando
#m h dom mon dow command
* 2 * * * cd /home/user/backup...
Sie meinen: JEDE Minute der zweiten Stunde jedes Tages jedes Monats jedes Wochentags. Mit anderen Worten: Jede Minute um 2 Uhr morgens wird eine weitere Instanz des von Ihnen angegebenen Befehls gestartet.