Aller au contenu principal

backup

Snapshot a directory and upload it to remote

Usage:
snaper backup files [flags]

Aliases:
files, fs, filesystem

Examples:
snaper backup files /path/to/backup
snaper backup files mybackup

Flags:
--all Backup all directories configured
--concurrent int Number of concurrent workers to use for upload
--configure Only configure the backup without running it
--encryption-key string Encryption key to use for encrypting data
--encryption-key-file string Encryption key file to read for encrypting data
--exclude strings Paths to exclude from backup (separated by commas)
--follow-symlinks Follow symlinks when backing up files
-h, --help help for files
--ignore-existing Check for existing files on S3 and ignore them (only for bug fixing)
--include strings Paths to include in backup (separated by commas)
-n, --name string Name of the backup (optional)
-p, --path string Directory path to backup (optional)
remarque

MySQL et PostgreSQL supportent les connexions par socket. Cette méthode sera essayée par défaut si vous spécifiez "localhost" comme hôte (valeur par défaut). Si vous souhaitez forcer la connexion par TCP/IP, spécifier 127.0.0.1 à la place

Exemples d'utilisation

Sauvegarder un répertoire en excluant des fichiers

# Exclure les répertoires cache et log
snaper backup files /path/to/backup --exclude "var/cache/**,var/log/**"

# Inclure uniquement les fichiers Python, sauf les tests (utilise ** pour la récursivité)
snaper backup files /project --include "**/*.py" --exclude "**/*test*.py,**/*_test.py"

# Exclure tous les node_modules quelle que soit la profondeur
snaper backup files ./app --exclude "**/node_modules/**"

# Exclure tous les fichiers .log quelle que soit la profondeur
snaper backup files /app --exclude "**/*.log"

# Exclure les fichiers .log mais conserver error.log au niveau racine
snaper backup files /app --include "error.log" --exclude "**/*.log"

Options de filtrage

Règles de correspondance

  • Les patterns sont appliqués sur le chemin absolu complet des fichiers. Ex : sauvegarder /home/user avec le pattern Documents/** → correspond à /home/user/Documents/**.

  • Les patterns relatifs sont convertis en absolus :

    • logs/** devient /path/to/backup/logs/**
  • Le slash (/) et les wildcards sont importants :

    • myfile → seulement /path/to/backup/myfile (correspondance exacte à la racine)
    • dir/myfile → seulement /path/to/backup/dir/myfile
    • **/myfile → tout fichier nommé myfile à n'importe quelle profondeur
    • *.log → seulement les fichiers .log au niveau racine
    • **/*.log → tous les fichiers .log à n'importe quelle profondeur
  • Patterns utiles :

    • * → n'importe quelle chaîne sauf / (*.log, cache*)
    • ** → correspond récursivement en incluant / (**/logs/**, **/*.py)
    • ? → un seul caractère (file?.txt)

Ordre de priorité

  1. Les inclusions sont évaluées avant les exclusions.
  2. Si un fichier correspond à la fois, il est exclu.

Exemple :

snaper backup files /project \
--include "**/*.py" \
--exclude "**/*test*.py"

Tous les fichiers Python sont inclus, mais les fichiers de tests sont exclus.