Pour tout problème contactez-nous par mail : support@froggit.fr | La FAQ :grey_question: | Rejoignez-nous sur le Chat :speech_balloon:

Skip to content
Snippets Groups Projects
ynh_backup.sh.j2 1.07 KiB
Newer Older
  • Learn to ignore specific revisions
  • #!/bin/bash
    today="$(date +%Y%m%d)"
    
    number_to_keep="{{ ynh_backup.number_days_to_keep | default("2") }}"
    
    old_backup_list="$(yunohost backup list --output-as plain | head -n -${number_to_keep})"
    
    _good() {
        echo "SUCCESS: ${1}" && exit 0
    }
    
    _fail() {
        echo "ERROR: ${1}" && exit 1
    }
    
    _create_ynh_backup() {
    
      echo "Backing up ${today} YunoHost data now."
      yunohost backup create {% if ynh_backup.system | default(True) %}--system{% endif %}{% if ynh_backup.apps | default(True) %} --apps{% endif %}{% if ynh_backup.directory is defined %} --output-directory {{ ynh_backup.directory }}/backup_"${today}"{% endif %} || _fail "Can't create the local YunoHost backup"
    
      if [ -n "${old_backup_list}" ]; then
        for backup in ${old_backup_list}; do
          echo "Backup ${backup} is 2 days old or more. Purging it now."
          yunohost backup delete "${backup}"
          rm -rf {{ ynh_backup.directory }}/backup_"${backup}"
    
        done
        _good "Purging of old backups completed."
      else
        _good "There is no old backup to be purged."
      fi
    }
    
    _create_ynh_backup
    _prune_old_backup