2

Я хочу регулярно создавать резервные копии нескольких папок в Windows XP. Лучшим будет автоматическое резервное копирование после внесения любых изменений в файлы.

  • Мне нравится Sugarsync, но я не могу синхронизировать файлы из каталога программных файлов
  • Мне нравится Dropbox, но я могу сделать резервную копию только одной определенной (не настраиваемой) папки

какие-либо предложения? Я счастлив иметь некоторую платную утилиту (даже для коммерческого использования), которая будет копировать файлы из одного каталога в каталог dropbox ....

  • Папка назначения может быть (желательно) на том же компьютере.
  • Изменения файлов происходят время от времени (файлы в основном исходный код).
  • Размер файла очень маленький. Все вместе в это время составляет менее 10 МБ

7 ответов7

2

Для отслеживания исходного кода я бы порекомендовал что-то вроде Git (tortoisegit), Mercurial, tortoiseSVN, rdiff-backup или даже архивирования (выберите свою любимую версию WinZip, 7-Zip..).

Robocopy может отслеживать каталог изменений (/MON:n /MOT:m) и делать копии где-либо, но истории нет. Используйте переключатель /MIR чтобы сделать назначение дубликатом.

Сенсорная часть этого - автоматическая и на смену.

Существует платная программа под названием History Explorer (20 долларов), которая будет экономить на изменениях, и после настройки вам не нужно об этом думать. У меня есть, и, кажется, работает как рекламируется.

Я слышал, что DocShield похож на History Explorer, периодически проверяет, и некоторые жаловались, что он глючит. Я слышал, что это бесплатно для личного использования, но сайт Docshield больше не активен, и на некоторых сайтах он указан как бесплатное. Не уверен, доверю ли я этому, если они больше не будут в бизнесе.

rdiff-backup Я столкнулся с проблемой, пытаясь сделать резервную копию слишком большого количества данных за один снимок (несколько ГБ). На небольших файлах проекта у меня не было проблем.

Я надеюсь, что один из них поможет вам.

1

Genie Timeline бесплатное издание.

1

robocopy может отражать две папки.

1

Viceversa Pro достаточно надежен, я без проблем создаю резервные копии около двух миллионов файлов в месяц, а с помощью VVEngine вы можете отслеживать изменения для их резервного копирования. Единственный улов в том, что это не бесплатно. Но это маленький и быстрый. (также вы можете запланировать резервное копирование, сценарии и автоматически отправлять результаты по электронной почте)

1

Я пошел за Ядис!Резервное копирование это

  • свободно
  • маленький
  • легко использовать

и делает то, что я хочу :-)

0

Надо попробовать Resilio. Лично я нашел это лучшее, но доступное приложение для резервного копирования по Wi-Fi, локальной сети и т.д. Бесплатно для индивидуального использования. По их словам: Приведено в действие ведущей одноранговой технологией BitTorrent.

0

В Linux я подготовил приведенный ниже скрипт резервного копирования для копирования только измененных файлов в предварительно заданную папку резервных копий со всей структурой. Я определил "изменен", если изменяется либо размер файла, либо дата изменения. Используя активное состояние, вы можете реализовать это и в Windows:

import os
import os.path
import sys
import time
from datetime import datetime
import shutil

backup_loc = '/media/prahlad/terabyte/backup'

locations = ['/home/prahlad/docs',
    '/home/prahlad/source',
    '/home/prahlad/scripts',
    '/home/prahlad/library',
    '/home/prahlad/programs',
    '/home/prahlad/staging',
    '/home/prahlad/soft',
    '/home/prahlad/Desktop',
    '/home/prahlad/Downloads',
    '/home/prahlad/Pictures',
    '/home/prahlad/videos',
    '/home/prahlad/movies',
    '/home/prahlad/songs',
    ]


if __name__ == "__main__":
    #loop thru the folders
    start = time.clock()
    num=0
    for s in locations: #[0:1]:
        #print s + "\n"
        #files = os.listdir(s)
        print 'listing for '  + s
        for (root, dirs, files) in os.walk(s):
            #CON_LEN = 120
            #print root, " contains"
            #subpath = root[len(s)+1:]
            subpath = root.replace('/home/prahlad','')
            #~ for d in dirs:
                #~ #create corresponding structure on backup if it doesn't exist
                #~ print 'backup loc:',backup_loc
                #~ print 'subpath:',subpath
                #~ print 'd:',d
                #~ print 's:',s
                #~ #os.sepchar
                #~ #destdir = os.path.join(backup_loc, subpath, d) #some how backup_loc is not being considered
                #~ destdir = backup_loc + subpath + os.sep +  d
                #~ if not os.path.exists(destdir):
                    #~ print 'creating directory ' + destdir
                    #~ #print 'creating directory ' + destdir
                    #~ os.makedirs(destdir)

            for f in files:
                #print 'root: ' + root
                #print 'file: ' + f
                #print 'split: ' + root[len(s)+1:], len(root[len(s)+1:])
                #message = os.path.join(root,f) + '~~~~' + os.path.join(backup_loc,subpath,f)
                filename = os.path.join(root, f)
                #dfilename = os.path.join(backup_loc,subpath,f)
                dfilename = backup_loc + subpath + os.sep + f
                link = ''
                if os.path.islink(filename):
                    link = os.readlink(filename)


                if not os.path.exists(dfilename):
                    #check dirs
                    if not os.path.exists(backup_loc + subpath):
                        os.makedirs(backup_loc + subpath)
                        print 'creating directory: ' + backup_loc + subpath

                    #just copy the files
                    print 'copying from: ' + filename
                    print 'to: ' + dfilename
                    if link == '':
                        shutil.copy2(filename, dfilename)
                    else:
                        os.symlink(link, dfilename)
                    num+=1
                else:
                    sz = os.path.getsize(filename); lm = datetime.fromtimestamp(os.path.getmtime(filename)).timetuple()
                    dsz = os.path.getsize(dfilename); dlm = datetime.fromtimestamp(os.path.getmtime(dfilename)).timetuple()

                    if (sz == dsz and lm == dlm):
                        print 'skipped: ' + dfilename
                        #time.sleep(3)
                    else:
                        #copy the files
                        print 'copying from: ' + filename
                        print 'to: ' + dfilename
                        if link == '':
                            shutil.copy2(filename, dfilename)
                        else:
                            os.symlink(link, dfilename)
                        num+=1

    mins = (time.clock() - start)
    #print "All files copied in %d minutes" % mins
    print "{0} files copied in {1} minutes".format(int(num), round(mins))

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .