Backup Plugin

The lack of OnExit means I am going to have to keep my AutoIt script and modify it to run your Tools > Create Backup and then close Joplin, so could you

  1. Fix a keyboard short cut for it or guarantee it’s always the bottom entry in the tools menu?

  2. Place a ‘done’ file in the timestamped folder for me to monitor so I know when to close Joplin?

Thanks for this plugin. :slight_smile:

I tried Simple Backup v0.4.1, in Joplin 1.7.10 with single JEX option. Resources wasn’t be saved in the backup.

@anon55947162

Resources wasn’t be saved in the backup.

Do you mean the .resource folder?
The resources are stored in the jex file!

1 Like

Yes I meant in the .jex backup file. Yesterday the file backup was very small compared to my last .jex file backup without the plugin. And when I imported the backup file from the plugjn, the images were missing in the notes (replaced by :Capture )

And today it’s working correctly ! :thinking: :sweat_smile:

I was thinking maybe it is because I put one other plugin. Tried it today again and again with a fresh joplin 1.7.11 and it's still working well. :smile:

Hey, thanks for this great plugin.

Would it be possible to have a custom pattern for the daily folder name?
Currently, it's YYYYMMDDhhmm and I would like something like YYYY-MM-DD_SomeCustomText, mostly for readability. Maybe using a similar format to Joplin templates, which are using moment.js formatting.

Can confirm working as intended on Pop_OS! Linux (Based on Ubuntu 20.10)

Hope you don't mind a ... (silly) question. What is the benefit over just using manual JEX backups, and what kind of user would benefit most ?
I read your gh page, and I see css and keymap is backed up, but isn't this data anyway which do rarely change and can be easily restored after ... I don't know ... a major problem requiring a re-install of everything ?

What is the benefit of any automatic backup system over manual backups? Clearly this is a sizeable software segment, which indicates users do see value in automating this process.

So this is about "automation", not about what is backup-ed (as I innocently assumed) ?

Correct, If you only look at the notes, the same is saved with the plugin or with a JEX export.

No is not planed at the moment.

v0.5.0 (2021-02-07)

  • Add: Option for Backuplogfile
  • Add: Option to create a backup only if something has changed #3
2 Likes

The text Create a automatic backup only on a change. is a bit confusing. (Also it would be "...an automatic...")

This basically means: every time there's a change, make a backup. With a note being saved evey 5 seconds when you type, there would be a backup every few seconds.

I seriously doubt you meant that.

Thus I'd change this entire text:

Only on change
Create a automatic backup only on a change.
1 Like

Love your plugin, @JackGruber.

Would you consider a setting to allow the user to set a custom path for the backup.log? I guess that would mean the same log across all backup instances, but might be easier to manage. (My use case is: I keep many of this kind of log in a specific location, so that they can quickly be checked periodically to confirm all continues to work as expected).

As your plugin stands, it's very reliable and does a great job, I really like that is separates each notebook into it's own jex file, that's ideal for a restoring a single note you've lost or messed up, so regardless a big :+1: from here. :slightly_smiling_face:

4 Likes

I seem to have gotten myself into trouble. I downloaded this plugin. Then did the automatic install which placed the plugin into my plugins folder. Then tools/options produced this page which forces a quit. As long as I don't do tools options, I seem to be fine. All data seems intact.

Error
Joplin encountered a fatal error and could not continue. To report the error, please copy the entire content of this page and post it on Joplin forum or GitHub.

Message
md.options is not a function

Version info
Joplin for Desktop

Copyright © 2016-2021 Laurent Cozic
Joplin 1.6.7 (prod, win32)

Client ID: c3759352f83d4713894a8a547eb380d6
Sync Version: 2
Profile Version: 34
Keychain Supported: Yes

Revision: b74b84983 (master)
Stack trace
TypeError: md.options is not a function
at ConfigScreenComponent.settingToComponent (C:\Users\ss\AppData\Local\Programs\Joplin\resources\app.asar\gui\ConfigScreen\ConfigScreen.js:331:39)
at createSettingComponents (C:\Users\ss\AppData\Local\Programs\Joplin\resources\app.asar\gui\ConfigScreen\ConfigScreen.js:144:42)
at ConfigScreenComponent.sectionToComponent (C:\Users\ss\AppData\Local\Programs\Joplin\resources\app.asar\gui\ConfigScreen\ConfigScreen.js:149:30)
at Object.shared.settingsToComponents2 (C:\Users\ss\AppData\Local\Programs\Joplin\resources\app.asar\node_modules@joplin\lib\components\shared\config-shared.js:184:28)
at ConfigScreenComponent.render (C:\Users\ss\AppData\Local\Programs\Joplin\resources\app.asar\gui\ConfigScreen\ConfigScreen.js:528:37)
at finishClassComponent (C:\Users\ss\AppData\Local\Programs\Joplin\resources\app.asar\node_modules\react-dom\cjs\react-dom.development.js:17039:31)
at updateClassComponent (C:\Users\ss\AppData\Local\Programs\Joplin\resources\app.asar\node_modules\react-dom\cjs\react-dom.development.js:16994:24)
at beginWork$1 (C:\Users\ss\AppData\Local\Programs\Joplin\resources\app.asar\node_modules\react-dom\cjs\react-dom.development.js:18505:16)
at HTMLUnknownElement.callCallback (C:\Users\ss\AppData\Local\Programs\Joplin\resources\app.asar\node_modules\react-dom\cjs\react-dom.development.js:347:14)
at Object.invokeGuardedCallbackDev (C:\Users\ss\AppData\Local\Programs\Joplin\resources\app.asar\node_modules\react-dom\cjs\react-dom.development.js:397:16)
Component stack

in ConfigScreenComponent (created by Connect(ConfigScreenComponent))
in Connect(ConfigScreenComponent) (created by NavigatorComponent)
in div (created by NavigatorComponent)
in NavigatorComponent (created by Connect(NavigatorComponent))
in Connect(NavigatorComponent) (created by RootComponent)
in ThemeProvider (created by RootComponent)
in StyleSheetManager (created by RootComponent)
in RootComponent (created by Connect(RootComponent))
in Connect(RootComponent)
in ErrorBoundary
in Provider

Oops. Never mind. I checked and found I was on an earlier version. Updated to latest and all is fine.

You are right

I am considering this for the next update.

Great plugin! Thanks so much.

I just got an error that the backup path was not set. It had been backing up fine for a couple of week. The path field is indeed empty now. I replaced it and it worked fine.

Just wanted to mention it in case it was a bug. I'm using .5.2 and Joplin 1.7.11

This is really useful, thank you! Works great here on Ubuntu 20.04. Some random thoughts:

I understand the value of having individual JEX files for each notebook -- given Joplin's current restore capabilities, the separation obviously helps make restore easier for use cases outside of total disaster recovery.

But I am also naturally attracted to the simplicity of having all the user data self-contained in a single JEX archive file -- so the users & developer don't have to worry as much about messy issues of filesystems and the attendant potential bugs (directory layout, naming scheme and conflicts, filename character limitations, etc.).

I wonder if there is a way to get the best of both worlds.

Check the plugin's options:
image