Domanda

Ho appena scoperto che le discariche automatizzati sono stato la creazione del mio repository SVN sono state sempre tagliati fuori presto e in fondo solo la metà della discarica è lì. Non è una situazione di emergenza, ma odio essere in questa situazione. Sconfigge lo scopo di fare backup automatici, in primo luogo.

Il comando che sto utilizzando è al di sotto. Se eseguo manualmente nel terminale, completa bene; il file output.txt è di 16 mega dimensioni, con tutte le 335 revisioni. Ma se lo lascio a crontab, esso balle a metà del percorso, a circa 8,1 mega e solo i primi 169 revisioni.

# m h  dom mon dow   command
18 00 * * * svnadmin dump /var/svn/repos/myproject > /home/andrew/output.txt 

Io in realtà salvare in un file gzip datato, e non c'è carenza di spazio sul server, quindi questo non è un problema di spazio su disco. Sembra cauzione dopo due secondi, quindi questo potrebbe essere un problema di tempo, ma la dimensione del file è lo stesso ogni volta per il mese passato, in modo da non penso che sia che sia. Ha crontab eseguire all'interno di uno spazio di memoria limitata?

È stato utile?

Soluzione

Quindi, io non so quale sia il vero problema è qui, ma se ho percorso la STDERR di svnadmin a / dev / null quando faccio la discarica, tutto va bene. Ho provato ad utilizzare la "tranquilla" bandiera (-q) e riesce anche. Sto assumendo che quando uno script di shell che parte da un crontab incontra abbastanza testo in STRERR, si interrompe l'esecuzione di qualunque è in esecuzione e va all'istruzione successiva. Ho fatto un MD5 su un file manuale e un file di programma e sono identici. Questo sembra essere risolto. Quindi, se qualcuno incontra questo problema se stessi, questo è lo script di shell che ho usato per ottenere con successo oltre la precoce troncamento. E 'un po' prolisso. Scusate.

#!/bin/sh
echo "STARTING AT $(date +\%Y/\%m/\%d/T%I:\%M:\%S)" >> /home/andrew/svnlog.txt
rm /tmp/andrewMobileApp.dump
svnadmin dump /var/svn/repos/andrewMobileApp > /tmp/andrewMobileApp.dump 2>/dev/null
echo "svnadmin exited with code $?" >> /home/andrew/svnlog.txt
gzip -c /tmp/andrewMobileApp.dump > "/home/andrew/svnbackups/andrewMobileApp.dump.$(date +\%Y\%m\%d\%I\%M\%S).txt.gz"
echo "gzip exited with code $?" >> /home/andrew/svnlog.txt
echo "DONE AT $(date +\%Y/\%m/\%d/T%I:\%M:\%S)" >> /home/andrew/svnlog.txt
echo  "-----" >> /home/andrew/svnlog.txt

Questo script viene richiamato attraverso un crontab super-user.

Altri suggerimenti

Prima di tutto, assicurarsi che svnadmin è la variabile d'ambiente PATH del lavoro cron. Potrebbe essere necessario specificare un percorso completo per /usr/bin/svnadmin o qualsiasi altra cosa è appropriato.

Inoltre, piuttosto che svnadmin dump, si consiglia di guardare in svnadmin hotcopy che è uno strumento destinato per i backup del repository.

ho presentato questo come un bug nel pacchetto cron Debian, dal momento che stavo vivendo lì come bene (sotto un vserver). Vedere il bug # 577.133 in Debian. Christian Kastner patchato il bug, aggiungendo il codice di bypassare tutto il codice di elaborazione della posta, se non viene trovata alcuna MTA.

Avete limite di dimensione per la directory degli utenti? Potrebbe voler cercare di dump di temperatura prima.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top