Initial commit
This commit is contained in:
commit
b61f8e66dd
18 changed files with 665 additions and 0 deletions
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
config.yaml
|
||||
*.yaml
|
||||
patterns
|
||||
excludes
|
18
README.md
Normal file
18
README.md
Normal file
|
@ -0,0 +1,18 @@
|
|||
# Borgmatic Backup Templates and Scripts
|
||||
|
||||
## Installation
|
||||
|
||||
```
|
||||
git checkout https://git.linux-help.org/Linux-Help/borgmatic-base.git /etc/borgmatic
|
||||
pushd /etc/borgmatic
|
||||
cp config.yaml.tpl config.yaml
|
||||
cp patterns.tpl patterns
|
||||
cp excludes.tpl excludes
|
||||
ln -s ../scripts/post_end postbackup.d/90-post_end
|
||||
popd
|
||||
```
|
||||
|
||||
Once installed and initially setup, you should edit the config.yaml and set:
|
||||
source_directories - Include any additional directories needed if needed.
|
||||
repositories - Add repository locations appropriately.
|
||||
encryption_passphrase - Passphrase for backup, if not using 'none' for encryption.
|
530
config.yaml.tpl
Normal file
530
config.yaml.tpl
Normal file
|
@ -0,0 +1,530 @@
|
|||
# Borgmatic Template
|
||||
|
||||
# Where to look for files to backup, and where to store those backups.
|
||||
# See https://borgbackup.readthedocs.io/en/stable/quickstart.html and
|
||||
# https://borgbackup.readthedocs.io/en/stable/usage/create.html
|
||||
# for details.
|
||||
location:
|
||||
# List of source directories to backup (required). Globs and
|
||||
# tildes are expanded.
|
||||
source_directories:
|
||||
- /home
|
||||
- /root
|
||||
- /etc
|
||||
- /var/log/*
|
||||
- /usr/local/bin
|
||||
- /usr/local/sbin
|
||||
- /opt
|
||||
|
||||
# Paths to local or remote repositories (required). Tildes are
|
||||
# expanded. Multiple repositories are backed up to in
|
||||
# sequence. Borg placeholders can be used. See the output of
|
||||
# "borg help placeholders" for details. See ssh_command for
|
||||
# SSH options like identity file or port. If systemd service
|
||||
# is used, then add local repository paths in the systemd
|
||||
# service file to the ReadWritePaths list.
|
||||
repositories:
|
||||
#- user@backupserver:sourcehostname.borg
|
||||
#- user@backupserver:{fqdn}
|
||||
|
||||
# Stay in same file system (do not cross mount points).
|
||||
# Defaults to false. But when a database hook is used, the
|
||||
# setting here is ignored and one_file_system is considered
|
||||
# true.
|
||||
# one_file_system: true
|
||||
|
||||
# Only store/extract numeric user and group identifiers.
|
||||
# Defaults to false.
|
||||
# numeric_owner: true
|
||||
|
||||
# Store atime into archive. Defaults to true.
|
||||
# atime: false
|
||||
|
||||
# Store ctime into archive. Defaults to true.
|
||||
# ctime: false
|
||||
|
||||
# Store birthtime (creation date) into archive. Defaults to
|
||||
# true.
|
||||
# birthtime: false
|
||||
|
||||
# Use Borg's --read-special flag to allow backup of block and
|
||||
# other special devices. Use with caution, as it will lead to
|
||||
# problems if used when backing up special devices such as
|
||||
# /dev/zero. Defaults to false. But when a database hook is
|
||||
# used, the setting here is ignored and read_special is
|
||||
# considered true.
|
||||
# read_special: false
|
||||
|
||||
# Record bsdflags (e.g. NODUMP, IMMUTABLE) in archive.
|
||||
# Defaults to true.
|
||||
# bsd_flags: true
|
||||
|
||||
# Mode in which to operate the files cache. See
|
||||
# http://borgbackup.readthedocs.io/en/stable/usage/create.html
|
||||
# for details. Defaults to "ctime,size,inode".
|
||||
# files_cache: ctime,size,inode
|
||||
|
||||
# Alternate Borg local executable. Defaults to "borg".
|
||||
# local_path: borg1
|
||||
|
||||
# Alternate Borg remote executable. Defaults to "borg".
|
||||
# remote_path: borg1
|
||||
|
||||
# Any paths matching these patterns are included/excluded from
|
||||
# backups. Globs are expanded. (Tildes are not.) Note that
|
||||
# Borg considers this option experimental. See the output of
|
||||
# "borg help patterns" for more details. Quote any value if it
|
||||
# contains leading punctuation, so it parses correctly.
|
||||
# patterns:
|
||||
# - R /
|
||||
# - '- /home/*/.cache'
|
||||
# - + /home/susan
|
||||
# - '- /home/*'
|
||||
|
||||
# Read include/exclude patterns from one or more separate
|
||||
# named files, one pattern per line. Note that Borg considers
|
||||
# this option experimental. See the output of "borg help
|
||||
# patterns" for more details.
|
||||
patterns_from:
|
||||
- /etc/borgmatic/patterns
|
||||
|
||||
# Any paths matching these patterns are excluded from backups.
|
||||
# Globs and tildes are expanded. See the output of "borg help
|
||||
# patterns" for more details.
|
||||
# exclude_patterns:
|
||||
# - '*.pyc'
|
||||
# - /home/*/.cache
|
||||
# - /etc/ssl
|
||||
|
||||
# Read exclude patterns from one or more separate named files,
|
||||
# one pattern per line. See the output of "borg help patterns"
|
||||
# for more details.
|
||||
exclude_from:
|
||||
- /etc/borgmatic/excludes
|
||||
|
||||
# Exclude directories that contain a CACHEDIR.TAG file. See
|
||||
# http://www.brynosaurus.com/cachedir/spec.html for details.
|
||||
# Defaults to false.
|
||||
exclude_caches: true
|
||||
|
||||
# Exclude directories that contain a file with the given
|
||||
# filenames. Defaults to not set.
|
||||
exclude_if_present:
|
||||
- .nobackup
|
||||
|
||||
# If true, the exclude_if_present filename is included in
|
||||
# backups. Defaults to false, meaning that the
|
||||
# exclude_if_present filename is omitted from backups.
|
||||
# keep_exclude_tags: true
|
||||
|
||||
# Exclude files with the NODUMP flag. Defaults to false.
|
||||
# exclude_nodump: true
|
||||
|
||||
# Path for additional source files used for temporary internal
|
||||
# state like borgmatic database dumps. Note that changing this
|
||||
# path prevents "borgmatic restore" from finding any database
|
||||
# dumps created before the change. Defaults to ~/.borgmatic
|
||||
# borgmatic_source_directory: /tmp/borgmatic
|
||||
|
||||
# Repository storage options. See
|
||||
# https://borgbackup.readthedocs.io/en/stable/usage/create.html and
|
||||
# https://borgbackup.readthedocs.io/en/stable/usage/general.html for
|
||||
# details.
|
||||
storage:
|
||||
# The standard output of this command is used to unlock the
|
||||
# encryption key. Only use on repositories that were
|
||||
# initialized with passcommand/repokey encryption. Note that
|
||||
# if both encryption_passcommand and encryption_passphrase are
|
||||
# set, then encryption_passphrase takes precedence. Defaults
|
||||
# to not set.
|
||||
# encryption_passcommand: secret-tool lookup borg-repository repo-name
|
||||
|
||||
# Passphrase to unlock the encryption key with. Only use on
|
||||
# repositories that were initialized with passphrase/repokey
|
||||
# encryption. Quote the value if it contains punctuation, so
|
||||
# it parses correctly. And backslash any quote or backslash
|
||||
# literals as well. Defaults to not set.
|
||||
# encryption_passphrase: "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"
|
||||
encryption_passphrase: ""
|
||||
|
||||
# Number of seconds between each checkpoint during a
|
||||
# long-running backup. See
|
||||
# https://borgbackup.readthedocs.io/en/stable/faq.html
|
||||
# for details. Defaults to checkpoints every 1800 seconds (30
|
||||
# minutes).
|
||||
# checkpoint_interval: 1800
|
||||
|
||||
# Specify the parameters passed to then chunker
|
||||
# (CHUNK_MIN_EXP, CHUNK_MAX_EXP, HASH_MASK_BITS,
|
||||
# HASH_WINDOW_SIZE). See
|
||||
# https://borgbackup.readthedocs.io/en/stable/internals.html
|
||||
# for details. Defaults to "19,23,21,4095".
|
||||
# chunker_params: 19,23,21,4095
|
||||
|
||||
# Type of compression to use when creating archives. See
|
||||
# http://borgbackup.readthedocs.io/en/stable/usage/create.html
|
||||
# for details. Defaults to "lz4".
|
||||
compression: zstd
|
||||
|
||||
# Remote network upload rate limit in kiBytes/second. Defaults
|
||||
# to unlimited.
|
||||
# remote_rate_limit: 100
|
||||
|
||||
# Directory where temporary files are stored. Defaults to
|
||||
# $TMPDIR
|
||||
# temporary_directory: /path/to/tmpdir
|
||||
|
||||
# Command to use instead of "ssh". This can be used to specify
|
||||
# ssh options. Defaults to not set.
|
||||
# ssh_command: ssh -i /path/to/private/key
|
||||
|
||||
# Base path used for various Borg directories. Defaults to
|
||||
# $HOME, ~$USER, or ~.
|
||||
# borg_base_directory: /path/to/base
|
||||
|
||||
# Path for Borg configuration files. Defaults to
|
||||
# $borg_base_directory/.config/borg
|
||||
# borg_config_directory: /path/to/base/config
|
||||
|
||||
# Path for Borg cache files. Defaults to
|
||||
# $borg_base_directory/.cache/borg
|
||||
# borg_cache_directory: /path/to/base/cache
|
||||
|
||||
# Path for Borg security and encryption nonce files. Defaults
|
||||
# to $borg_base_directory/.config/borg/security
|
||||
# borg_security_directory: /path/to/base/config/security
|
||||
|
||||
# Path for Borg encryption key files. Defaults to
|
||||
# $borg_base_directory/.config/borg/keys
|
||||
# borg_keys_directory: /path/to/base/config/keys
|
||||
|
||||
# Umask to be used for borg create. Defaults to 0077.
|
||||
# umask: 0077
|
||||
|
||||
# Maximum seconds to wait for acquiring a repository/cache
|
||||
# lock. Defaults to 1.
|
||||
lock_wait: 5
|
||||
|
||||
# Name of the archive. Borg placeholders can be used. See the
|
||||
# output of "borg help placeholders" for details. Defaults to
|
||||
# "{hostname}-{now:%Y-%m-%dT%H:%M:%S.%f}". If you specify this
|
||||
# option, you must also specify a prefix in the retention
|
||||
# section to avoid accidental pruning of archives with a
|
||||
# different archive name format. And you should also specify a
|
||||
# prefix in the consistency section as well.
|
||||
# archive_name_format: '{hostname}-documents-{now}'
|
||||
archive_name_format: '{hostname}-{now:%Y-%m-%d}'
|
||||
|
||||
# Bypass Borg error about a repository that has been moved.
|
||||
# Defaults to false.
|
||||
relocated_repo_access_is_ok: true
|
||||
|
||||
# Bypass Borg error about a previously unknown unencrypted
|
||||
# repository. Defaults to false.
|
||||
# unknown_unencrypted_repo_access_is_ok: true
|
||||
|
||||
# Additional options to pass directly to particular Borg
|
||||
# commands, handy for Borg options that borgmatic does not yet
|
||||
# support natively. Note that borgmatic does not perform any
|
||||
# validation on these options. Running borgmatic with
|
||||
# "--verbosity 2" shows the exact Borg command-line
|
||||
# invocation.
|
||||
# extra_borg_options:
|
||||
# Extra command-line options to pass to "borg init".
|
||||
# init: --make-parent-dirs
|
||||
|
||||
# Extra command-line options to pass to "borg prune".
|
||||
# prune: --save-space
|
||||
|
||||
# Extra command-line options to pass to "borg create".
|
||||
# create: --no-files-cache
|
||||
|
||||
# Extra command-line options to pass to "borg check".
|
||||
# check: --save-space
|
||||
|
||||
# Retention policy for how many backups to keep in each category. See
|
||||
# https://borgbackup.readthedocs.io/en/stable/usage/prune.html for
|
||||
# details. At least one of the "keep" options is required for pruning
|
||||
# to work. To skip pruning entirely, run "borgmatic create" or "check"
|
||||
# without the "prune" action. See borgmatic documentation for details.
|
||||
retention:
|
||||
# Keep all archives within this time interval.
|
||||
# keep_within: 3H
|
||||
|
||||
# Number of secondly archives to keep.
|
||||
# keep_secondly: 60
|
||||
|
||||
# Number of minutely archives to keep.
|
||||
# keep_minutely: 60
|
||||
|
||||
# Number of hourly archives to keep.
|
||||
# keep_hourly: 24
|
||||
|
||||
# Number of daily archives to keep.
|
||||
keep_daily: 14
|
||||
|
||||
# Number of weekly archives to keep.
|
||||
keep_weekly: 26
|
||||
|
||||
# Number of monthly archives to keep.
|
||||
keep_monthly: 12
|
||||
|
||||
# Number of yearly archives to keep.
|
||||
keep_yearly: 1
|
||||
|
||||
# When pruning, only consider archive names starting with this
|
||||
# prefix. Borg placeholders can be used. See the output of
|
||||
# "borg help placeholders" for details. Defaults to
|
||||
# "{hostname}-". Use an empty value to disable the default.
|
||||
# prefix: sourcehostname
|
||||
prefix: '{hostname}-'
|
||||
|
||||
# Consistency checks to run after backups. See
|
||||
# https://borgbackup.readthedocs.io/en/stable/usage/check.html and
|
||||
# https://borgbackup.readthedocs.io/en/stable/usage/extract.html for
|
||||
# details.
|
||||
consistency:
|
||||
# List of one or more consistency checks to run: "repository",
|
||||
# "archives", "data", and/or "extract". Defaults to
|
||||
# "repository" and "archives". Set to "disabled" to disable
|
||||
# all consistency checks. "repository" checks the consistency
|
||||
# of the repository, "archives" checks all of the archives,
|
||||
# "data" verifies the integrity of the data within the
|
||||
# archives, and "extract" does an extraction dry-run of the
|
||||
# most recent archive. Note that "data" implies "archives".
|
||||
# checks:
|
||||
# - repository
|
||||
# - archives
|
||||
|
||||
# Paths to a subset of the repositories in the location
|
||||
# section on which to run consistency checks. Handy in case
|
||||
# some of your repositories are very large, and so running
|
||||
# consistency checks on them would take too long. Defaults to
|
||||
# running consistency checks on all repositories configured in
|
||||
# the location section.
|
||||
# check_repositories:
|
||||
# - user@backupserver:sourcehostname.borg
|
||||
|
||||
# Restrict the number of checked archives to the last n.
|
||||
# Applies only to the "archives" check. Defaults to checking
|
||||
# all archives.
|
||||
# check_last: 3
|
||||
|
||||
# When performing the "archives" check, only consider archive
|
||||
# names starting with this prefix. Borg placeholders can be
|
||||
# used. See the output of "borg help placeholders" for
|
||||
# details. Defaults to "{hostname}-". Use an empty value to
|
||||
# disable the default.
|
||||
# prefix: sourcehostname
|
||||
prefix: '{hostname}-'
|
||||
|
||||
# Options for customizing borgmatic's own output and logging.
|
||||
# output:
|
||||
# Apply color to console output. Can be overridden with
|
||||
# --no-color command-line flag. Defaults to true.
|
||||
# color: false
|
||||
|
||||
# Shell commands, scripts, or integrations to execute at various
|
||||
# points during a borgmatic run. IMPORTANT: All provided commands and
|
||||
# scripts are executed with user permissions of borgmatic. Do not
|
||||
# forget to set secure permissions on this configuration file (chmod
|
||||
# 0600) as well as on any script called from a hook (chmod 0700) to
|
||||
# prevent potential shell injection or privilege escalation.
|
||||
hooks:
|
||||
# List of one or more shell commands or scripts to execute
|
||||
# before creating a backup, run once per configuration file.
|
||||
# before_backup:
|
||||
# - echo "Starting a backup."
|
||||
before_backup:
|
||||
- run-parts /etc/borgmatic/prebackup.d
|
||||
|
||||
# List of one or more shell commands or scripts to execute
|
||||
# before pruning, run once per configuration file.
|
||||
# before_prune:
|
||||
# - echo "Starting pruning."
|
||||
|
||||
# List of one or more shell commands or scripts to execute
|
||||
# before consistency checks, run once per configuration file.
|
||||
# before_check:
|
||||
# - echo "Starting checks."
|
||||
|
||||
# List of one or more shell commands or scripts to execute
|
||||
# before extracting a backup, run once per configuration file.
|
||||
# before_extract:
|
||||
# - echo "Starting extracting."
|
||||
|
||||
# List of one or more shell commands or scripts to execute
|
||||
# after creating a backup, run once per configuration file.
|
||||
# after_backup:
|
||||
# - echo "Finished a backup."
|
||||
after_backup:
|
||||
- run-parts /etc/borgmatic/postbackup.d
|
||||
|
||||
# List of one or more shell commands or scripts to execute
|
||||
# after pruning, run once per configuration file.
|
||||
# after_prune:
|
||||
# - echo "Finished pruning."
|
||||
|
||||
# List of one or more shell commands or scripts to execute
|
||||
# after consistency checks, run once per configuration file.
|
||||
# after_check:
|
||||
# - echo "Finished checks."
|
||||
|
||||
# List of one or more shell commands or scripts to execute
|
||||
# after extracting a backup, run once per configuration file.
|
||||
# after_extract:
|
||||
# - echo "Finished extracting."
|
||||
|
||||
# List of one or more shell commands or scripts to execute
|
||||
# when an exception occurs during a "prune", "create", or
|
||||
# "check" action or an associated before/after hook.
|
||||
# on_error:
|
||||
# - echo "Error during prune/create/check."
|
||||
|
||||
# List of one or more shell commands or scripts to execute
|
||||
# before running all actions (if one of them is "create").
|
||||
# These are collected from all configuration files and then
|
||||
# run once before all of them (prior to all actions).
|
||||
# before_everything:
|
||||
# - echo "Starting actions."
|
||||
|
||||
# List of one or more shell commands or scripts to execute
|
||||
# after running all actions (if one of them is "create").
|
||||
# These are collected from all configuration files and then
|
||||
# run once after all of them (after any action).
|
||||
# after_everything:
|
||||
# - echo "Completed actions."
|
||||
|
||||
# List of one or more PostgreSQL databases to dump before
|
||||
# creating a backup, run once per configuration file. The
|
||||
# database dumps are added to your source directories at
|
||||
# runtime, backed up, and removed afterwards. Requires
|
||||
# pg_dump/pg_dumpall/pg_restore commands. See
|
||||
# https://www.postgresql.org/docs/current/app-pgdump.html and
|
||||
# https://www.postgresql.org/docs/current/libpq-ssl.html for
|
||||
# details.
|
||||
# postgresql_databases:
|
||||
# Database name (required if using this hook). Or
|
||||
# "all" to dump all databases on the host. Note
|
||||
# that using this database hook implicitly enables
|
||||
# both read_special and one_file_system (see
|
||||
# above) to support dump and restore streaming.
|
||||
# - name: users
|
||||
|
||||
# Database hostname to connect to. Defaults to
|
||||
# connecting via local Unix socket.
|
||||
# hostname: database.example.org
|
||||
|
||||
# Port to connect to. Defaults to 5432.
|
||||
# port: 5433
|
||||
|
||||
# Username with which to connect to the database.
|
||||
# Defaults to the username of the current user.
|
||||
# You probably want to specify the "postgres"
|
||||
# superuser here when the database name is "all".
|
||||
# username: dbuser
|
||||
|
||||
# Password with which to connect to the database.
|
||||
# Omitting a password will only work if PostgreSQL
|
||||
# is configured to trust the configured username
|
||||
# without a password, or you create a ~/.pgpass
|
||||
# file.
|
||||
# password: trustsome1
|
||||
|
||||
# Database dump output format. One of "plain",
|
||||
# "custom", "directory", or "tar". Defaults to
|
||||
# "custom" (unlike raw pg_dump). See pg_dump
|
||||
# documentation for details. Note that format is
|
||||
# ignored when the database name is "all".
|
||||
# format: directory
|
||||
|
||||
# SSL mode to use to connect to the database
|
||||
# server. One of "disable", "allow", "prefer",
|
||||
# "require", "verify-ca" or "verify-full".
|
||||
# Defaults to "disable".
|
||||
# ssl_mode: require
|
||||
|
||||
# Path to a client certificate.
|
||||
# ssl_cert: /root/.postgresql/postgresql.crt
|
||||
|
||||
# Path to a private client key.
|
||||
# ssl_key: /root/.postgresql/postgresql.key
|
||||
|
||||
# Path to a root certificate containing a list of
|
||||
# trusted certificate authorities.
|
||||
# ssl_root_cert: /root/.postgresql/root.crt
|
||||
|
||||
# Path to a certificate revocation list.
|
||||
# ssl_crl: /root/.postgresql/root.crl
|
||||
|
||||
# Additional pg_dump/pg_dumpall options to pass
|
||||
# directly to the dump command, without performing
|
||||
# any validation on them. See pg_dump
|
||||
# documentation for details.
|
||||
# options: --role=someone
|
||||
|
||||
# List of one or more MySQL/MariaDB databases to dump before
|
||||
# creating a backup, run once per configuration file. The
|
||||
# database dumps are added to your source directories at
|
||||
# runtime, backed up, and removed afterwards. Requires
|
||||
# mysqldump/mysql commands (from either MySQL or MariaDB). See
|
||||
# https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html or
|
||||
# https://mariadb.com/kb/en/library/mysqldump/ for details.
|
||||
# mysql_databases:
|
||||
# Database name (required if using this hook). Or
|
||||
# "all" to dump all databases on the host. Note
|
||||
# that using this database hook implicitly enables
|
||||
# both read_special and one_file_system (see
|
||||
# above) to support dump and restore streaming.
|
||||
# - name: users
|
||||
|
||||
# Database hostname to connect to. Defaults to
|
||||
# connecting via local Unix socket.
|
||||
# hostname: database.example.org
|
||||
|
||||
# Port to connect to. Defaults to 3306.
|
||||
# port: 3307
|
||||
|
||||
# Username with which to connect to the database.
|
||||
# Defaults to the username of the current user.
|
||||
# username: dbuser
|
||||
|
||||
# Password with which to connect to the database.
|
||||
# Omitting a password will only work if MySQL is
|
||||
# configured to trust the configured username
|
||||
# without a password.
|
||||
# password: trustsome1
|
||||
|
||||
# Additional mysqldump options to pass directly to
|
||||
# the dump command, without performing any
|
||||
# validation on them. See mysqldump documentation
|
||||
# for details.
|
||||
# options: --skip-comments
|
||||
|
||||
# Healthchecks ping URL or UUID to notify when a backup
|
||||
# begins, ends, or errors. Create an account at
|
||||
# https://healthchecks.io if you'd like to use this service.
|
||||
# See borgmatic monitoring documentation for details.
|
||||
# healthchecks: https://hc-ping.com/your-uuid-here
|
||||
|
||||
# Cronitor ping URL to notify when a backup begins, ends, or
|
||||
# errors. Create an account at https://cronitor.io if you'd
|
||||
# like to use this service. See borgmatic monitoring
|
||||
# documentation for details.
|
||||
# cronitor: https://cronitor.link/d3x0c1
|
||||
|
||||
# PagerDuty integration key used to notify PagerDuty when a
|
||||
# backup errors. Create an account at
|
||||
# https://www.pagerduty.com/ if you'd like to use this
|
||||
# service. See borgmatic monitoring documentation for details.
|
||||
# pagerduty: a177cad45bd374409f78906a810a3074
|
||||
|
||||
# Cronhub ping URL to notify when a backup begins, ends, or
|
||||
# errors. Create an account at https://cronhub.io if you'd
|
||||
# like to use this service. See borgmatic monitoring
|
||||
# documentation for details.
|
||||
# cronhub: https://cronhub.io/start/1f5e3410-254c-11e8-b61d-55875966d01
|
||||
|
||||
# Umask used when executing hooks. Defaults to the umask that
|
||||
# borgmatic is run with.
|
||||
# umask: 0077
|
0
excludes.tpl
Normal file
0
excludes.tpl
Normal file
0
patterns.tpl
Normal file
0
patterns.tpl
Normal file
0
postbackup.d/.do-not-delete
Normal file
0
postbackup.d/.do-not-delete
Normal file
0
prebackup.d/.do-not-delete
Normal file
0
prebackup.d/.do-not-delete
Normal file
4
scripts/post_end
Executable file
4
scripts/post_end
Executable file
|
@ -0,0 +1,4 @@
|
|||
#!/bin/bash
|
||||
|
||||
rm -rf "$HOME/.borgmatic/restore"
|
||||
|
3
scripts/post_endmacos
Executable file
3
scripts/post_endmacos
Executable file
|
@ -0,0 +1,3 @@
|
|||
#!/bin/bash
|
||||
|
||||
rm -rf "$HOME/restore"
|
4
scripts/post_gitea
Executable file
4
scripts/post_gitea
Executable file
|
@ -0,0 +1,4 @@
|
|||
#!/bin/bash
|
||||
|
||||
rm -rf /backups/git/gitea
|
||||
|
4
scripts/post_postgresql
Executable file
4
scripts/post_postgresql
Executable file
|
@ -0,0 +1,4 @@
|
|||
#!/bin/bash
|
||||
|
||||
rm -rf /backups/database/postgresql
|
||||
|
34
scripts/pre_debian
Executable file
34
scripts/pre_debian
Executable file
|
@ -0,0 +1,34 @@
|
|||
#!/bin/bash
|
||||
|
||||
if [[ -d /etc/restore ]]; then
|
||||
rm -rf /etc/restore
|
||||
fi
|
||||
|
||||
mkdir /etc/restore
|
||||
dpkg --get-selections > /etc/restore/Package.list
|
||||
aptitude search --disable-columns -F%p '~i!~M!~v' > /etc/restore/InstallOnly.list
|
||||
#apt-key exportall > /etc/restore/Repo.keys
|
||||
rsync -avhHi /etc/apt/trusted.gpg.d /etc/restore/
|
||||
|
||||
cat > /etc/restore/restore.sh <<EOF
|
||||
#!/bin/bash
|
||||
|
||||
#apt-key add /etc/restore/Repo.keys
|
||||
#dpkg --set-selections < /etc/restore/Package.list
|
||||
#apt-get dselect-upgrade
|
||||
|
||||
install=""
|
||||
|
||||
dpkg-query -l 'rsync' &>/dev/null || install+=" rsync"
|
||||
dpkg-query -l 'aptitude' &>/dev/null || install+=" aptitude"
|
||||
dpkg-query -l 'borgbackup' &>/dev/null || install+=" borgbackup"
|
||||
dpkg-query -l 'borgmatic' &>/dev/null || install+=" borgmatic"
|
||||
|
||||
if [[ -n "\$install" ]]; then
|
||||
apt -y install \$install
|
||||
fi
|
||||
|
||||
rsync --ignore-existing -raz /etc/restore/trusted.gpg.d/ /etc/apt/trusted.gpg.d/
|
||||
xargs aptitude --schedule-only install < /etc/restore/InstallOnly.list
|
||||
aptitude install
|
||||
EOF
|
12
scripts/pre_fedora
Executable file
12
scripts/pre_fedora
Executable file
|
@ -0,0 +1,12 @@
|
|||
#!/bin/bash
|
||||
|
||||
restoreDir="$HOME/.borgmatic/restore"
|
||||
mkdir -p "$restoreDir"
|
||||
rpm -qa | sort > "${restoreDir}/Package.versions.list"
|
||||
rpm -qa --queryformat '%{NAME}.%{ARCH}\n' | sort > "${restoreDir}/etc/restore/Package.list"
|
||||
|
||||
cat > "${restoreDir}/restore.sh" <<EOF
|
||||
#!/bin/bash
|
||||
|
||||
dnf install \$(cat \"\${HOME}/.borgmatic/restore/Package.list\")
|
||||
EOF
|
7
scripts/pre_gitea
Executable file
7
scripts/pre_gitea
Executable file
|
@ -0,0 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
giteaDir="${HOME}/.borgmatic/gitea"
|
||||
backupDate=$(date +"%Y-%m-%d")
|
||||
|
||||
mkdir -p "$giteaDir"
|
||||
sudo -u git /home/gitea/bin/gitea dump --type tar.xz --file - > "${giteaDir}/gitea-dump-${backupDate}.tar.xz"
|
22
scripts/pre_macos
Executable file
22
scripts/pre_macos
Executable file
|
@ -0,0 +1,22 @@
|
|||
#!/bin/bash
|
||||
|
||||
restoreDir="$HOME/.borgmatic/restore"
|
||||
|
||||
mkdir -p "$restoreDir"
|
||||
pushd "$restoreDir" || exit
|
||||
brew bundle dump
|
||||
|
||||
cat > "${restoreDir}/restore.sh" <<EOF
|
||||
#!/bin/bash
|
||||
|
||||
if which brew; then
|
||||
echo "Installing Homebrew Bundle"
|
||||
brew bundle
|
||||
else
|
||||
echo "Install Homebrew first using the following:"
|
||||
echo '/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)'
|
||||
echo "Re-run restore.sh after installing Homebrew to install Homebrew Bundle"
|
||||
fi
|
||||
EOF
|
||||
|
||||
popd || exit
|
8
scripts/pre_postgresql
Executable file
8
scripts/pre_postgresql
Executable file
|
@ -0,0 +1,8 @@
|
|||
#!/bin/bash
|
||||
|
||||
state=$(nc 127.0.0.1 5400)
|
||||
|
||||
if [[ "$state" != "MASTER" ]]; then
|
||||
/usr/local/sbin/pg_backup -c /etc/postgresql/9.6/main/pg_backup.config
|
||||
fi
|
||||
|
4
scripts/pre_solus
Executable file
4
scripts/pre_solus
Executable file
|
@ -0,0 +1,4 @@
|
|||
#!/bin/bash
|
||||
|
||||
mkdir /etc/restore
|
||||
eopkg li > /etc/restore/packages.list
|
11
scripts/pre_suse
Executable file
11
scripts/pre_suse
Executable file
|
@ -0,0 +1,11 @@
|
|||
#!/bin/bash
|
||||
|
||||
mkdir /etc/restore
|
||||
rpm -qa | sort > /etc/restore/Package.versions.list
|
||||
rpm -qa --queryformat '%{NAME}\n' | sort > /etc/restore/Package.list
|
||||
|
||||
cat > /etc/restore/restore.sh <<EOF
|
||||
#!/bin/bash
|
||||
|
||||
cat /etc/restore/Package.list | xargs sudo zypper install
|
||||
EOF
|
Loading…
Reference in a new issue