Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#26 Le 29/12/2017, à 10:17

michel_04

Re : La tête dans les nuages ou savoir bien enfoncer le Cloud (serveurs)

Bonjour,

Ouch! Bon ben je jetterai un œil.

A+

Hors ligne

#27 Le 29/12/2017, à 11:17

kholo

Re : La tête dans les nuages ou savoir bien enfoncer le Cloud (serveurs)

tu peux survoler,
je finirai par en faire un tuto complet avec le script terminé et la procédure d'installation
cool

Hors ligne

#28 Le 29/12/2017, à 11:30

Brunod

Re : La tête dans les nuages ou savoir bien enfoncer le Cloud (serveurs)

Salut,
Je n'ai pas tout lu si ce n'est en diagonale, mais je suis parti sur une autre solution: syncthing (paquet dispo).
Tout est centralisé sur un nas (physique) qui tourne 24/7 et chaque périphérique tourne syncthing, tout comme le nas, ce qui permet la mise à jour constante depuis n'importe où.
Tu es indépendant d'un cloud privatif externe, tes transferts sont sur le modèle des torrents en lan ou wan sans config spéciale si ce n'est une sortie vers le net, ré-utilisant les morceaux déjà disponibles sur chacun de tes périphériques. Je ne sais pas si ça t'avance...
Edit : il existe aussi résilio, mais ce dernier est privatif alors que l'autre est open source wink

Dernière modification par Brunod (Le 29/12/2017, à 11:32)


Windows est un système d'exploitation de l'homme par l'ordinateur. Linux, c'est le contraire...
39 pc linux convertis

Hors ligne

#29 Le 29/12/2017, à 13:27

kholo

Re : La tête dans les nuages ou savoir bien enfoncer le Cloud (serveurs)

salut,
pas de doute c'est la période de Noël cool
j'en fini avec sshfs et je regarde syncthing
... par contre pas dans les dépôts de 14.04 ni de 16.04...
un petit lien, des tutos ?!

edit : trouvé ! dans la doc ubuntu

pour te résumer Brunod,
c'est un vieux fil dans lequel j'accumule mon expérience en réseau (résal au singulier lol)

dans un autre fil, j'ai une fois encore déglingué Samba et expliqué ssh et sftp puis Michel04 en a remis une couche avec sshfs...
mais j'ai une mauvaise exp avec sshfs que, du coup, j'exorcise en composant un tuto d'installation et d'utilisation (dont les scripts d'utilisation) en partant de celui de Michel04 sur ce fil

mais j'ai hâte de regarder syncthing maintenant !!!!

Dernière modification par kholo (Le 29/12/2017, à 13:28)

Hors ligne

#30 Le 29/12/2017, à 15:18

Brunod

Re : La tête dans les nuages ou savoir bien enfoncer le Cloud (serveurs)

kholo a écrit :

salut,
...
mais j'ai hâte de regarder syncthing maintenant !!!!

C'était le but : te le faire connaître et voir si ça peut t'avancer vers ton objectif wink
Ça ne répondra peut-être pas à tes attentes, mais j'aime le concept smile


Windows est un système d'exploitation de l'homme par l'ordinateur. Linux, c'est le contraire...
39 pc linux convertis

Hors ligne

#31 Le 29/12/2017, à 19:10

kholo

Re : La tête dans les nuages ou savoir bien enfoncer le Cloud (serveurs)

donc, pour ce soir, et peut être la der de 2017...
mon étude en sshfs majeure et ma conclusion.

en ce qui concerne les conditions d'usage et d'installation de sshfs
pas plus convaincu par sshfs et encore moins maintenant que j'ai l'habitude de sftp
qui est mieux intégré au système (ou je suis passé à côté de qq chose...)

pour mon script
de la couleur, un menu, le but est de simplifier et rendre l'accès à sshfs plus simple...
il n'aime pas les espaces (mais c'est un peu généralisé en bash)
on peut mettre 10 partages (mettre les valeurs dans la conf et le menu)
j'ai ajouté une routine pour tenir un journal mais qui n'est pas utilisée pour le moment
c'est pas tout à fait 100% ligne de commande (il faut virer les zenity qui restent)
pour utiliser ou ajouter des fonctions "cachées", voir la fonction parserChoix
il faut mettre un mot de passe au montage ou utiliser des clés (pas user friendly)
NB : tout est dans le même fichier (script + data)
j'ai laisser traîner des lignes de tests (qui devraient toutes être commentées !)

#!/bin/bash
# ----------------------------------------------
nomlogiciel="${0##*/}"
FONCTION=""
VERSION="alpha"
# NOTES DE VERSIONS
# ----------------------------------------------
# 
# ----------------------------------------------
echo "lancement $nomlogiciel..."
# echo "chargement ligne $LINENO"

# set -o xtrace


# ******************************************************************

# pour ouvrir un navigateur de fichier (debuggage)
# ******************************************************************
# nautilus "$PWD" ; exit 0

# ******************************************************************

# fixe la taille de la fenetre
# ******************************************************************
# /usr/bin/resize -s 31 130 > /dev/null
# reset > /dev/null

# ******************************************************************

# DECLARATION DES COULEURS
# ******************************************************************
# explications
# echo -e "\033[31mHello\033[00m"
# On écrit \033, on met un crochet ouvrant [, 
# puis on met le code de la couleur choisie (ici, 31 signifie rouge) 
# et on finit avec un m. 
# On affiche notre texte, 
# ici Hello, puis on remet la couleur à noir (\033[00m), 
# sinon le reste sera écrit en rouge aussi. :)
# 
# exemples complexes
# enNoir='\033[1;30;40m'
# enRouge='\033[1;31;40m'
# enVert='\033[0;32;40m'
# enJaune='\033[1;33;40m'

fdNoir='\033[40m'
fdRouge='\033[41m'
fdVert='\033[42m'
fdJaune='\033[43m'
fdBleu='\033[44m'
fdRose='\033[45m'
fdCyan='\033[46m'
fdGris='\033[47m'
# fdDefaut='\033[49m'

enNoir='\033[30m'
enRouge='\033[31m'
enVert='\033[32m'
enJaune='\033[33m'
enBleu='\033[34m'
enRose='\033[35m'
enCyan='\033[36m'
enGris='\033[37m'
# enDefaut='\033[39m'

enGras='\033[1m'
enSouligner='\033[4m'
enClignotant='\033[5m'
enSurligner='\033[7m'
encache='\033[8m'

enDefaut='\033[0m'

# ******************************************************************
# CONFIGURATIONS ICI

Reset_conf () { 
dir_distant=""
dir_local=""
port=0
user_login=""
server1=""
server2=""
}

C1 () { 
dir_distant="/media/data"
dir_local="/home/administrateur/douceboux"
port=22
user_login="val"
server1="salon"
server2="192.168.1.2"
} 

C2 () { 
dir_distant="/media/Stock_WD_Red_4To"
dir_local="/media/SERVER_Stock_WD_Red_4To"
port=22
user_login="michel"
server1="Michel-SERVER"
server2="aa.bb.cc.dd"
}

# prévu pour C1 à C10
#C3 () {
# dir_distant=""
# dir_local=""
# port=0
# user_login=""
# server1=""
# server2=""
# }

# ******************************************************************

# JOURNAL
# ******************************************************************
fichier_log="$nomlogiciel.log"
[ -f "$@" ] || > "$fichier_log"; 
journal () { echo -e "$@" >> "$fichier_log" ; }

journal "*******************initialisation*******************"
journal "$(date)\nchargement"

# ******************************************************************

# FONCTIONS POUR LA LISTE DE CHOIX
# ******************************************************************
pause () { echo 'Appuyer sur une touche pour contnuer...' ; read -s -n 1 ; }
 
on_clear_terminal () {
	# echo -e "${enDefaut}"
	reset > /dev/null
}
afficherMenu () {
echo -en "${enJaune}${enGras}
______________________________
lanceur Connexion sshfs.
Faire un choix dans :
______________________________
${enJaune} 1. ${enVert}Salon
${enJaune} 2. ${enVert}test pour Michel_4
${enJaune} 3. ${enVert}Ici pour ajouter un élément au menu
"

# ${enJaune} 4. ${enVert}
# ${enJaune} 5. ${enVert}
# ${enJaune} 6. ${enVert}
# ${enJaune} 7. ${enVert}
# ${enJaune} 8. ${enVert}
# ${enJaune} 9. ${enVert}
# ${enJaune}10. ${enVert}

echo -e "${enJaune}______________________________
${enRouge} q. ${enVert}Quitter
${enVert}______________________________\n"
echo -en "${enGris}Votre choix : "
}
parserChoix () {
	case "$choix" in
		0) Reset_conf ; pause ;;
		[1-10]) C$choix ; connect_or_disconnect ; pause ;;
		# 1) C$choix ; connect_or_disconnect ; pause ;;
		# ...
		t) msgbox "sshfs -p $port $user_login@$server1:$dir_distant $dir_local" ;;
		T) msgbox "sshfs -p $port $user_login@$server2:$dir_distant $dir_local" ;;
		v) msgbox $(voir)  ; pause ;; # affiche la config de la dernière demande
		q|Q) _quitter ;;
		# ...
		*)  ;;
	esac
}
_quitter () {
	journal "_quitter"
	# mettre ici tout ce qui sera nescessaire à la bonne fermeture
	
	exit 0
}
msgbox () { zenity --info --text="$@" ; }

# ******************************************************************
# FONCTIONS
# METTRE TOUTES LES FONCTIONS ICI
# ******************************************************************
is_connect () { ping -c1 $1 | grep "1 received" ; } 	# is_connected 	= 0 / oui ; 1 / non
is_mount () { /bin/mount | grep -o "$1" ; } 			# is_mount 		= 0 / oui ; 1 / non
connect_to () { sshfs -p $port $user_login@$1:"$dir_distant" "$dir_local" ; }
aide () {
echo "script de montage et démontage sshfs

# etape 1
# installation sshfs sur le PC serveur
sudo apt install sshfs
# etape 2
# repérer le chemin du dossier distant sur le PC serveur

# etape 3
# récupérer les informations sur le PC serveur
hostname
ifconfig

# créer les dossiers locaux 
sudo mkdir /media/nomDossier

# créer la configuration

MODELE DE FICHIER DE CONFIGURATION
# ----------------------------------------------
# 
# montage/démontage répertoire Stock_WD_Red_4To (PC server) local ou distant 
# dans répertoire /media/SERVER_Stock_WD_Red_4To (PC local)
# 
# ----------------------------------------------"

cat << end
# commentaires acceptés sur lignes séparées
dir_distant="/media/Stock_WD_Red_4To"
dir_local="/media/SERVER_Stock_WD_Red_4To"
port=22
user_login="michel"
server1="Michel-SERVER"
server2="aa.bb.cc.dd"
end

echo "
# ----------------------------------------------
pour le lancer
$0 fichierDeConf"
}
# aide ; exit 0

voir () {
echo "
-----------------------------
dir_distant=$dir_distant
dir_local=$dir_local
port=$port
user_login=$user_login
server1=$server1
server2=$server2
-----------------------------"
}
# ----------------------------------------------

connect_or_disconnect () {
	# LANCEMENT
	if [[ $(is_mount "$dir_local") ]] 
	then fusermount -u "$dir_local"
	elif [[ $(is_connect $server1) ]] 
	then connect_to $server1
	elif [[ $(is_connect $server2 ) ]]
	then connect_to $server2
	fi
}

# ******************************************************************

# FONCTION PRINCIPALE
# ******************************************************************
_main () {
	on_clear_terminal
	afficherMenu

	# saisie du choix
	read -r choix
	on_clear_terminal
	parserChoix

	_main
}
_main

exit 0

Hors ligne

#32 Le 29/12/2017, à 19:22

michel_04

Re : La tête dans les nuages ou savoir bien enfoncer le Cloud (serveurs)

Re,

Je testerai mardi, l'année prochaine...

A+

Hors ligne