Skip to content

Latest commit

 

History

History
152 lines (127 loc) · 5.42 KB

README.md

File metadata and controls

152 lines (127 loc) · 5.42 KB

Backup Script

fr

Presentation

BackupScript is a bash script that allows you to backup a Linux server or machine directly in Infomaniak's kDrive and/or SwissBackup. It can also use other Rclone configurations for backup destinations. It natively includes support for Zabbix and Grafana as well as Discord notifications. Dashboard Grafana

Prerequisites

Install the necessary packages with the following commands:

apt install -y mariadb-client pv curl zabbix-sender jq bc
curl https://rclone.org/install.sh | sudo bash

If you use Notifications :

apt install -y python3-pip
pip install apprise

Configuration

You must modify 2 lines in the file backup-script.sh : Line 12: configure the path of your configuration file

FILE_CONF="/apps/Backup-Script/backup-script.conf" # Config file

Line 19: If you are not using Zabbix, comment it out, otherwise enter the information <ZABBIX_SERVER> and <HOST_ZABBIX> without the <>

zabbix_sender -z "<ZABBIX_SERVER>" -s "<HOST_ZABBIX>" -k "backup.status" -o "1"

All others parameters must be filled in the file backup-script.conf :

General

VARIABLE DESCRIPTION
DATE Configure the date format
HOUR Configure the time format
WORKFOLDER Configure the working directory (to be excluded from the backup)
SERVER_NAME Configure the server name for the backup folder
BACKUPFOLDER Configure the name of the folder containing the backup
KDRIVE yes/no Enable the kDrive configuration
SWISS_BACKUP yes/no Enable the configuration of Swiss Backup
ZABBIX yes/no Enable monitoring with Zabbix
DISCORD yes/no Enable Discord notifications
DOCKER yes/no Enables dump and backup of containerized databases
FOLDERS Configure the list of folders to back up
EXCLUDE_FOLDERS Configure the list of folders to exclude from backup
EXCLUDE_EXTENSIONS Configure the list of extensions to exclude from the backup
RETENTION_DAYS Number of days before objects are deleted from Swiss Backup
SEGMENT_SIZE Block size for Swiss Backup

kDrive

VARIABLE DESCRIPTION
kd_user Your Infomaniak ID
kd_pass The application password created for the script
kd_folder The path to your backup files in your kDrive

Liens utiles : kDrive : https://www.infomaniak.com/fr/kdrive Application password : https://manager.infomaniak.com/v3/profile/application-password

Swiss Backup

Il all you have to do is put the parameters that you retrieve in the Rclone file by email when creating the device in Swiss Backup.

VARIABLE DESCRIPTION
SB_QUOTA Configure the maximum quota of your Swiss Backup (in go)

Liens utiles : Swiss Backup : https://www.infomaniak.com/en/swiss-backup

Rclone

If you want to use the script with a destination other than kDrive or Swiss Backup, you can! You just have to create the configurations in Rclone and put their name in the following variable:

VARIABLE DESCRIPTION
RCLONE_CONFIGS Rclone configurations to use (separated by spaces)

Liens utiles : Rclone : https://rclone.org

Zabbix

VARIABLE DESCRIPTION
ZABBIX_SENDER Link to zabbix_sender binary
ZABBIX_HOST The name of your HOST in the Zabbix server
ZABBIX_SRV The IP or DDNS of your Zabbix server
ZABBIX_DATA Location of Zabbix temporary data file

Liens utiles : Zabbix : https://www.zabbix.com Tutoriels : https://wiki-tech.io/fr/Supervision

Notifications

VARIABLE DESCRIPTION
NOTIFIER Check https://github.com/caronc/apprise#supported-notifications

Liens utiles : Discord : https://discord.com Configure Webhooks Discord : https://www.digitalocean.com/community/tutorials/how-to-use-discord-webhooks-to-get-notifications-for-your-website-status-on-ubuntu-18-04

Utilisation

Clone the script on your machine:

git clone https://github.com/PAPAMICA/Backup-Script

Go to the folder:

cd Backup-Script

Edit the file backup-script.conf with your settings :

nano backup-script.conf

Run the script :

./backup-script.sh

Cronjob

Start backup every day at 02h

crontab -e
00 02 * * * /apps/Backup-Script/backup-script.sh >> /var/log/BackupScript.log

The available settings

Dry run

With --dry-run you can preview what the script will do before you run it.

List backup

With --list-backup <CONFIG_RCLONE> you can list the backups available in your outsourced storage.

Zabbix send

With --zabbix-send you can force the sending of the latest data collected to Zabbix.

Zabbix

To use backup monitoring with Zabbix, you must import and assign the template to your host Template_Zabbix_App_BackupScript.xml. The first sending of data can be long or failed, do not hesitate to renew with :

./backup-script.sh --zabbix-send

Grafana

You can import the template Template_Grafana_BackupScript.json directly in your Grafana instance. You will need to modify the variable $SERVER in order to use the template correctly.

If my work has been useful to you, do not hesitate to offer me a strawberry milk 😃

"Buy Me A Coffee"