Skip to content

Conversation

@Tom-Byrne
Copy link
Contributor

Beginnings of work on a script to efficiently back up a large CephFS filesystem. Uses the CephFS rctime to determine what has changed since a given time, and uses rfiles and rbytes to determine the size of individual rsyncs. By default it will do nothing apart from outputting rsync commands to standard output, but can also run the commands after generation.

TODO before merging:

  • write a usage documentation
  • create an example Icinga check for alerting on failed backups

Tom-Byrne added 5 commits June 5, 2020 10:34
   * it uses the rfiles and rbytes to make sure individual rsyncs are not too large
   * it uses the rctime of the source CephFS to only backup directories modified after a specified time
   * it currently prints out rsync commands to stdout
   * added the option for the script to run the rsyncs after generation
   * better error handling for getfattr subprocesses
   * added mount checks for source and destination
   * fixed inconsistent indentation
   * script help message improvements
   * add json summary line when running the rsyncs
   * add timestamps to the info and debug lines
@Tom-Byrne
Copy link
Contributor Author

First attempt at an Icinga script done, and a basic readme added.

@Tom-Byrne
Copy link
Contributor Author

As well as improvements to the backup script logic after review with @ijjorama (thanks!)

Tom-Byrne added 11 commits July 14, 2022 11:28
   * space checking on destination, to prevent filling up the destination filesystem. Our backup destination (a HSM) gets unhappy if it fills up to 100%, so this allows us to keep it happy.
   * support naming of backup jobs, this was needed to support the features added below.
   * pid file checking for existing running jobs. Uses the naming feature to allow tracking of multiple separate jobs.
   * option to redirect output to log files. The log files are named after the job names.
   * config file support, with ability to specify options for named jobs.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant