restic-compose-backup/restic_volume_backup/restic.py

86 lines
1.6 KiB
Python

"""
Restic commands
"""
import logging
from subprocess import Popen, PIPE
from restic_volume_backup import commands
logger = logging.getLogger(__name__)
def init_repo(repository):
"""
Attempt to initialize the repository.
Doing this after the repository is initialized
"""
return commands.run([
"restic",
"--cache-dir",
"/restic_cache",
"-r",
repository,
"init",
])
def backup_files(repository, source='/backup'):
return commands.run([
"restic",
"--cache-dir",
"/restic_cache",
"-r",
repository,
"--verbose",
"backup",
source,
])
def backup_mysql_all(repository, host, port, user, password, filename):
"""Backup all mysql databases"""
# -h host, -p password
return commands.run([
'mysqldump',
'--host',
host,
'--port',
port,
'--user',
user,
'--password',
password,
'|',
'restic',
'backup',
'--stdin',
'--stdin-filename',
'dump.sql'
])
def backup_mysql_database(repository, host, port, user, password, filename, database):
"""Backup a single database"""
pass
def snapshots(repository):
return commands.run([
"restic",
"--cache-dir",
"/restic_cache",
"-r",
repository,
"snapshots",
])
def check(repository):
return commands.run([
"restic",
"--cache-dir",
"/restic_cache",
"-r",
repository,
"check",
])