Je suis en train d'utiliser rsnapshot et ma configuration est la suivante:
config_version 1.2
snapshot_root /home/user/.snapshots/
cmd_cp /bin/cp
cmd_rm /bin/rm
cmd_rsync /usr/bin/rsync
cmd_ssh /usr/bin/ssh
cmd_logger /usr/bin/logger
cmd_du /usr/bin/du
cmd_rsnapshot_diff /usr/bin/rsnapshot-diff
interval hourly 24
interval daily 7
interval weekly 4
verbose 2
loglevel 3
logfile /home/user/rsnapshot.log
lockfile /home/user/rsnapshot.pid
backup root@website.com:/home/user/ website/
backup_script root@website.com:/home/user/backup_mysql.sh website/mysql/
mon fichier de sauvegarde mysql: (volontairement laissé des choses)
### Mise en place du répertoire de sauvegarde ###
BAKRSNROOT=/.snapshots/tmp
#####################################
### ----[ Ne pas éditer ci-dessous ]------###
#####################################
### Format de l'heure par défaut ###
TIME_FORMAT='%H_%M_%S%P'
### Effectuer une sauvegarde ###
backup_mysql_rsnapshot(){
local DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
local db="";
[ ! -d $BAKRSNROOT ] && ${MKDIR} -p $BAKRSNROOT
${RM} -f $BAKRSNROOT/* >/dev/null 2>&1
# [ $VERBOSE -eq 1 ] && echo "*** Dumping MySQL Database ***"
# [ $VERBOSE -eq 1 ] && echo -n "Database> "
for db in $DBS
do
local tTime=$(date +"${TIME_FORMAT}")
local FILE="${BAKRSNROOT}/${db}.${tTime}.gz"
# [ $VERBOSE -eq 1 ] && echo -n "$db.."
${MYSQLDUMP} --single-transaction -u ${MUSER} -h ${MHOST} -p${MPASS} $db | ${GZIP} -9 > $FILE
done
# [ $VERBOSE -eq 1 ] && echo ""
# [ $VERBOSE -eq 1 ] && echo "*** Backup done [ files wrote to $BAKRSNROOT] ***"
}
### Arrêt sur demande avec un message ###
die(){
echo "$@"
exit 999
}
### S'assurer que les binaires existent.. sinon arrêter
verify_bins(){
[ ! -x $GZIP ] && die "Le fichier $GZIP n'existe pas. Assurez-vous que le chemin correct est configuré dans $0."
[ ! -x $MYSQL ] && die "Le fichier $MYSQL n'existe pas. Assurez-vous que le chemin correct est configuré dans $0."
[ ! -x $MYSQLDUMP ] && die "Le fichier $MYSQLDUMP n'existe pas. Assurez-vous que le chemin correct est configuré dans $0."
[ ! -x $RM ] && die "Le fichier $RM n'existe pas. Assurez-vous que le chemin correct est configuré dans $0."
[ ! -x $MKDIR ] && die "Le fichier $MKDIR n'existe pas. Assurez-vous que le chemin correct est configuré dans $0."
[ ! -x $MYSQLADMIN ] && die "Le fichier $MYSQLADMIN n'existe pas. Assurez-vous que le chemin correct est configuré dans $0."
[ ! -x $GREP ] && die "Le fichier $GREP n'existe pas. Assurez-vous que le chemin correct est configuré dans $0."
}
### S'assurer que nous pouvons nous connecter au serveur... sinon arrêter
verify_mysql_connection(){
$MYSQLADMIN -u $MUSER -h $MHOST -p$MPASS ping | $GREP 'alive'>/dev/null
[ $? -eq 0 ] || die "Erreur: Impossible de se connecter au serveur MySQL. Assurez-vous que le nom d'utilisateur et le mot de passe sont correctement configurés dans $0"
}
### principal ####
verify_bins
verify_mysql_connection
backup_mysql_rsnapshot
Comment exécuter à distance ce fichier .sh pour récupérer la base de données et la ramener?
ÉDIT:
rsnapshot hourly
----------------------------------------------------------------------------
rsnapshot a rencontré une erreur! Le programme a été appelé avec ces options:
/usr/local/bin/rsnapshot hourly
----------------------------------------------------------------------------
ERREUR: /usr/local/etc/rsnapshot.conf à la ligne 18:
ERREUR: backup_script \
root@website.com:/home/user/backup_mysql.sh" \
n'est pas exécutable ou introuvable. Veuillez utiliser un chemin \
absolu.
ERREUR: ---------------------------------------------------------------------
ERREUR: Des erreurs ont été trouvées dans /usr/local/etc/rsnapshot.conf,
ERREUR: rsnapshot ne peut pas continuer. Si vous pensez qu'une entrée est correcte, assurez-vous de ne pas avoir d'espaces là où seules des tabulations devraient être.
le fichier a un chmod 777 donc il n'est pas caché
J'ai essayé quelque chose comme ça mais je ne copie/pull rien.
backup_script /usr/bin/ssh root@exemple.com 'mysqldump -u root --all-databases | gzip --rsyncable > ~/all.sql.gz' unused2
essayé:
backup_script /usr/bin/ssh user@website.com "/home/user/backup.script" whatever/
cela a fonctionné mais n'a pas réussi à copier les fichiers.
ÉDIT:
backup_script /usr/bin/ssh root@remote.com "/home/user/backup_mysql.sh" blank/
backup_script /usr/bin/scp -r root@remote.com:/.rsnapshots/tmp/ /.rsnapshots/tmp/ user/mysql/
reçu:
usage: scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 ... [[user@]host2:]file2
----------------------------------------------------------------------------
rsnapshot a rencontré une erreur! Le programme a été appelé avec ces options:
/usr/local/bin/rsnapshot hourly
----------------------------------------------------------------------------
ERREUR: backup_script /usr/bin/scp -r root@remote.com:/.rsnapshots/tmp/ returned 1
AVERTISSEMENT: Annulation de "user/mysql/"