Coucou,
Y'a en effet rClone qui est 'achement plus moderne. Mais je continue d'utiliser sur certains serveurs de "vieux" outils et scripts perso. Par exemple pour envoyer un fichier sur MEGA tu as les MEGATOOLS et un exemple de script.
Un autre exemple de script pour dumper ton SQL mais en le chiffrant (via AES)... C'est toujours mieux surtout si tu veux le mettre sur un Cloud.
Dump SQL
# Variables ...... : A définir ici et ne pas modifier la suite du script
# SQL_USER ....... : Compte de connexion MYSQL
# SQL PWD ........ : Mot de passe du compte de connexion MYSQL
# SQL_DB ......... : Base de données à extraire
# DIR ............ : Dossier de sauvegarde (répertoire caché dans l'exemple)
# DAYS ........... : Nombre de jours de conservation des sauvegardes avant effacement de la plus ancienne selon sa date de création
# AES_PWD ........ : Mot de passe du chiffrement
SQL_USER='didier'
SQL_PWD='abcd'
SQL_DB='machin'
DIR=/home/jeanmi/bkp
DAYS='7'
AES_PWD='motdepassedelamortquitue'
# Affichage console
echo "\033[32mSauvegarde lancée => "$SQL_DB".sql => chiffrement AES 128Bits => "$DIR" \033[0m"
# Script ......... : NE PAS MODIFIER
# 1 .............. : Variable d'ajout de la date du jour dans le nom de l'archive
# 2 .............. : Positionnement dans le dossier de destination
# 3 .............. : Extraction de la base de données MYSQL
# 4 .............. : Chiffrement de l'archive
# 5 .............. : Suppression roulante des archives chiffrées tous les X jours
DATE=`date +%Y-%m-%d`
cd "$DIR" || exit 1
mysqldump --user "$SQL_USER" --password="$SQL_PWD" "$SQL_DB" | gzip -9 | \
openssl enc -aes-128-cbc -salt -a -out "$SQL_DB.$DATE.sql.gz.aes" -k "$AES_PWD"
find $DIR -type f -ctime +$DAYS -exec rm -f {} \+
# Affichage console
echo "\033[32mTerminée\033[0m"
Réinjection
# Variables ...... : A définir ici et ne pas modifier la suite du script
SQL_USER='didier'
SQL_PWD='abcd'
SQL_DB='machin'
DIR=/home/jeanmi/bkp
AES_PWD='motdepassedelamortquitue'
# Script ......... : NE PAS MODIFIER
# 1 .............. : Positionnement dans le dossier des archives
# 2-8 ............ : Sélection de l'archive & déchiffrement
# 9-18 ........... : Double confirmation (O+1 pour restaurer, N pour quitter, O+0 pour quitter)
# 19 ............. : Déchiffrement
# 20 ............. : Décompression
# 22 ............. : Restauration dans MYSQL
cd "$DIR" || exit 1
fileList=$(find . -maxdepth 1 -type f -name '*.aes')
PS3="Tapez le numéro de l'archive à déchiffrer/restaurer (*.aes) et patientez : "
select filename in $fileList
do
if [ -n "$filename" ]
then
while true
do
echo -n "Voulez-vous restaurer la base de données MYSQL déchiffrée ? (O/N) : "
read ouinon
if [ "$ouinon" = "o" ] || [ "$ouinon" = "O" ]
then
echo -n "Êtes-vous sûr ou c'est juste un test ? Tapez \"1\" pour Confirmer - \"0\" pour Quitter : "
read confirmation
if [ "$confirmation" = "1" ]
then
echo "Restauration en cours de "$filename""
openssl enc -aes-128-cbc -d -a -in "$filename" -k "$AES_PWD" | \
gunzip | \
mysql --user "$SQL_USER" --password="$SQL_PWD $SQL_DB"
break
fi
elif [ "$ouinon" = "n" ] || [ "$ouinon" = "N" ]
then
echo "Bye"
break
else
echo "Il faut taper O ou N"
fi
done
fi
break
done
# Affichage console
echo "\033[32mTerminée\033[0m"
Donc tu peux soit tout compiler dans un seul script ou ajouter un autre CRON, d'export, après celui du backup.