Skip to content

In development proxmox backup client written in golang, aimed at windows compatibility

License

Notifications You must be signed in to change notification settings

tizbac/proxmoxbackupclient_go

Repository files navigation

This software implements a proxmox backup client software for windows, backup only as of now Works on linux too especially for development

The software is still alpha quality and i take no responsability for any kind of damage or data loss even of source files.

Contributions are welcome especially

  1. GUI with tray icon to show backup progress and backup taking place
  2. Encryption support
  3. A GUI way of configuring it and maybe create a json job file similiar freefilesync does
  4. Async upload / compress and multicore upload + compression of chunks
  5. Proxmox side patch to add another kind of entry to pxar format with Windows security descriptors in it
  6. Support for windows symlinks
  7. Anything interesting you can come up with :)

Usage

A typical command would look like:

proxmoxbackupgo.exe -baseurl "https://yourpbshost:8007" -certfingerprint pbsfingerprint -authid "user@realm!apiid" -secret "apisecret" -backupdir "C:\path\to\backup" -datastore "datastorename"
proxmoxbackupgo.exe
  -authid string
        Authentication ID (PBS Api token)
  -secret string
        Secret for authentication
  -backupdir string
        Backup source directory, must not be symlink
  -baseurl string
        Base URL for the proxmox backup server, example: https://192.168.1.10:8007
  -certfingerprint string
        Certificate fingerprint for SSL connection, example: ea:7d:06:f9...
  -datastore string
        Datastore name
  -namespace string
        Namespace (optional)
  -backup-id string
        Backup ID (optional - if not specified, the hostname is used as the default for host-type backups)
  -pxarout string
        Output PXAR archive for debug purposes (optional)

  -mail-host string
        mail notification system: mail server host(optional)
  -mail-port string
        mail notification system: mail server port(optional)
  -mail-username string
        mail notification system: mail server username(optional)
  -mail-password string
        mail notification system: mail server password(optional)
  -mail-insecure bool
        mail notification system: allow insecure communications(optional)
  -mail-from string
        mail notification system: sender mail(optional)
  -mail-to string
        mail notification system: receiver mail(optional)

  -mail-subject-template string
        mail notification system: mail subject template(optional)
  -mail-body-template string
        mail notification system: mail body template(optional)

  -config string
        Path to JSON config file. If this flag is provided all the others will override the loaded config file

For JSON configuration a JSON example is provided, fill in only the needed fields.

Note on mail templating: Go's templating engine is used for mail subjects and bodies, please refer to the documentation for the syntax. The following variables are available for templating:

  • .NewChunks: number of new chunks created
  • .ReusedChunks: number of chunks reused
  • .Datastore: datastore name
  • .Error: error message if any
  • .Hostname: hostname of the machine
  • .StartTime: time the backup started
  • .EndTime: time the backup ended
  • .Duration: duration of the backup
  • .FromattedDuration: formatted duration of the backup
  • .Success: a boolean telling whether the backup was successful
  • .Status: string representation of the backup status [SUCCESS, FAILURE]

Known Issues

Windows defender antimalware being active will slow backup down up to 25% of attainable speed

There's as of now no mechanism to prevent two instances being launched at same time which will screw up VSS and backup If you using windows planning utility it should theoretically prevent two instances starting at same time when originating from same job

About

In development proxmox backup client written in golang, aimed at windows compatibility

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages