Trigger: Sync only if size / datetime differs

  • Thomas

    Thomas - 2014-07-09


    I have an trigger that backups and syncs the database on the first open per day (checked by a file-exists-rule) with my webpage (because I'm using keepass on several PCs).

    The most time I have to wait ~10 - 20 seconds for the sync although there are no changes on the web version.

    For this reason it would be nice if I could add a rule that compares the file size and datetime of the web database and the local version and run the sync only if it differs.

    best regards

  • Paul

    Paul - 2014-07-09

    The only way I can think of is to create a trigger that runs a batch file / comparison program that updates an environment variable, then have the sync check that variable before it runs.

    cheers, Paul

  • develop1

    develop1 - 2014-07-10

    another idea is to redefine the problem to yield a similar outcome but not take so long.

    It is highly likely that the sync which is currently taking 20 seconds
    would actually only take 2 seconds if both files were local to your PC.

    you can prove that for yourself by creating a local file and syncing to it.

    once you know that a local sync can finish in 2 seconds versus 20
    then all you need to do is use a service such as dropbox (free)
    versus using your own website.

    Basically you would have a file on your pc which is your local .kdbx
    this file need not be protected by dropbox.
    but in addition to the above you would also have a copy of that file
    in a different folder which IS protected by dropbox.

    you would continue to use your local file same as you do today.
    but you modify your trigger to sync with the local dropbox file intead of your website.

    From now on when you open your local .kdbx
    your trigger will force a sync to occur with the local dropbox file.
    we already know that local sync will finish in 2 seconds.

    With the sync complete both your local .kdbx and the dropbox file are identical.

    you are now up/running functional and can proceed with your day.

    Meanwhile a background dropbox service will wake up
    and realize the local dropbox file is newer then the copy on the cloud.

    The dropbox service will push the local dropbox file onto the cloud.
    Once on the cloud the other PC's will realize
    their dropbox copy is old and obtain a new copy automatically from the cloud.

    all the above files copies will occur asynchronously.

    Assuming you have the same/similar trigger on all your PC's.

    When you use keepass on one of your other PC's
    the same/similar 2 second sync will occur and the process will repeat.

    By doing the above you get the similar effect as you do today
    wherein all your PC's have the most current data available
    but your sync now takes 2 seconds not 20.


Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks