変更後のファイルの自動バックアップ


2

Windows XPで定期的にいくつかのフォルダーをバックアップしたい。ファイルに変更を加えた後の自動バックアップが最適です。

  • sugarsyncは好きですが、プログラムファイルディレクトリからファイルを同期できません
  • Dropboxは好きですが、バックアップできるのは特定の(カスタマイズ不可の)フォルダー1つだけです

助言がありますか?1つのディレクトリからファイルをdropboxディレクトリにコピーする有料ユーティリティ(商用利用であっても)があれば嬉しいです。

  • 先のフォルダは、同じコンピュータ上に(好ましくは)であってもよいです。
  • ファイルの変更は時々行われます(ファイルは主にソースコードです)。
  • ファイルサイズが非常に小さいです。この時点での合計は10MB未満です

バックアップの宛先はLANまたはリモート上の別のコンピューターですか?インターネットソリューションを見ているように見えますが、これは宛先マシンがLAN上にあってはならないようです。また、すべてのデータのうちどれだけのデータが変更されますか?適切な推奨を行うには、これらの詳細が重要になる場合があります。
スコットマックレニング

@Scott McClenning:質問を更新しました。最後の3つのポイントをご覧ください。
ラデク

回答:


2

ソースコードの追跡には、Gittortoisegit)、MercurialtortoiseSVNrdiff-backupなどを圧縮すること(お好みのバージョンのWinZip7-Zipを選択すること)をお勧めします。

Robocopyは、ディレクトリの変更を監視(/MON:n /MOT:m)して、どこかにコピーを作成できますが、履歴はありません。/MIRスイッチを使用して、宛先を複製します。

これのタッチ部分は、自動で変更時に行われます。

履歴エクスプローラー($ 20)と呼ばれる有料プログラムがあります。これは、変更ごとに保存され、一度セットアップすれば、それについて考える必要はありません。私はそれを持っており、宣伝どおりに機能しているようです。

私が聞いたDocShieldは、歴史エクスプローラに似ている間隔でチェックし、それがうちのいくつかは訴えているバギー。個人での使用は無料だったと聞きましたが、Docshield Webサイトはアクティブではなくなり、一部のサイトではフリーウェアとしてリストされています。彼らがもうビジネスをしていないなら、私がそれを信頼するかどうかはわかりません。

rdiff-backup 1回のショット(数GB)で大量のデータをバックアップしようとすると、問題が発生しました。小さなプロジェクトファイルでは、問題はありませんでした。

これらのいずれかがあなたのお役に立てば幸いです。


/MONのRobocopyはデーモンとして実行されることを意味ですか?
ラデク

私はこれをモニターモードで使用したことはありませんが、読んだことから、変更の数がトリガーされるか、時間が経過するのを待っているループで実行されているようです。ただし、これをバッチファイルにして、スタートアップに追加することはできます。START /minウィンドウの起動を最小化するために使用できることは知っていますが、AutoITなどが必要になります。AutoITのもう1つの利点は、スクリプトをEXEにコンパイルして、スタートアップフォルダーに簡単に配置できることです。
スコットマックレニング

1
@Radek興味をお持ちの方のために、今日、ウェブサイトgiveawayoftheday.comには無料でHistory Explorerがあります。
スコットマックレニング



1

Viceversa Proは非常に堅牢で、毎月約200万のファイルを問題なくバックアップしています。VVEngineを使用すると、バックアップの変更を監視できます。唯一の難点は、無料ではないことです。しかし、それは小さくて速いです。(また、バックアップ、スクリプトをスケジュールし、自動的に結果を電子メールで送信できます)



0

Linuxでは、変更されたファイルのみを構造全体で事前定義されたバックアップフォルダーにコピーするために、以下のバックアップスクリプトを準備しました。ファイルサイズまたは変更日のいずれかが変更された場合、「変更」を定義しました。active-stateを使用すると、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))

0

試してみる必要がありますResilio。個人的には、Wifi、LANなどを介したバックアップジョブに最適な、まだ利用可能なアプリであることがわかりました。個人使用は無料です。彼らの言葉で:BitTorrentの主要なピアツーピア技術を搭載。


はい、なぜ誰かがこれを否定したのかわかりません。私はResilio Syncを使用していますが、驚くほどうまく機能し、無料で堅牢です。ただし、バックアップが必要な場合は、一部のソリューションにすぎません。
アンドリュー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.