poniżej robacz wersja skryptu wykonującego pełny backup za pomącą tara ...
</p>
<p>#!/usr/bin/env python</p>
<p>import os<br />
import sys<br />
import tarfile<br />
import datetime<br />
import time<br />
#++++++++++++++++ zmienne +++++++++++++++++++++++++++++=<br />
do_spakowania = "/home/ishido/python"<br />
nosnik_b = "/home/ishido/python"<br />
nazwa_archiwum = "python.tar.gz"<br />
archiwum = os.path.join(nosnik_b, nazwa_archiwum)<br />
#--------------------------------------------------------------<br />
katalog_dziennika = "/home/ishido/log/backup/"<br />
#rodzaj backupu:<br />
#*** 1. full_backup - pelny backup<br />
#*** 2. incr_backup - (incremental) backup przyrostowy<br />
rodzaj_backupu = "full_backup"<br />
#+++++++++++++++++++ pakowanie ++++++++++++++++++++++++++++++++++++++++++++<br />
tar = tarfile.open(archiwum, "w:gz") #---otworz archiwum</p>
<p>def pakuj():<br />
for (path, dirs, files) in os.walk(do_spakowania):<br />
for file in files:<br />
nazwa_pliku = os.path.join(path, file)<br />
tar.add(nazwa_pliku)<br />
#++++++++++++++++++++ logowanie +++++++++++++++++++++++++++++++++++++++<br />
#- - rozmiar archiwum - - - - - - - - - - - - - - - - -<br />
arch0 = os.path.getsize(archiwum)/(10**6) #<br />
log_arch0 = "rozmiar archiwum: %s MB\n" % arch0 #<br />
#- - rozmiar do spakowania - - - - - - - - - - - - - - - - - - - -<br />
rd0 = 0 #<br />
for (path, dirs, files) in os.walk(do_spakowania): #<br />
for file in files: #<br />
filename = os.path.join(path, file) #<br />
rd0 += os.path.getsize(filename) #<br />
log_rd0 = "rozmiar do spakowania: %s MB\n" % (rd0/(10**6)) #<br />
#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<br />
#** plik dziennika **<br />
#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<br />
d = datetime.datetime.now()<br />
dta = d.timetuple()<br />
logfile = "%s_%s%s%s_%s%s%s" % \<br />
(rodzaj_backupu, dta[0], dta[1], dta[2], dta[3], dta[4], dta[5])<br />
sciezka = os.path.join(katalog_dziennika, logfile)<br />
dzn = open(sciezka, 'w') # otwarcie pliku do zapisu<br />
dzn.write(time.ctime())<br />
dzn.write("\n\n")<br />
dzn.write(log_rd0) # zapis rozmiaru do spakowania<br />
dzn.write(log_arch0) # zapis rozmiaru archiwum<br />
#- - - - lista plikow do spakowania do loga- - - - - - - - - - - - - - -<br />
dzn.write('\nZawartosc lokalizacji do spakowania: \n')<br />
for (path, dirs, files) in os.walk(do_spakowania):<br />
for file in files:<br />
filename = os.path.join(path, file)<br />
rozmiar = os.path.getsize(filename)<br />
loko = "%s\t%s" % (rozmiar, filename)<br />
dzn.write(loko)<br />
dzn.write("\n")<br />
#- - zawartosc archiwum do loga - - - - - - - - - - - - - - - - - -<br />
dzn.write('\nZawartosc archiwum: \n')<br />
#- - fajny sposob na zapisywanie do pliku - -<br />
wyjscie = sys.stdout<br />
sys.stdout = dzn<br />
print tar.list()<br />
sys.stdout = wyjscie<br />
dzn.close() # zamkniecie pliku<br />
#===============================================================<br />
#>>>>>>>>>>>>>>>>>>>> kod wykonywalny <<<<<<<<<<<<<<<<<<<<<<<<<<<br />
#===============================================================<br />
pakuj()<br />
tar.close() #---zamknij archiwum<br />
# !!! END OF CODE !!!------------------------------------------------<br />
niestety kod wkleja się bez wcięć więc dla chętnych minimum własnej pracy wymagane
licencja GPL