more linux backup and VNC scripts

Cette révision appartient à :
Albirew 2024-12-17 22:50:44 +01:00
Parent acf781bab0
révision f4c4ba9cec
Signé par: Albirew
ID de la clé GPG: 9D72DAEB1BB933C9
4 fichiers modifiés avec 133 ajouts et 49 suppressions

Voir le fichier

@ -1,49 +0,0 @@
#!/bin/sh
#Backup des fichiers du serveur
#NÉCESSITE LFTP SUR VOTRE SERVEUR (apt install lftp)
#Définitions des variables
#date du jour au format année mois jour pour lister les fichiers naturellement par date
datejour=$(date +%Y%m%d)
localpath=~/backup/BDD
#variables pour le serveur FTP (et sinon, rsync?)
remoteserver="serveur-backup.domaine.fr 21"
remotepath=/backup/bdd
username="nom-dutilisateur"
password="Mot de passe ultra-secure of the dead 007 tu peux pas test!"
#On commence par aller dans le dossier de travail pour les backups
cd $localpath
#On afficher les infos date du jour pour le log.
echo "date du jour : $datejour"
#on dégage les anciennes sauvegardes. espace disque, toussa...
rm -f *-SqlBackup.tar.gz
#on backup les bases dans des sql differents, la syntaxe est :
#mysqldump -h _host_ -u _user_ -p_password_ _dbname_ > fichier_sortie.sql
echo "amazones-site..."
mysqldump -h 127.0.0.1 -u user1 -ppassword1 dbama1 > $datejour-amazones-site.sql
echo "albirew..."
mysqldump -h 127.0.0.1 -u user2 -p'phrase de passe 2' dbalbirew1 > $datejour-albirew.sql
echo "amazones-fofo..."
mysqldump -h 127.0.0.1 -u user1 -ppassword1 dbama2 > $datejour-amazones-fofo.sql
echo "amazones-site-wiki..."
mysqldump -h 127.0.0.1 -u user1 -ppassword1 dbama3 > $datejour-amazones-wiki.sql
echo "portail-albirew..."
mysqldump -h 127.0.0.1 -u user2 -p'phrase de passe 2' dbalbirew2 > $datejour-albirew-portail.sql
echo "nyan-team..."
mysqldump -h 127.0.0.1 -u user3 -p'phrase de passe 3' dbnyanesque > $datejour-nyanteam.sql
echo "OK, compression..."
#on archive tous les backup a la date du jour
tar -czf $datejour-SqlBackup.tar.gz *.sql
#On vire les restes du dossier d'éxécution
rm -f *.sql
echo "parfait (comme ma... planete), maintenant on bazarde tout ça sur la lune..."
lftp -u $username,$password -e "mirror --reverse --verbose $localpath/ $remotepath" $remoteserver << bye
echo "mission accomplie, sergent!"
echo "############################################################################################"
echo .

61
linux/sauvegarde-mysql.sh Fichier normal
Voir le fichier

@ -0,0 +1,61 @@
#!/bin/bash
# Backup des bases de données du serveur
# NÉCESSITE AU CHOIX:
# LFTP SUR VOTRE SERVEUR (apt install lftp)
# OU RSYNC AVEC CERTIFICATS SSH
# Définitions des variables
# Date du jour au format AnnéeMoisJour pour que les fichiers soient triés automatiquement par date
datejour=$(date +%Y%m%d)
# Emplacement du dossier de travail
localpath=~/backup/BDD
# Connexion de MariaDB/MySQL
MARIAUSER=root
MARIAPASS="Ceci est un putain de mot de passe en or 24 carats serti de diamants!"
email=user@mail.tld
# Variables pour le serveur distant
remoteserver=serveur-backup.domaine.fr
remoteport=22
remotepath=/srv/backup/nomduserveur/bdd
username=nom-dutilisateur
password="Phrase 2 passe ultra-secure of the dead!"
# On afficher la date du jour pour le log.
echo "date du jour : ${datejour}"
# On se déplace dans le dossier de travail pour les sauvegardes
cd ${localpath}
# on supprime les anciennes archives par souci d'espace disque
rm -f *.tar.gz
# on backup les bases dans des sql differents, la syntaxe est :
#mysqldump -h _host_ -u _user_ -p_password_ _dbname_ > fichier_sortie.sql
databases=$(mysql --user=${MARIAUSER} --password=${MARIAPASS} -e "SHOW DATABASES;" | tr -d "| " | grep -v Database)
# on catche les erreurs
if [ ${?} -eq "0" ]; then
for db in ${databases}; do
if [[ "${db}" != "information_schema" ]] && [[ "${db}" != "performance_schema" ]] && [[ "${db}" != "mysql" ]] && [[ "${db}" != "phpmyadmin" ]] && [[ "${db}" != _* ]] ; then
echo "Sauvegarde de: ${db}"
mysqldump --force --opt --user=${MARIAUSER} --password=${MARIAPASS} --databases ${db} > ${db}.sql
fi
done
else
# epic fail, quitte et envoie rapport
echo "--------------- FAIL DETECTED! ABORT! ---------------"
tail /var/log/sauvegarde_sql.log | mail -s "Erreur sauvegarde SQL" ${email}
exit 1
fi
echo "OK"
# on archive tous les backup a la date du jour
tar -czf ${datejour}-nomServeurSQL.tar.gz *.sql
# on supprime les restes des backup dans le dossier d'éxécution
rm -f *.sql
# le fichier du jour est envoyé sur le serveur
#lftp -u ${username},${password} -e "mirror --reverse --verbose ${localpath} ${remotepath}" "${remoteserver} ${remoteport}" << bye
rsync -avP -e 'ssh -o StrictHostKeyChecking=no -p ${remoteport}' ${localpath} ${username}@${remoteserver}:${remotepath}
echo "Termine"
echo "##################################################"
echo .

46
linux/sauvegarde-pgsql.sh Fichier normal
Voir le fichier

@ -0,0 +1,46 @@
#!/bin/bash
# Sauvegarde des bases PostgreSQL du serveur
# Définitions des variables
backupdir="/home/postgre-backup/"
datejour=$(date +%Y%m%d)
# Vu qu'on envoi l'archive sur un serveur distant, on définie quelques variables de plus
remoteserver="mon.serveur.com"
remoteport=22
remotepath=/path/vers/postgres-backup
username="backup-user"
password="Mon super mot 2 passe ultra secure écrit en clair dans le script!"
# Juste au cas ou, n'oubliez pas de chmod 700 le script et de le mettre dans un endroit inaccessible au public ^_^;
# On affiche les infos date du jour pour le log
echo "date du jour : ${datejour}"
# On supprime les anciennes archives par souci d'espace disque
rm -f ${backupdir}/*.tar.gz
# On sauvegarde chaque base dans un sql different :
databases=`psql -l -t | cut -d'|' -f1 | sed -e 's/ //g' -e '/^$/d'`
for for database in ${databases}; do
if [ "${database}" != "template0" ] && [ "${database}" != "template1" ]; then
echo "Sauvegarde ${database} dans ${backupdir}/${datejour}_${database}.sql"
pg_dump -Fc ${database} > ${backupdir}/${datejour}_${database}.sql
fi
done
echo "Dump OK, début de la compression..."
# On archive tous les backup a la date du jour
tar -czf ${datejour}-SqlBackup.tar.gz *.sql
# On supprime les restes des backup dans le dossier d'éxécution
rm -f *.sql
echo "Terminée, on bazarde le .taz.gz sur un serveur distant..."
# Le fichier du jour est envoyé sur le serveur, au choix:
# rsync si présent et si le certificat de connexion est installé pour l'utilisateur du script
rsync -avP -e 'ssh -o StrictHostKeyChecking=no -p ${remoteport}' ${backupdir} ${username}@${remoteserver}:${remotepath}
# Si LFTP est installé sur le serveur
#lftp -u ${username},${password} -e "mirror --reverse --verbose ${backupdir} ${remotepath}" "${remoteserver} ${remoteport}" << bye
echo "Termine"
echo "##################################################"
echo .

26
linux/vnc-server-install.sh Fichier normal
Voir le fichier

@ -0,0 +1,26 @@
#!/usr/bin/env bash
sudo DEBIAN_FRONTEND=noninteractive apt install -y tigervnc-scraping-server
echo "########################"
echo "# Remote desktop (VNC) #"
echo "########################"
mkdir -p ~/.vnc
echo "veuillez entrer un mot de passe pour VNC:"
vncpasswd
#echo my-secure-password | vncpasswd -f > ${HOME}/.vnc/passwd
#x0vncserver -passwordfile ${HOME}/.vnc/passwd -localhost no -display :0
touch ${HOME}/.vnc/vnc.conf
echo '$localhost = "no";' > ${HOME}/.vnc/vnc.conf
mkdir -p ${HOME}/.config/autostart
startvnc=${HOME}/.config/autostart/vnc.desktop
touch ${startvnc}
echo "[Desktop Entry]" > ${startvnc}
echo "Type=Application" >> ${startvnc}
echo "Exec=x0vncserver -passwordfile ${HOME}/.vnc/passwd -display :0" >> ${startvnc}
echo "Hidden=false" >> ${startvnc}
echo "NoDisplay=false" >> ${startvnc}
echo "X-GNOME-Autostart-enabled=true" >> ${startvnc}
echo "Name=VNC" >> ${startvnc}
echo "Comment=Bureau à distance VNC" >> ${startvnc}
chmod 664 ${startvnc}